Vue JS 3 & Firebase - Full Guide [2022]
Create a "real world" Vue JS 3 application connected to Firestore (Firebase). Learn how to use Vuex, Composition, and the latest Vue JS 3 concepts.
WHAT IS VUE JS?
Vue JS is a trendy JavaScript front-end framework explicitly designed to help you write Web apps faster and more efficiently than ever!
Used by Nintendo, Adobe, GitLab, Baidu, and Alibaba, Vue JS is rapidly increasing in popularity, so it’s a great time to add it to your CV.
By the end of this course, you’ll have the skills and confidence you need to use Vue JS on your projects!
So, no matter whether you’re a complete beginner to Vue JS, or an experienced programmer keen to improve your skills, this course is for you!
WHAT IS FIREBASE?
Firebase provides a real-time database and backend as a service. The service provides application developers an API that allows application data to be synchronized across clients and stored on Firebase's cloud.
THE COURSE
Students learn best when they’re putting what they learn into practice straight away, so we’ve built this course around one great project (which will look fantastic in your career portfolio!):
In this course, we are going to build an application called Exchangario. The primary purpose of this application is to exchange services and products.
We will start with the basics of the Vue JS framework. We will initialize the first pages, create routing, and style them properly.
The first section will not only be about Vue JS. We need a database to make our application dynamic and up to the standards. The database we will use in this course is cloud Firestore from Firebase. In Firestore, we will keep our data of opportunities, exchanges, and user profiles stored as documents in collections. More about this in the course.
After the first section, you will start learning about firebase authentication. I will show you how to log in and register with Firebase. After the user is logged in, we will display our application with modifications only authenticated users can see.
The main idea of this application is to exchange products. We will implement a page where users can create exchanges of service or product type. We will make many inputs of different types. After the exchange is completed, it will be displayed on the Home page and offered to other users. I will show you how to perform form validation with the popular Vuelidate package.
Later, we will be creating functionality to trade exchanges between the users. Opportunities are offered exchanges that users can accept or decline. Every logged-in user can apply for exchange by offering owned exchange as a counter-offer. The submitted exchange must have a similar or identical value as the exchange we are using to be accepted by the system. Once an exchange is proposed opportunity is created. After the opportunity is accepted user will receive contact information on the user with whom they can exchange the product.
In the later section, we will work on pagination and search features.
In the last section, I will be talking about security rules for Firestore, and finally, we will deploy our application on Heroku to share it with your friends and family.
With 20 hours of on-screen instruction, it doesn’t matter whether you’re planning to start your career as a developer or want to improve your programming skills. This is the right course for you.
Basic JS knowledge.
Dev Environment
Folder Structure
First template
Init styles
Navbar separation
Hero Section
List and Pagination
Vue Data
For Loop
Navbar Props
Exchange data
Display exchange data
Exchange Tags
Font Awesome
Start Icon
Pages
Router
Page reusability
Adjust Navbar
router link
Page wrapper
Vue JS concepts
Computed Properties
Use Ref
Vuex introduction
Vuex state
Get exchanges with action
Mutations
Async Get exchanges
Vuex modules
Namespaced
Firebase
Specify data in Firestore
Get data from Firestore
Login and Register Page
Data binding
Register form inputs
User module
Register user
Error and processing
Watchers
Map vuex state
Map State improvement
Composition
useAuth
More watchers
Cleanup
Toast Module
Create user Profile
on auth state change
Get user Profile
Merge user and profile
Register renaming
Getters
Get user in Composition
Display user email
Logout
Login
Navbar auth improvement
Authentication fix
Before each route
Redirect when authenticated
Redirect after login and register
Profile Page
Profile page auth check
Link to profile
Profile modal
Pass data to modal
More profile inputs
Update user Profile
Close Modal
Provide profile informations
Exchange Create Page
Exchange form data
Vuelidate
Error messages
More validators
Generic errors
Custom messages
Form errors component
Custom validators
Handle Tags
Display tags
Prevent duplicates
Clean form data and action
User Ref
Create exchange
Create new exchanges
Register validation
Additional validators
Login validation
Exchange detail page
Provide Slug
Add slug to exchange
Get slug from params
Fetch exchange
Display rest of exchange
Exchange user
Reusable Modal
Update Profile Fix
Close Modal Fix
Custom slot
Ref to component
Exchange deal modal
Exchange Modal Content
Modal values + selected input
Is price check
Fetch user exchanges
Display user exchanges
Selected Exchange
Offered Price
Percentage difference
Difference Text
isAllowedPrice
is Exchange Owner
Can create exchange
Additional UI
Prepare opportunity
Get all opportunity data
Opportunity module
Opportunity references
Opportunity refactor
Get received opportunities
Store opportunities to state
Extract data from opportunity
Display opportunity in UI
Add opportunity status
Fetch send opportunities
Selected opportunities option
Display sent opportunities
Styling improvements
Opportunity deal modal
Buttons to control opportunity
Dispatch accept and decline
Close Opportunity Modal
Modal Header
accept or decline deal
Change opportunity status
Opportunity result modal
Display user info in result
Has not enough credit
Decrease credit
Accept Opportunity increase credit
Decline Opportunity Refund credit
Display date on exchange
Pagination Start
Page click
Store initial pagination data
Moving forward in pagination
Disable pagination
Pagination Back
Display current page
Reset pagination
Start search
Pass search with props
Filter exchanges is working
Dropdown Menu
Handle dropdown Close
Upload Start
Get array buffer
Upload Image Preparation
Upload Image Success
Upload Progress
Small Fixes
Rules Intro
Check user id rule
Function in rules
Exchange rules
Additional user rules
Opportunity Rules
ENV File
Production Server
Heroku Setup
Setup Github
Heroku Deployment
Test App + Course End
Filip Jerga
Every video contains a discussion where you can create a post describing an issue. The instructor usually responds within 1 business day.
Address common questions ahead of time to save yourself an email.
Of course not! Every lecture is committed (explained in the introduction section). You can start watching at any lecture. Just download the correct version of the project attached to lecture resources.