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