- π Custom JWT Authentication (no 3rd-party auth)
- β‘ Real-time Messaging via Socket.io
- π’ Online/Offline Presence Indicators
- π Notification & Typing Sounds (with toggle)
- π¨ Welcome Emails on Signup (Resend)
- ποΈ Image Uploads (Cloudinary)
- π§° REST API with Node.js & Express
- π§± MongoDB for Data Persistence
- π¦ API Rate-Limiting powered by Arcjet
- π¨ Beautiful UI with React, Tailwind CSS & DaisyUI
- π§ Zustand for State Management
- π§βπ» Git & GitHub Workflow (branches, PRs, merges)
- π Easy Deployment (free-tier friendly with Sevalla)
- π§ͺ .env Setup
To run this project, you will need to add the following environment variables to your .env file
PORT= 3000MONGO_URI=your_mongo_uri_hereNODE_ENV=developmentJWT_SECRET=your_jwt_secretRESEND_API_KEY=your_resend_api_keyEMAIL_FROM=your_email_from_addressEMAIL_FROM_NAME=your_email_from_nameCLIENT_URL=http://localhost:5173CLOUDINARY_CLOUD_NAME=your_cloudinary_cloud_nameCLOUDINARY_API_KEY=your_cloudinary_api_keyCLOUDINARY_API_SECRET=your_cloudinary_api_secretARCJET_KEY=your_arcjet_keyARCJET_ENV=development
- cd backend
- npm install
- npm run dev
- cd frontend
- npm install
- npm run dev