A full-stack real-time chat application built with the MERN stack (MongoDB, Express.js, React, Node.js). It allows users to register, log in, and engage in seamless one-to-one and group messaging in real time.
- Secure sign-up and login (JWT-based authentication)
- Password encryption using bcrypt
- Persistent user sessions
- Real-time one-to-one messaging
- Group chat creation and messaging
- Typing indicators (optional)
- Online/offline user status (optional)
- Unread message indicators (optional)
- Message timestamps
- Modern and responsive UI (React)
- Chat list and active chat window
- User search and add to chat
- Dark mode support (optional)
- RESTful API endpoints for user, chat, and message management
- Protected routes with JWT middleware
- Modular and clean code structure
- Toast or badge notifications for new messages
- Sound or vibration on new message (mobile support)
- React – Core UI library
- Axios – HTTP requests
- React Router – Routing
- Socket.IO Client – Real-time WebSocket communication
- Context API / Redux – State management (based on your implementation)
- Styled Components / CSS Modules / Tailwind – (depending on your styling choice)
- Node.js + Express.js – API & server logic
- MongoDB + Mongoose – Database and ODM
- Socket.IO – WebSocket for real-time features
- JWT – Authentication
- bcrypt – Password hashing
- dotenv – Environment variable management
# Clone the repository
git clone https://github.com/your-username/chat-app.git
cd chat-app
# Install server dependencies
cd backend
npm install
# Install client dependencies
cd ../frontend
npm install