A real-time full‑stack chat application built using React, Node.js, Express, MongoDB, Socket.IO, and Zustand. This project focuses on real‑world concepts like authentication, real‑time messaging, global state management, and production‑ready frontend + backend integration.
- 🔐 User Authentication (Signup / Login)
- 💬 Real‑time Messaging using Socket.IO
- 👥 One‑to‑One Chat Support
- 🟢 Online / Offline User Status
- 🌐 Global State Management with Zustand
- 📦 MongoDB for Data Persistence
- ⚡ Modern React Frontend (Vite)
- 📁 Production‑ready build with Express serving frontend
- React (Vite)
- Zustand (Global State)
- CSS / Modern UI
- Node.js
- Express.js
- MongoDB + Mongoose
- Socket.IO
- JWT Authentication
ChatAPP/
│
├── back_end/
│ ├── controllers/
│ ├── models/
│ ├── routes/
│ ├── server.js
│ └── socket/
│
├── front_end/
│ ├── src/
│ ├── dist/ # Production build
│ ├── vite.config.js
│ └── package.json
│
├── .env
├── package.json
└── README.md
Create a .env file in the root directory and add:
PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_jwt_secret
git clone https://github.com/manishsuhtar01/chat_app.git
cd ChatAPPnpm installcd front_end
npm installnpm run buildThis will create the front_end/dist folder.
npm startServer will run at:
http://localhost:5000
cd front_end
npm run dev- Frontend is served statically by Express in production
- Build frontend once, start backend multiple times
- Real‑time communication with WebSockets
- Handling global state with Zustand
- Production‑level Express + React integration
- Debugging real deployment issues
- Proper project structure and Git workflow
- Group chats
- Message seen status
- Typing indicators
- File sharing
- Notifications
Manish Suthar B.Tech CSE | Full‑Stack Developer
If you like this project, give it a ⭐ on GitHub!