Introduction to Node.js
Install NodeJs
Why NodeJs
Core Modules
What Is Require, Module, Exports
Async And Events Loop
Our First Server
Serve HTML From Server
Basic Routing
What Is NPM
ECMA6
Intro To ECMA6 destructuring, Rest
Spread And Iterable
Arrow Functions
Promises
Async, Await
Prototype And Classes
Call, Bind And Object Global
Express & RESTfull API
Architucture Of Our Application
Intro To Express
Express And Basic Routing
Middlewares
Lets Install Postman
What Is API ?
Https Methos: Get
Https Methos: Post
Https Methos: Patch
Query And Params
Https Methos: Delete
Param Middleware
Organizing Our Code
Mounting Router
Chaining middleware
Serving Static Files
Envirement Variables
MongoDB And Mongoose
Setup MongoDb
Create A Local DataBase
Create Many Documents And Quering
Update, One, Many Documents
Delete Documents
Using Compass
Host Our DataBase On Atlas Cloud
Connect To DB Using Compass
Connecting Our DB With Epress
Create Model From Scheme And Create Document
Using Try And Catch With Async Functions
Reading Documents
Update Document
Delete Document
Modeling Video
Aggregation Pipeine Group and Match
Aggregation Pipeine Sort And Repeating stage
Aggregation Pipeine Unwind And Projection
Virtual Properties
Document Middleware
Query Middleware
Aggregation Middleware
Model Middleware
Data Validation
Custom Validation
Error Handling
Unhandled Routes
Global Error Handling Middleware
Meaking Our Error Class
Development Vs Production Errors
Catching Error In Async Functions
Sending Not Found Response
HTTP Status Codes
Handling Invalid DataBase IDs
Handling Mongoose Validation Errors
Handling Duplicate DataBase Fields
Handling Unhandled Rejections
Uncaught Exceptions
Authentication And Authorization
User Modeling
Signup
Get One User
Hashing Users Passwords Before Saving To DB
JSON WEB TOKEN
Login
Sending Token
Store Token In Cookie
Decode Token
Final Step Of User Is LogedIn ?
Password Reset 1
Password Reset 2
Password Reset 3
Password Update
Update User Data
Delete User
Data Model And Security
Model Relationships Between Documents
Liked Videos
Populating Liked Videos
Disliked Videos And Chaining Populate
Modeling Comment
Create Comment
Nested Routes And MergeParams
Refactoring Create And Get All Comments
Delete Comment
Liked Comments And Disliked Comments
Me endpoint
Using Indexes
How To Limit Requests
Setting Various HTTP Headers
Sanitizes Data
Server Side Rendering With Pug
Section Intro
Setup Pug
Fundamental Of Pug
Including Files
Template Inheritance
Mounting The View Router
Pug And Mixin
Pug And Iteration
If Statements
Home Page
Drop List
Understand How Logged In User Work
Login And Signup
Render The Liked Videos
Render The User Profile And About Page
Render The Watch Page
Make The Video Player Work
Render The Category Page
S3 Bucket and Dynamic Rendring
Login With Axios And Bundle Javascript
Handle Login From The Client Side
Signup With Axios
Handle Cannot Read AddEventListener Of Null
Create Aws Account
Connect Our Application With AWS
Dashboard For Uploading Video
Create Video
Upload Thumbnail To S3 Bucket
Upload Video To S3 Bucket
Simple Frontend Message For Uploading Video
Home Rendring
GET More Videos Server And Client Side Rendering
Update The Video Duration
Set Categories In Res Locals
Stream Video Part 1
Stream Video Part 2
Stream Thumbnail
Increasing Views
Hundle Like In The Browser
Update Like A Video
Dislike A video
Fix Likes And Dislikes
Render Comments
Post Comment
Refactoring Like And Dislike Function
Like And Dislike Comment
Limit Users From Spamming Likes And Dislikes
PointerEvents None
Dynamic Rendring : Category And Liked Videos
Logout
Update User Name And Password
Update User Photo
SES & Payment
Setup AWS SES
Building Advanced Email Class
Moving Out Of The Amazon SES Sandbox
Reset Password Using SES Step 1
Reset Password Using SES Step 2
Contact Us Part 1
Contact Us Part 2
Setup Stripe
Create Stripe Session
Client Side Payment With Stripe
Update User As A Subscriber
Subscription Expires
Remove User ID From Res And Clean The Code
Advanced Search
11-Deploy Our App To EC2
Section Intro
Setup Git And Github
Lance EC2 Instance
Install NodeJs To Our Instance
Install Git And Clone Our App To Ubunto Instance
Keep Our App Running Even If We Close The Terminal
Config Nginx For Better Performance
Your App Still Slow ?
Config PM2 And Setup Environment Variables
Configure Domain Name For Our Server
Final Step