YapUp is a full-stack real-time chat application that supports image sharing, unread message tracking, and online presence detection.
- Frontend: Next.js, Tailwind CSS
- Backend: Node.js, Express, Socket.IO
- Authentication: Clerk
- Database: MongoDB with Mongoose
- Image Upload: Cloudinary
- ⚡ Real-time messaging using Socket.IO
- 🔐 User authentication with Clerk
- 🖼️ Image attachments via Cloudinary
- 😄 Emoji picker support
- 👤 One-to-one private conversations
- 🔔 Unread message tracking per user
- ✅ Message read status
- 🗑️ Deletion logic for sender/receiver
- 🟢 Online user presence indicator
- 💻 Desktop-first responsive design
git clone https://github.com/avijitdas126/Real-time-chat-app.git
cd Real-time-chat-appcd chat_app
npm install
npm run devNEXT_PUBLIC_SOCKET_URL=http://localhost:8000
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=
NEXT_PUBLIC_CLOUD_NAME=
NEXT_PUBLIC_UPLOAD_PRESET=cd server
npm install
npm startMONGO_URL=mongodb://0.0.0.0:27017/real-time-chat
CLERK_PUBLISHABLE_KEY=
CLERK_SECRET_KEY=If you found this project helpful, please ⭐️ the repo. It encourages me to improve it further!