Matcha is a full-stack web application developed as part of the 42 curriculum. The project consists of building a dating-style platform where users can create profiles, browse and match with other people, and exchange messages. It focuses on implementing user authentication, matching logic, real-time interactions, and secure data management.
1. Clone the repository
2. Build the project
3. Browse to Matcha
- User registration and secure authentication.
- Profile creation and editing (photos, bio, interests, preferences)
- User discovery with filtering and sorting options.
- Like / match system between users
- Real-time chat between matched users
- Notifications for likes, matches, and messages
- Profile popularity and interaction tracking
- Account verification and basic security measures
- Landing page -
- Profile creation -
- Profile -
- Home -
- event: "connect": only works if the user is already logs
- event: "chat": required {user_id: "target", "content": "message"}
- event: "ping": return a "pong" event, only to test connection
- event: "online": send to a client to inform that an user is online {"user_id": "user_online"}
- event: "offline": send to a client to inform that an user is offline {"user_id": "user_offline"}
- event: "like": send to a client to inform that an user liked him {"user_id": "user_who_liked"}
- event: "unlike": send to a client to inform that an user unliked him {"user_id": "user_who_unliked"}
- event: "view": send to a client to inform that an user viewed him {"user_id": "user_who_viewed"}
- event: "match": send to a client to inform that an user is in a match {"user_id": "user_match"}
- event: "message": send to a client to inform of a message from an user {"user_id": "from_id", "content": "message"}
When a user is successffully ot a socketio endpoint, the list of all currents matched connected user will be send by "online" events.
Blocked user won't have notifications.




