
Develop a user schema with email, username, password, and a default profile picture using Mongoose, enforcing required fields, unique email, minimum password length, and timestamps for created and updated records.
Explore auth controllers in a MERN app by organizing sign up, login, and logout functions, exporting and importing them, and wiring root get requests toward MongoDB connectivity.
Implement a token generator in the auth controller to create and save new users from the request body, then test the sign‑up post route with postman using json data.
Configure the messages controller to fetch sidebar contacts (excluding the logged-in user) and retrieve messages between two users via a get messages route, with proper middleware in the MERN setup.
Explore how json web tokens authenticate users by signing payloads, issuing tokens on login, enforcing expiry, and securing cookies with httpOnly and sameSite.
Implements an async send messages controller that handles text or image payloads, uploads images to Cloudinary, saves new messages, and returns a 201 response with auth-checked routing.
Install the React-Icons here :- https://react-icons.github.io/react-icons/
Inorder to use : - npm install @react-icons/all-files --save
Set up react-hot-toast in the app to display login and signup messages, using toast error and toast success for authentication feedback.
builds a signup page with React useState managing username, email, and password as controlled inputs, handles onChange updates, and uses preventDefault on submit with error.message.
Implement client-side credential validation with React Hot Toast errors for missing username, email, and password, enforce email format and six-character minimum, then call the auth store signup when valid.
Reorganize the logged user data from the author store, pass user data in the auth controller, display profile information, and outline updating the profile picture with a Postman upload workaround.
Update the profile picture by wiring the user's data to the profile form, handling image uploads, and posting updates to the auth/update-profile endpoint with a success toast.
Learn to test profile image uploads in a MERN stack app, switch route handling from post to put, implement the course policy, and debug update profile in front-end and back-end.
Build and connect a real-time chat interface by creating chat container, header, messages, and input components, fetch users with useEffect, and display profile pictures and usernames from the chat store.
In this course, you will learn how to build a fully functional real-time chat application using the MERN Stack (MongoDB, Express, React, and Node.js). This course is designed for beginners to intermediate developers who want to strengthen their full-stack development skills by working on a real-world project that mirrors industry practices.
We start by understanding the project architecture and workflow, so you know how a professional chat application is structured. You will then move into backend development, where you’ll build secure and scalable APIs using Node.js and Express, connect them to MongoDB, and implement JWT-based authentication for user login and registration.
As the course progresses, you will implement real-time messaging using Socket io, allowing users to send and receive messages instantly. You’ll also learn how to manage one-to-one chats, group chats, online user status, typing indicators, and message notifications.
On the frontend, you’ll build a modern and responsive user interface using React. You’ll learn how to manage global state, handle API calls, protect routes, and create smooth user experiences for chat applications. The UI will be designed with usability in mind so it works well on both desktop and mobile devices.
This course also covers important production-level concepts such as:
Secure authentication and authorization
Error handling and validation
Environment configuration
Deploying the application to a live server
By the end of this course, you will have a complete MERN Stack chat application that you can showcase in your portfolio, demonstrate in interviews, or even extend into a full-scale product. This project will significantly boost your confidence in building real-world full-stack applications.