Skip to content

hmellahi/matcha

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matcha (Tinder Clone) Project

Project Overview

Matcha is a modern web application inspired by Tinder's swiping interface. It enables users to discover potential matches based on shared interests and location. If two users mutually swipe right on each other's profiles, they can connect and start chatting, potentially leading to meaningful connections.

Technology Stack

This project employs a range of cutting-edge technologies:

Vue Vue 3: Frontend framework for building user interfaces.
TailwindCSS Tailwind CSS: Styling library for modern and responsive user interfaces.
Express Express JS: Backend framework for building the server-side application logic.
PostgreSQL Postgres: Database for efficient data storage with native SQL queries.
JavaScript WebSockets: Real-time communication for online gameplay and chat.
TypeScript TypeScript: Superset of JavaScript with static typing for enhanced development.

Installation

To run the Matcha project locally, follow these steps:

  1. Ensure Docker is installed on your system. Refer to the Docker documentation for installation instructions.
  2. Clone the project repository to your local machine.
  3. Navigate to the database directory within the project using the terminal.
  4. Execute the sh run.sh command to start the necessary database services.

Once the application is built and launched, access it by visiting http://localhost:8890 in your web browser.

Key Features

Registration and Signing-in

  • Users can register with their email address, username, name, and protected password. A verification link is sent via email for account confirmation.
  • Secure user login and password reset functionality.
  • Convenient one-click logout from any page.

User Profile

  • Users can create detailed profiles including gender, sexual preferences, biography, interests with reusable tags, and profile pictures.
  • Profile information is modifiable, including personal details.
  • Tracking of profile visits and "likes" received from other users.
  • Public "fame rating" to add an interactive element.

Browsing and Matching

  • Users receive curated match suggestions based on geographic area, common tags, and "fame rating."
  • Intelligent matching prioritizes profiles from the same region and offers sort and filter options.
  • Advanced search functionality with customizable criteria, including age, "fame rating," location, and interests.

Interaction and Communication

  • Explore other users' profiles, see their information, and track visits.
  • "Like" a profile picture to initiate connections for real-time chat when mutual.
  • Real-time chat functionality for connected users.
  • Notifications for events like receiving "likes," profile views, messages, and mutual "likes."

Location Services

  • Integration of Google Maps for changing user location and enhancing the matching experience.

Acknowledgments

This project was created by Hamza Mellahi and Houssam Moumanis.

Contributing

Contributions and feedback are welcome! Feel free to create issues or pull requests to improve this project.


Disclaimer: Matcha is a project created for educational purposes and is not affiliated with Tinder or any dating platform.

Releases

No releases published

Packages

No packages published

Languages

  • Vue 38.7%
  • JavaScript 34.2%
  • TypeScript 20.8%
  • HTML 5.6%
  • CSS 0.3%
  • Shell 0.3%
  • Dockerfile 0.1%