MERN Stack Tutorial

Before starting a MERN Stack (MongoDB, Express.js, React, Node.js) course, you should have a solid foundation in core web technologies. Begin with HTML5 (semantic structure, forms), CSS3 (flexbox, grid, responsive design), and JavaScript (ES6+) concepts such as variables, functions, arrays, objects, promises, and async/await. Understanding DOM manipulation, event handling, and basic browser APIs is essential. You should also be familiar with HTTP/HTTPS protocols, REST concepts, and how client-server architecture works. Basic knowledge of Git and GitHub for version control and command-line usage will help you navigate real-world development workflows. Additionally, having an introductory understanding of programming logic, debugging, and problem-solving will make learning smoother and faster. Approach this course with a builder’s mindset. Don’t just watch tutorials—build projects consistently.

📂 Chapter 1: Introduction to the MERN Stack

1010 What is the MERN Stack? Architecture, Technologies and Why It Works Beginner → 1020 Understanding MongoDB — Documents, Collections and JSON Data Beginner → 1030 Understanding Express.js — The Node.js Web Framework Beginner → 1040 Understanding React — Components, the Virtual DOM and State Beginner → 1050 Understanding Node.js — JavaScript on the Server and How It Fits Beginner →

📂 Chapter 2: Setting Up Your MERN Development Environment

2010 Installing Node.js and npm — nvm, Versions and Verification Beginner → 2020 Installing MongoDB and MongoDB Compass Beginner → 2030 Setting Up VS Code for MERN Development Beginner → 2040 Creating Your First MERN Project Structure Beginner → 2050 Introduction to Postman — Testing Your API Beginner →

📂 Chapter 3: Node.js Core Concepts for MERN Developers

3010 Node.js Modules and the require System Beginner → 3020 The Event Loop and Asynchronous JavaScript in Node.js Beginner → 3030 Working with the Node.js File System Module Beginner → 3040 Callbacks, Promises and async/await in Node.js Beginner → 3050 Creating a Basic HTTP Server with Node.js Beginner →

📂 Chapter 4: npm, package.json and Node Modules

4010 Understanding package.json — The Heart of Every Node.js Project Beginner → 4020 Installing and Managing npm Packages Beginner → 4030 dependencies vs devDependencies — What Goes Where Beginner → 4040 npm Scripts — Automating Your MERN Workflow Beginner → 4050 node_modules, package-lock.json and .gitignore Beginner →

📂 Chapter 5: Introduction to Express.js

5010 What is Express.js and Why Use It? Beginner → 5020 Creating Your First Express Server Beginner → 5030 Handling GET and POST Requests in Express Beginner → 5040 Sending JSON Responses and HTTP Status Codes Beginner → 5050 Using nodemon for Automatic Server Restart Beginner →

📂 Chapter 6: Routing in Express.js

6010 Defining Routes in Express — Methods, Paths and Handlers Beginner → 6020 Route Parameters and Query Strings in Express Beginner → 6030 Express Router and Modular Route Files Beginner → 6040 Handling 404 and Error Routes in Express Beginner →

📂 Chapter 7: Middleware in Express.js

7010 What is Middleware? The Express Request Pipeline Intermediate → 7020 Built-in Express Middleware — express.json, express.urlencoded and express.static Intermediate → 7030 Third-Party Middleware — cors, morgan, helmet and express-rate-limit Intermediate → 7040 Writing Custom Middleware in Express Intermediate → 7050 Error Handling Middleware — Centralised Error Management Intermediate →

📂 Chapter 8: Building a REST API with Express

8010 REST API Principles — Resources, Methods and Conventions Intermediate → 8020 Designing API Endpoints for the MERN Blog Intermediate → 8030 Implementing Full CRUD Endpoints with Express and Mongoose Intermediate → 8040 Request Validation and Structured Error Responses Intermediate → 8050 Testing Your REST API Thoroughly with Postman Intermediate →

📂 Chapter 9: Introduction to MongoDB

9010 What is MongoDB? NoSQL vs Relational Databases Beginner → 9020 Collections and Documents — How MongoDB Stores Data Beginner → 9030 The MongoDB Shell — mongosh Fundamentals Beginner → 9040 MongoDB BSON Data Types — A Complete Guide Beginner → 9050 Using MongoDB Compass — Visual Database Management Beginner →

📂 Chapter 10: CRUD Operations in MongoDB

10010 Inserting Documents — insertOne, insertMany and Bulk Operations Beginner → 10020 Querying Documents — find, Filters and Projections Beginner → 10030 Updating Documents — updateOne, updateMany and Update Operators Beginner → 10040 Deleting Documents — deleteOne, deleteMany and Soft Deletes Beginner → 10050 Query Operators and Advanced Filters in MongoDB Beginner →

📂 Chapter 11: Introduction to Mongoose

11010 What is Mongoose and Why Use It with MongoDB? Intermediate → 11020 Connecting Mongoose to MongoDB — Local and Atlas Intermediate → 11030 Defining a Mongoose Schema — Fields, Types and Options Intermediate → 11040 Creating and Saving Mongoose Documents Intermediate → 11050 Querying with Mongoose — find, findOne, findById and Query Chains Intermediate →

📂 Chapter 12: Mongoose Schemas, Models and Validation

12010 Schema Types and Options — A Deep Dive Intermediate → 12020 Default Values and Required Fields in Mongoose Intermediate → 12030 Custom Validators — Beyond Built-in Rules Intermediate → 12040 Mongoose Middleware — pre and post Hooks Intermediate → 12050 Virtuals and Instance Methods in Mongoose Intermediate →

📂 Chapter 13: Connecting Express to MongoDB with Mongoose

13010 Project Structure for an Express and Mongoose API Intermediate → 13020 Connecting MongoDB in an Express Application Intermediate → 13030 Building a Model-Based REST API — Controllers and Routes Intermediate → 13040 Populating References Between Documents Intermediate → 13050 Error Handling in Mongoose Operations Intermediate →

📂 Chapter 14: Introduction to React

14010 What is React and How Does It Work? Beginner → 14020 Creating a React App with Vite Beginner → 14030 Understanding the React Project Structure Beginner → 14040 JSX Fundamentals — Writing HTML in JavaScript Beginner → 14050 Rendering Elements and Lists in React Beginner →

📂 Chapter 15: React Components, JSX and Props

15010 Function Components — The Building Blocks of React Beginner → 15020 Props — Passing Data Between Components Beginner → 15030 Component Composition and the Children Prop Beginner → 15040 PropTypes and Default Props — Documenting Component Contracts Beginner → 15050 Building the MERN Blog UI Components Beginner →

📂 Chapter 16: State and the useState Hook

16010 What is State in React? State vs Props Beginner → 16020 The useState Hook — Declaring and Updating State Beginner → 16030 Handling User Events — onClick, onChange and Forms Beginner → 16040 Lifting State Up — Sharing State Between Components Beginner → 16050 useState Patterns and Common Pitfalls Beginner →

📂 Chapter 17: useEffect and Component Lifecycle

17010 What is useEffect? Side Effects in React Intermediate → 17020 The Dependency Array — Controlling When Effects Run Intermediate → 17030 Fetching Data with useEffect and Axios Intermediate → 17040 The Cleanup Function — Preventing Memory Leaks Intermediate → 17050 Common useEffect Patterns for MERN Applications Intermediate →

📂 Chapter 18: React Router for SPAs

18010 What is Client-Side Routing and How React Router Works Beginner → 18020 Setting Up React Router — BrowserRouter, Routes and Route Beginner → 18030 Navigation — Link, NavLink and the useNavigate Hook Beginner → 18040 Dynamic Routes, URL Parameters and useParams Beginner → 18050 Protected Routes and Navigation Guards Beginner →

📂 Chapter 19: Forms and Controlled Components

19010 Controlled vs Uncontrolled Components Beginner → 19020 Building the Login and Register Forms Beginner → 19030 Form Validation and Error Display in React Beginner → 19040 Building the Create Post Form Beginner → 19050 Building Reusable Form Components Beginner →

📂 Chapter 20: Connecting React to Express with Axios

20010 Why Axios? Comparing Axios and the Fetch API Intermediate → 20020 Configuring a Shared Axios Instance with Interceptors Intermediate → 20030 Building the Post Service — CRUD Operations from React Intermediate → 20040 Handling Loading, Errors and Empty States in the Connected UI Intermediate → 20050 Pagination and Infinite Scroll with the Express API Intermediate →

📂 Chapter 21: Global State with React Context API

21010 What is Context and When Should You Use It? Intermediate → 21020 Creating a Context and Provider Component Intermediate → 21030 Building the AuthContext — User State Across the App Intermediate → 21040 Context with useReducer — Structured State Updates Intermediate → 21050 Multiple Contexts, Performance and When to Use Zustand Intermediate →

📂 Chapter 22: JWT Authentication in MERN

22010 How JWT Authentication Works in a MERN Application Intermediate → 22020 Signing and Verifying JWTs in Express Intermediate → 22030 Protecting Express Routes with the protect Middleware Intermediate → 22040 Token Storage Options, Security and Refresh Tokens Intermediate → 22050 Wiring JWT Authentication End-to-End — React to Express Intermediate →

📂 Chapter 23: File Uploads with Multer and React

23010 How File Uploads Work in a MERN Application Intermediate → 23020 Setting Up Multer in Express — Local and Cloud Storage Intermediate → 23030 Uploading Files from React — File Input and FormData Intermediate → 23040 Cloud Storage with Cloudinary — Production File Uploads Intermediate → 23050 Avatar and Cover Image Upload for the MERN Blog Intermediate →

📂 Chapter 24: Sending Emails with Nodemailer

24010 How Email Sending Works in a Node.js Application Intermediate → 24020 Configuring Nodemailer with Gmail and SMTP Services Intermediate → 24030 Welcome and Email Verification Emails Intermediate → 24040 Password Reset Email Flow Intermediate → 24050 HTML Email Templates and Production Email Services Intermediate →

📂 Chapter 25: Real-Time Features with Socket.io

25010 How WebSockets and Socket.io Work Advanced → 25020 Setting Up Socket.io with Express Advanced → 25030 Rooms, Namespaces and Custom Events Advanced → 25040 Connecting React to Socket.io — The useSocket Hook Advanced → 25050 Authenticating Socket.io Connections with JWT Advanced →

📂 Chapter 26: Testing a MERN Application

26010 Testing Strategy for MERN Applications Advanced → 26020 Unit Testing Express Controllers and Utilities with Jest Advanced → 26030 Integration Testing the Express API with Supertest Advanced → 26040 Unit Testing React Components with Vitest and Testing Library Advanced → 26050 End-to-End Testing with Playwright Advanced →

📂 Chapter 27: Deploying a MERN Application

27010 MERN Deployment Architecture Overview Advanced → 27020 Deploying MongoDB with Atlas Advanced → 27030 Deploying the Express API to Render Advanced → 27040 Deploying the React App to Netlify Advanced → 27050 CI/CD Pipeline and Production Readiness Checklist Advanced →

📂 Chapter 28: Capstone – Blog/CMS App

28010 Capstone Architecture, Planning and Feature Scope Advanced → 28020 Building the Complete Express API Advanced → 28030 Building the Complete React Frontend Advanced → 28040 Integrating, Testing and Debugging the Capstone Advanced → 28050 Deploying, Launching and What to Build Next Advanced →