A modern and scalable full-stack chat platform built with the MERN stack featuring secure authentication, real-time messaging, media uploads, email integration, online presence tracking, and a beautiful responsive UI.
- Frontend:
https://your-frontend-url.com - Backend API:
https://your-backend-url.com
- Custom JWT Authentication
- Secure Login & Signup System
- Protected API Routes
- Password Hashing with Bcrypt
- HTTP-only Cookie Authentication
- Session Persistence
- API Rate Limiting with Arcjet
- Environment-based Secure Configurations
- Real-Time Messaging using Socket.io
- Instant Message Delivery
- Online / Offline Presence Indicators
- Typing Status Indicators
- Notification & Typing Sounds
- Auto Scroll to Latest Messages
- Persistent Chat History
- Image Uploads with Cloudinary
- Optimized Media Delivery
- Welcome Emails with Resend API
- User Profile Image Support
- Modern React UI
- Tailwind CSS Styling
- DaisyUI Components
- Zustand State Management
- Responsive Mobile-Friendly Design
- Smooth User Experience
- Loading Skeletons & UI Feedback
- Toast Notifications
- RESTful API Architecture
- Express.js Backend
- MongoDB + Mongoose Integration
- Modular Folder Structure
- Centralized Error Handling
- Scalable Architecture Design
- Middleware-based Authentication
- Clean Code Architecture
- Easy Local Setup
- Git & GitHub Workflow Friendly
- Branch & PR Based Development
- Free-Tier Deployment Ready
|
|
root
β
βββ backend
β βββ src
β β βββ controllers
β β βββ middleware
β β βββ models
β β βββ routes
β β βββ lib
β β βββ utils
β β βββ server.js
β β
β βββ package.json
β βββ .env
β
βββ frontend
β βββ src
β β βββ components
β β βββ pages
β β βββ store
β β βββ lib
β β βββ constants
β β βββ main.jsx
β β
β βββ package.json
β βββ vite.config.js
β
βββ README.mdgit clone https://github.com/your-username/your-repo-name.git
cd your-repo-nameCreate a .env file inside the backend folder.
PORT=3000
MONGO_URI=your_mongodb_connection_string
NODE_ENV=development
JWT_SECRET=your_super_secret_jwt_key
RESEND_API_KEY=your_resend_api_key
EMAIL_FROM=your_email_address
EMAIL_FROM_NAME=your_sender_name
CLIENT_URL=http://localhost:5173
CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_name
CLOUDINARY_API_KEY=your_cloudinary_api_key
CLOUDINARY_API_SECRET=your_cloudinary_api_secret
ARCJET_KEY=your_arcjet_key
ARCJET_ENV=developmentcd backend
npm installcd frontend
npm installcd backend
npm run devBackend will run on:
http://localhost:3000cd frontend
npm run devFrontend will run on:
http://localhost:5173| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/signup |
Register User |
| POST | /api/auth/login |
Login User |
| POST | /api/auth/logout |
Logout User |
| GET | /api/auth/check |
Check Authentication |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/messages/users |
Get Sidebar Users |
| GET | /api/messages/:id |
Get Chat Messages |
| POST | /api/messages/send/:id |
Send Message |
- Socket.io Real-Time Connection
- User Online Status
- Typing Events
- Live Message Updates
- Instant UI Synchronization
- Vercel
- Netlify
- Render
- Railway
- MongoDB Atlas
- Cloudinary
- β Group Chats
- β Voice Calling
- β Video Calling
- β Read Receipts
- β End-to-End Encryption
- β File & Document Sharing
- β AI Chat Features
- β Message Reactions
- β Chat Themes
- β Pinned Messages
npm test# Create new branch
git checkout -b feature/feature-name
# Commit changes
git commit -m "Added new feature"
# Push branch
git push origin feature/feature-nameContributions are welcome!
- Fork the repository
- Create your feature branch
- Commit your changes
- Push your branch
- Open a Pull Request
This project is licensed under the MIT License.
If you like this project, consider giving it a β on GitHub.

