A modern real-time chat app built with the MERN stack.
DoChat lets users connect instantly, share files, track unseen messages, and manage profiles all with a clean, responsive UI.
- 🔑 Authentication – Secure login & signup with JWT
- 🟢 User Presence – See who’s online in real time
- 🔍 User Search – Find users by name from the user list
- ⚡ Real-Time Messaging – Instant chats powered by Socket.io
- 📩 Unseen Messages – Track unread messages per user
- 🖼️ File & Media Sharing – Upload and share files via Cloudinary
- 👤 Profile Management – Update profile details like name & bio
- 📱 Responsive UI – Built with React + TailwindCSS for a smooth, modern experience
Frontend:
- React (v19)
- TailwindCSS
- React Router
- React Toastify
- Socket.io-client
- Axios
Backend:
- Express.js (v5)
- MongoDB + Mongoose
- Socket.io
- JWT for authentication
- bcryptjs for password hashing
- Cloudinary for media storage
- dotenv, CORS
- Node.js v16+ and npm
- MongoDB instance (local or Atlas)
git clone https://github.com/your-username/dochat.git
cd dochatnpm install
cd frontend && npm install
cd ../backend && npm install- PORT=5000
- MONGO_URI=your_mongodb_uri
- JWT_SECRET=your_jwt_secret
- CLOUDINARY_CLOUD_NAME=your_cloudinary_name
- CLOUDINARY_API_KEY=your_cloudinary_key
- CLOUDINARY_API_SECRET=your_cloudinary_secret
- CLIENT_URL=your_client_url
- VITE_BACKEND_URL=your_backend_url
npm startThis uses concurrently to start both client and server.
- Group chats support
- Message reactions (👍 ❤️ 😂)
- Dark mode
- Push notifications
Contributions, issues, and feature requests are welcome!
Feel free to fork this repo and submit a PR.
Distributed under the MIT License. See LICENSE for more information.
Kunal Vijay Choudhary Final-year CSE Student & Full-Stack Developer
- GitHub: KunalVChoudhary
- Email: imkunalvchoudhary@gmail.com
- LinkedIn: kunal-vijayshree-choudhary
Thank U!

