DevTinder Features List and Breakdown
DevTinder is a teaching project with real features. Here is the breakdown by module.
DevTinder Features List and Breakdown
DevTinder has the features of a real dating app backend. Here is the breakdown by module.
Module 1: Authentication
- Signup: email and password, with hashing and validation.
- Login: verify password, issue JWT in httpOnly cookie.
- Logout: clear cookie.
- Get Profile: return current user from JWT.
- Edit Profile: update fields like age, gender, photo URL, about.
Module 2: Profile
- Photo URL: store one photo URL (later multiple).
- About: short bio field.
- Skills/Interests: tags users can add to their profile.
Module 3: Feed and Browse
- Get Feed: returns paginated list of users to browse.
- Filters: by age, gender, location (later).
Module 4: Swipe and Match
- Send Swipe: POST /swipe with status 'ignored' or 'interested'.
- Check Match: if both swiped interested, a connection (match) is created.
- Get Matches: list of mutual matches.
- Get Requests: list of incoming pending requests.
Module 5: Connections
- List Connections: all matched users.
- Remove Connection: unmatch.
Module 6: Real-Time Chat
- Open Chat: connect to Socket.IO room identified by connection ID.
- Send Message: save to DB and emit to room.
- Receive Message: other user gets it in real time.
Module 7: Payments
- Upgrade to Premium: create Razorpay order, capture payment, save to DB.
- Webhook: receive Razorpay event, verify signature, update subscription status.
Module 8: Notifications (Later)
- Email Notifications: welcome email, match email, message email.
- In-App Notifications: matches, messages.
Module 9: Admin (Later)
- Admin Dashboard: user counts, payments, reports.
How to Use This Breakdown
Use this list to drive your LLD. For each module, write the schemas, API contracts, and logic. The modules are decoupled enough to extract into services later if needed.
The Takeaway
DevTinder features break into nine modules: auth, profile, feed, swipe/match, connections, chat, payments, notifications, and admin. Each module has clear APIs. Use this breakdown to drive your LLD.
Auth (signup, login, logout, profile), feed (browse users), swipe/match (send swipe, create match on mutual interest), connections, real-time chat, payments, notifications, and admin.
By module. Each module groups related features: auth, profile, feed, swipe/match, connections, chat, payments, notifications, admin. Modules are decoupled enough to extract into services later.
POST /swipe with status 'ignored' or 'interested'. If both users swiped 'interested' on each other, a connection (match) is created. The module also exposes get matches and get incoming requests.
Socket.IO. Both users join a room identified by the connection ID. When a message is sent, it is saved to the DB and emitted to the room. The other user receives it in real time.
Razorpay. The flow is: create order in Razorpay, capture payment on the client, receive webhook, verify signature, update subscription status. Save payment documents in MongoDB.
Ready to master Node.js completely?
Want to upskill yourself, crack your next interview, and get your dream job? Join our comprehensive course to dive deeper with high-quality video tutorials, solve interview questions, and a premium community.
Master Node.js
Want to upskill yourself, crack your next interview, and get your dream job? Join our comprehensive course.

