A user-focused platform designed to connect individuals based on shared goals, aspirations, or other criteria. The system includes user profiles, match recommendations powered by machine learning (ML), and real-time messaging for matched users.
-
User Profile Service
Users can create and manage their profiles, which include personal information and image links stored via a CDN. -
ML-Powered Match Recommendations
An ML model fetches user profiles and suggests matches based on shared criteria like goals, interests, or other metrics. -
Real-Time Chat for Matched Users
Once matched, users can communicate through a real-time chat system.
-
Backend:
- Node.js (Express): API gateway and services.
- Machine Learning: Custom ML model to calculate and recommend matches.
-
Database:
- PostgreSQL: Stores user profiles and match data.
- Cassandra: Handles real-time chat messaging.
-
Frontend:
- Next.js: Client-side application built using React for dynamic interaction and a seamless user experience.
- Tailwind CSS: For responsive design and a modern UI.
The profile service stores user data such as:
- User ID
- Username
- Bio
- Profile image URL
- Location
- Interests
- Social media links
A table to store user matches:
- Match ID
- User IDs (for the two matched users)
- Match score (optional)
- Match status (e.g., pending, accepted, rejected)
Used to store chat messages for matched users:
- User IDs
- Timestamp
- Message content
- POST
/api/users
: Create a new user profile. - GET
/api/users/:id
: Retrieve user profile by ID. - GET
/api/matches
: Get recommended matches. - POST
/api/chat
: Send a message to a matched user.
- Video Calling: Add real-time video chat functionality for matched users.
- Group Chats: Allow users to create and participate in group chats around shared interests.
- Match History: Show a history of previous matches and conversations.
Contributions are welcome! Please fork the repository and submit a pull request to contribute.