Highlights:
- π 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)
PORT=3000
MONGO_URI=your_mongo_uri_here
NODE_ENV=development
JWT_SECRET=your_jwt_secret
RESEND_API_KEY=your_resend_api_key
EMAIL_FROM=your_email_from_address
EMAIL_FROM_NAME=your_email_from_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 install
npm run devcd frontend
npm install
npm run dev