A real-time chat room platform built with React, Node.js, Express, Socket.IO, and MongoDB. Users can create rooms, join with a unique code, chat instantly with others, and see live online activity.
- 🔐 Unique client-based user system
- 🏠 Create and manage chat rooms
- 🔑 Join rooms using generated room codes
- 💬 Real-time messaging with Socket.IO
- 👥 Live online user count
- 💾 Persistent message storage with MongoDB
- 🔄 Message history loading after refresh
- ⚡ Instant updates without page refresh
- 🎨 Modern responsive UI
- React
- TypeScript
- Tailwind CSS
- Zustand
- Socket.IO Client
- Vite
- Node.js
- Express.js
- TypeScript
- Socket.IO
- MongoDB
- Mongoose
2026-07-15.19-26-15.mov
-
User receives a unique client ID stored locally.
-
Users can create a room or join an existing room using a code.
-
When entering a room:
- Username is created if needed.
- User joins the Socket.IO room.
- Previous messages are loaded from MongoDB.
-
New messages are:
- Saved in MongoDB.
- Broadcast instantly to everyone in the room.
git clone
cd project-namecd backend
npm installCreate a .env file:
PORT=8000
MONGO_URI=your_mongodb_connection_string
FRONTEND=http://localhost:5173Start server:
npm run devcd frontend
npm installCreate .env:
VITE_API_URL=http://localhost:8000Start frontend:
npm run dev- 🔒 User authentication
- 📎 File sharing
- 😀 Emoji reactions
- 🔔 Notifications
- 🟢 Typing indicators
- 🛡️ Message moderation
- 📱 Mobile app version
Arham Kabir
Backend Developer focused on building scalable APIs and real-time applications.
This project is licensed under the MIT License.