
This video provides an overview of the entire course.
In this video, we will cover all the packages we need to get going with our project of developing a small music library to manage our collection of songs.
Use Vue’s webpack bundle
Install other additional packages that we need to use
Import all our packages
In this video, we will set up the music collection and the first views to display all our songs.
Create our first component and import the song list
Add some styling to the song display
Make the song list sortable by column and ascending and descending.
Having too many elements rendered at once slows down any application. Pagination is a helpful tool to remedy that.
Check which parts of the application is too slow with Chrome’s DevTools
Split off the table body to a separate component
Paginate the list with an endless scroller
Every music library needs to have custom playlists as nobody knows how to organize music better than whoever listens to it.
Create a new component for the playlist navigation
Add functionality to create playlists and slugify the titles for easier navigation
Persist new playlists to localStorage
We have playlists now but they’re still empty. So in this video we’ll add the functionality to add songs to playlists.
Add events and props to facilitate communication between the components
If the adding flag is active display a button to add songs to the playlists
Restructure the existing components to properly display the songs from playlists
Any playlist should be properly manageable: renaming it, deleting it, and deleting songs from it.
Add an additional column for extra functionality
Add the ability to rename and delete playlists
Make it possible to delete songs from playlists
Nothing is more important for browsing music than being able to quickly find that one song you want to have right now. A searchbar is the way to go.
Include the web worker webpack plugin and create a basic web worker file
Provide the worker with the selected playlist and search through the list
Restructure the existing components to work with searched through song lists
In this video we will look at the requirements needed to set up the TV Show tracker.
Initialize the project with “vueinitwebpack”
Prepare the default structure for the new project
Include all necessary modules
To make it easier to talk to the outside world we can add helper libraries for various external services.
Set up a firebase account
Add a helper file and set up firebase with the provided config
Create a small helper library for Fetch
The most essential part of a TV show tracker is being able to search for shows. So a search bar we shall implement!
Create a new component with a themed searchbar
Include the helper library and get the search results from the TV Maze API
Display the search result in our new component
We’ll need more than just a quick overview over found videos: detailed descriptions and all episodes of single shows.
Create a new component and the necessary routes to it
Call the API to get the detailed information for a single show
Display the description and detailed show runtime results
Finally, the thing we’re actually here for: subscribing to TV shows to keep updated on their release schedule.
Add a subscription link and flag to each show in the search result
Create the new needed methods to support inter component communication
Push the subscriptions to our permanent storage
In this video, we will finish up the display and styling for the subscriptions.
Add the list to display the subscribed to shows
Style them to make it look proper
Place some helpful text messages for our users
In this video, we will look at the requirements needed to set up a webshop.
Call ‘vueinitwebpack’
Import the bulma framework and fontawesome in the main.js framework
Add Firebase to your webapp
In this video, we are going to create an admin interface for our webshop.
Prepare the data permissions in Firebase
Protect our routes from unauthenticated access
Add helper functions to our database library
In this video, we will add our products to the admin page and manage them.
Define the features for our products
Add some helper functions to the Database
Create a new component in the admin folder 'Product.vue'. Finally, create a working product administration page
In this video, we are going to build up a shop display.
Create a new file in the components base directory ‘Products.vue’
Add a hero header displaying the shop’s logo
Import the products component, and then a root route linked to the products component.
In this video, we are going to use VueX which is Vue’s implementation of the Flux architecture.
Get to know the different parts of VueX
After you run the code, refactor the products index and detail page
Learn about the joy of deleting code and then apply it to your project
In this video, we are going to create a shopping cart.
To handle the cart, add mutators, getters, and actions to the VueX store
Add a cart widget to our shop
Add a link to the checkout method, and a warning message if the customer wants to checkout without any products in the cart.
In this video, we will look at the last piece that will complete the project which is the checkout process.
Create the last helper functions and the order object
Prepare the permanent storage of new data and the handling of it
Add a country selection dropdown component
In this video, we will implement the checkout component.
Validate the customer information, payment and shipping options
Get an overview and confirmation window before finalizing your order
Add a thank you window.
In this video, we will look at the necessary elements for creating a real-time chat application.
Get an overview of the basic setup and packages we're going to use
Initialize the project by calling `vueinitwebpack`
After creating a Firebase account, copy the settings for the helper library file
To make our chat application something pretty exclusive we can add a rigorous process of requiring a valid email address from our users.
Set up some basic rules for the Firebase database
Create the authentication component and integrate it with Firebase’s authentication process
Set up a login and signup page for our users
Now that there’s an authentication in front of the chat it’s time to add the actual chat itself.
Create the full-height page layout for the chat window
Add some basic functionality for sending messages
Listen to newly created messages and print them out in the message history
With the basic structure for chat rooms done we can expand that now to allow for multiple chat rooms.
Set up more complex firebase rules to secure access to it
Create a new component to act as a navigation menu for new rooms
Include a form to create new forms and set the creating user as the room’s owner
The last missing puzzle piece: the user list and the ability to kick users from your rooms.
Create the user list component as a menu
Add joining users to the corresponding database structure
If you are the owner of the current room, allow the process of forced removal of other users: kicking!
This video will give you an overview about the course.
Learn why we want to use Vue and what this section of the course is going to teach.
Get a section overview
Find out what a component framework does and how it will help you build great applications quickly.
Find out what a component framework is
Learn the advantages of using components
Building your first simple component
Learn how data works at the component level.
Create some data
Bind the data to the template
Explore two way binding with v-model
Explore more directives that Vue has to offer to help make dynamic components.
Create an array in the data
Learn how to iterate over the array
Learn about conditionals in templates
Find out how Vue deals with event handling.
Add some event listeners
Create a data change watcher
Find out about lifecycle hooks
Learn about the advanced Vue topics of slots, references and transactions.
Create a dialog with a slot
Create a reference to the dialog
Explore a transition using a button
Interactively learn the basics of state management in Vuex.
Learn why state management is important
Refactor existing state into Vuex
Add actions and mutations to change the state
Find out about Vuetify, an off the shelf set of beautiful components we will use to build the applications.
Visit the Vuetify site
Create a new application with Vuetify
Try an example from the Vuetify site
Get a quick introduction to the application we will be building and its features.
Have a look at the completed application
Try out some filters
Check out the store info panel
Create a Nuxt.js project and build out the sample data that will drive the application.
Create the Nuxt.js app
Find your location
Generate the sample data
Extend the server with a GraphQL API that will drive the UI.
Add GraphQL support to the server
Create the schema and resolvers
Test it out in the UI
Start the client side code by building the Vuex store that will connect to the GraphQL API.
Create a Vuex store
Add the state
Add the mutations and actions and test
Create the foundation of the UI by adding a Google Map to the page.
Get a Google Maps API key
Remove the existing boilerplate layout
Add the map and connect it to the store
Allow the customer to filter the results by adding a toolbar.
Set up the toolbar
Add the components
Connect the components to the store
Finish the project by adding a Store Info flyout panel.
Add the store info panel template
Connect the template to the store
Register the component with Vue
Get your first look at the You News RSS reader application.
Have a look at the completed page
Try out various feeds
Have a look at the Add Feed dialog
Build a Nuxt.js application and setup a SQLite database that will act as the storage for the feeds and articles.
Create the Nuxt.js app
Create the database
Update the database with the new articles
Create REST API endpoints on the server that will both get the feeds and data, and add new feeds.
Add libraries to the server
Add the REST endpoints
Try it out in the server
Cement the foundation of the web client by building a Vuex store that holds the state, mutations and actions.
Create a new Vuex store
Add the state
Add the mutations and actions and test
Replace the Nuxt.js boilerplate layout with a new layout and show the list of feeds.
Remove all the existing layout
Create the new layout
Add the feed list
Implement the article list and viewer in the content portion of the layout.
Add the article list
Add the article viewer
Connect everything to the store
Create an Add Feed dialog that allows the customer to add new feeds to the reader.
Have a look at Vuetify dialog support
Add the dialog template
Connect the dialog code to the store
Extend the Koa server with WebSockets support to create a full duplex connection with the web client.
Import the WebSockets library
Create the WebSocket
Connect to the WebSocket on the client side
Make the startup of the UI fast by caching the Vuex state in local storage.
Add the local storage plugin
Configure it to work with our state
Check to see if it’s stored data in local storage
This video introduces you to the completed Photo Spot application and walks you through its features.
Have a look at the interface
Go into the detail page on one of the photos
Check out the chat flyout panel
Set up the Laravel server and get familiar with its layout.
Set up Laravel
Create a new project
Familiarize ourselves with the layout
Use Laravel’s artisan system to create the models and migrations that will store the data.
Create the migrations for photo, comment and chat
Update the models with the fields
Add the controllers and wire them to the API
Create the heart of the UI by building the Vuex store that will manage the application state.
Enable Vue and Vuex on the client
Build out the store with the state, mutations, and actions
Test it out in the browser
Use an off-the-shelf drag and drop component to easily allow customers to just drag and drop their images onto the site.
Add the drag and drop component
Add the component to the layout
Test adding a photo
Create the structure of the new UI by adding Vuetify, Vue-router, building a layout and finishing the Home page.
Add Vuetify and Vue-Router
Build the layout
Finish building out the home page
Finish the UI by creating the detail page and chat panel.
Create the detail page
Create the chat panel
Wire everything up to the layout and router
Start building out a full duplex connection to the client by integrating the server with Pusher.
Get a pusher account and create an application
Configure pusher on the server
Add events and connect them to the controller
Finish the project by connecting the client to the Pusher service.
Enable Laravel-echo and Pusher-js
Connect them to the Vuex store
Test it out in the browser
Are you willing to enhance your basic Vue.js skills with a real-world project to deepen your understanding of Vue.js. Then this course is for you!
Vue.js is an open-source JavaScript framework for building user interfaces and single-page applications.
With this practically oriented course, you will mainly focus on creating 7 real-world projects such as creating a miniature Spotify-like music library to manage your song collection, builds a tracker for TV shows, desktop and web RSS reader & much more. While building this project you will also learn basics of working with Vue.js, vue-router, and using plugin components integrate real-time communication with a backend service, which we can use to build Vue.JS applications with push capability.
By the end of this course, you will be able to build complex and large web applications with Vue.js & also implement your own real-world applications, troubleshoot errors with your Vue.js application.
Contents and Overview
This training program includes 2 complete courses, carefully chosen to give you the most comprehensive training possible.
The first course, Real World Projects with Vue.js you'll create a miniature Spotify-like music library to manage your song collection where you'll learn the basics of working with Vue.js, vue-router, and using plugin components. The next project builds a tracker for TV shows where we'll expand on our app-building experience by integrating an external API using the native fetch API. The third project is a simple web shop, which will introduce building more complex applications. We will add Vuex to our stack to share data and state across components. The last project is a real-time chat feature, with the ability to create, join, and manage various rooms. It will integrate real-time communication with a backend service, which we can use to build Vue.JS applications with push capability. By the end of the course, you will have the Vue.JS knowledge needed to implement your own real-world applications.
The second course, Practical Projects with Vue JS 2 will walk you through three complete practical projects in Vue.js that show the breadth of the framework, and also show how it is used practically via real-world examples. It fills a void not met by reference guides or cookbooks but adds value to both of those resources. You will not only understand how to use the framework, but also which choices were made, and why. These projects will act as jumping off points for you in your own projects.
About the Authors:
Daniel Khalil is the co-founder of Brainsware. He is a full-stack developer for 12 years now, self-employed freelancer since 2009. Most of his work lately is with Elixir (Phoenix) and Vue.js. He loves creating software that's usable, testable and maintainable.
Jack Herrington is a Principal Software Engineer at Nike working. He works in React, Vue, and AngularJS and has presented to a wide set of audiences on a variety of web technologies. He has written six books and hundreds of articles covering both the front- and back-end. Before Nike he was the UI Architect at Walmart Labs.