Skip to content

InpasM/matcha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

490 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MATCHA

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.

Try it

1. Clone the repository

2. Build the project

make up

3. Browse to Matcha

https://localhost:8081/

Features

- 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

Screenshots

- Landing page -

- Profile creation -

- Profile -

- Home -

Socketio endpoints documentation

  • 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.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors