Skip to content
/ Matcha Public

Full-stack web application designed to help people find partners through smart technology. Built with Flask and Vue 3.

Notifications You must be signed in to change notification settings

EVBLOOD/Matcha

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

376 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Matcha

Our Matcha is a full-stack web application designed to help people find partners through smart technology. Built with Flask and Vue 3, the application manages the entire process from account verification to the final meeting.

Note: The stable production code is located in the 42-submit branch. The main branch is mainly left for tracking the development process and workflow.

System Architecture

The project is built on a containerized micro-service architecture to ensure high availability and environment parity.

Core Technology Stack

Backend: Flask (Python) following a Repository Pattern (DAL) for clean database interactions.

Frontend: Vue.js 3 with TypeScript and SCSS, optimized for modern browsers (Chrome/Firefox).

Database: PostgreSQL for relational data management with manual query optimization.

Real-time: Socket.IO for instant messaging and live notifications.

Infrastructure

Nginx: Reverse proxy handling SSL termination and request routing.

Redis: High-speed caching for real-time presence and session management.

GeoIP: MaxMind GeoLite2 for automated localization.

Features

1. Account & Security

Secure Registration: Registration requires unique email verification via a dedicated link.

Data Protection: Passwords are cryptographically hashed; plain-text storage was forbidden.

Input Sanitization: Robust protection against SQL injection and XSS (HTML/JS injection).

Registration and Authentication Flow

alt text

alt text

alt text

alt text

alt text

alt text

alt text

alt text

2. Discovery & Matching

Smart Suggestions: Profiles are prioritized based on geographic proximity, shared interests (tags), and "fame rating".

Advanced Research: Comprehensive search filtering by age range, fame, location, and multiple tags.

Profile Management: Users manage bios, reusable interest tags, and up to 5 pictures.

Discovery Dashboard and Search Filters alt text

alt text

alt text

alt text

alt text

3. Interaction Layer

Real-time Chat: Instant messaging enabled between users with a mutual "like".

Live Notifications: Real-time alerts for profile views, likes, and messages.

Safety Controls: Features to block users or report "fake accounts".

Interaction, Notifs and Messages

alt text

alt text

alt text

Note: To see more of our UI, feel free to check screenshots folder in the root of our repository.

Bonus

The project includes several advanced features beyond the mandatory scope: OmniAuth: Social authentication strategies for streamlined login.

Interactive Map: Precise user localization via an integrated JavaScript map.

Advanced Media: Enhanced photo management and gallery features.

Audio/Video Chat: Real-time audio and video calls for connected users.

Event Planning: Tools to schedule and organize real-life dates for matches.

Video Call Interface

alt text

alt text

alt text

Deployment

The project uses a Makefile to simplify the project running.

Production Environment

The production setup includes SSL (self-signed for local testing), optimized assets, and automatic database health checks.

git checkout 42-submit
# Then create a .env file based on .env.example
# Then RUN
make

Development Environment

For active development with hot-reloading and debug tools:

cd project
# Then create a .env file based on .env.example
# Then RUN
make ENV=dev

About

Full-stack web application designed to help people find partners through smart technology. Built with Flask and Vue 3.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •