Create a new project
Course Content
0 / 249 completedIntroduction
HTTP Protocol
HTTP Request
What happen if we go to a website
What is a port number
Client-Server Model
How to build a website
HTTP Status Code
How to run a website
Global variables
Module require keyword
Buit-in Module path
Module export keyword
Create a first web server
Built-in Module file system
Benefits of Asynchrony
Response status & html
Event Emitter
Check url
Response JSON
Handle Not Found
Seperate URL to get single item
Send data to server
Delete item
Update item
Introduction to NPM
What is express.js
Response in express.js
Create a web server with express
Explore parts of URL
What is a RESTRESTful API
Explore http method in express.js
Get one item
Delete item
Auto restart server
Create item
Middleware
Model View Controller (MVC)
Update item
Refactor code to MVC
Router in express
Project Overview
Setup MVC folder
Create a new project
Create MongoDB database
Mongoose ODM
Create a user collection
Handle database error
What is JWT
Create a JWT
Insert user document
Check email unique
Login user
Create task collection
Hash password
Create a task
Get single task
Get all tasks
Update task
Task authentication
Wrap-up section
Delete task
Array
Basic Type System
Object
Array Object
Introduction to class
Interface
Function
Class - object creation
Class - constructor
Class - method
Class - override method
Class - inheritance
Class - access modifiers
Abstract class - part 1
Type alias
Abstract class - part 2
Union Type
Intersection Type
Tuple
Interface Inherritance
Enum type
Type vs Interface
Prepare project
Setup folder structure like pro!
Environment
Setup Prisma ORM & MySQL
Setup server
Create User Model (Table)
Setup route
What is migration
Create user controller
Format validation message
Custom shema validation middleware
Schema validation with Joi
Handle 404 not found error
Http status code constant
Custom Error class
Using custom error
Handle async error
What is JWT
What is HTTP Stateless
Signin user - part 1
Signup user - part 2
Signup user - part 1
Verify user middleware
Verify user middleware - part 2
Signin user - part 2
Create category model
Setup folder structure for this module
Create category
Get all & Get one category
Update category
Delete category
Add type checking
How to design a product table
Setup folder structure
Add product model
Get all products
Get single product
Update product
Delete product
Interface & Schema
Create product
Pagination with prisma
Sort product (work well with pagination)
Who created the product
Check permission middleware
Filtering
Upload image - part 2
Get shop profile
Prevent anyone can perform the action
Upload image - part 1
Create gallery model
Setup folder structure
Delete image
On Delete Cascade
Adding multiple images
Prevent anyone can perform the action
What is a product variant
Add variant to product
Delete variant
Create folder structure
Remove variant item - part 1
Prevent anyone can delete variant
Add item to variant
Get product with variant
Permitted
Remove variant item - part 3
Prevent
Remove variant item - part 2
Design a new table
Create prisma model for wishlist
Folder structure
Add product to wishlist - part 2
Add product to wishlist - part 1
Get my wishlist
Delete item wishlist
Delete user
Create new user
Update user
Prevent inactive user
Refactor use middleware in route
Some checks
Fix any type
Public static file
Banned user
Change password
Upload avatar
Create an address model
Folder structure
Update address
(Generic) Add a little bit checking for checkPermission
Delete address
Add multiple address to user
Fix any type
Create a cart model
Add product to cart - part 1
Add product to cart - part 2
Add product to cart - part 3
Clear cart
Remove item in cart
Add product to cart - part 4
Get my cart
Fix update total price
Fix any type
Subtract total price in cart when remove
Fix total price (again)
Fix address column
Create an order model
Create folder structure
Create one more table (COUPON)
Create order - part 2
Coupon calculation
Update order status
Flow of order process & create order
Get my orders
Get all orders
Folder structure
Update coupon
Create coupon
Get coupon
How to delete a coupon
Create a review model
Add review
Authorize review
Update review
Delete review
Prevent add multiple reviews
Interface & Schema Validation
Get average rating
Aggregate overview
Get total users
Total revenue of all products
Total revenue of single product
Why should we you redis
How to install Redis
Stop & re-run redis
Refactor to class
When to use Redis
Setup redis in node
Redis caching flow
SET in redis
Key constant
Cache expires time
Apply cache for categories
Hash data structure in Redis
Unique key
Cache single category
Invalidate data
Products expiration
Refactor code
Apply cache for products
Invalidate product
Cache my products
Cache single product
Setup send email
Filter image & limit size
Refactor send email to class
Forget password - part 1
Downside of current authentication approach
Forget password - part 2
Reset password
Send token via cookie
Change behavior of auth middleware
Cookie options
Refactor send cookie
index