A scalable and secure backend for a modern dating application built with Node.js, Express, TypeScript, and MongoDB. It provides real-time features like matching, chat, and notifications with a clean and modular REST API architecture.
Admin Dashboard : https://dating-app-dashboard-mu.vercel.app/
- JWT-based authentication
- Secure login and registration
- Password hashing with bcrypt
- Protected routes middleware
- User profile creation and update
- Profile photos upload support
- Bio, interests, and preferences
- Account delete and deactivate option
- Swipe (like/dislike) functionality
- Mutual match detection
- Smart matching based on preferences
- One-to-one messaging between matched users
- Socket.IO for real-time communication
- Message history stored in MongoDB
- Online/offline status tracking
- Nearby user discovery
- Distance-based filtering
- Location preference settings
- Like and Super Like system
- Block and report users
- Unmatch functionality
- Real-time notifications
- Match and message alerts
- Event-based triggers
- Node.js
- Express.js
- TypeScript
- MongoDB & Mongoose
- Socket.IO
- JWT Authentication
- Redis (optional)
src/
├── controllers/
├── models/
├── routes/
├── services/
├── middlewares/
├── utils/
├── config/
└── server.ts
# Clone repository
git clone https://github.com/your-username/dating-app-backend.git
# Install dependencies
npm install
# Setup environment variables
cp .env.example .env
# Run development server
npm run devPORT=5000
MONGO_URI=your_mongodb_connection
JWT_SECRET=your_secret_key
npm run dev # Development server
npm run build # Build TypeScript
npm start # Production server
npm run lint # Lint code- RESTful API design
- Authentication & authorization
- Real-time messaging
- User interaction system
- Designed for scalability and production use
- Modular architecture for easy extension
- Can be integrated with frontend (React / React Native)
This project is licensed for personal and educational use.