Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


❤️ MatchMe

Connect. Match. Chat.

Сучасна повноцінна платформа для пошуку однодумців та партнерів, що базується на розумних алгоритмах та real-time взаємодії.

ФункціоналАлгоритмСтек технологійЗапускСкріншоти

Java 21 Spring Boot GraphQL React TypeScript PostgreSQL

📖 Про проект

MatchMe — це не просто черговий сервіс для знайомств. Це високопродуктивна система, що використовує Virtual Threads Project Loom для обробки складних математичних алгоритмів сумісності та GraphQL Subscriptions для миттєвого обміну повідомленнями. Проект розроблений з акцентом на ефективність передачі даних, що критично важливо для мобільних пристроїв.

✨ Ключові можливості

🎯 Розумні рекомендації

  • Скорниг сумісності: Алгоритм розраховує відсоток "метчу" на основі 5+ точок біографічних даних (хобі, цінності, подорожі,віку,роду занять, місцезнаходжкнню,цілі знайомства).
  • Фільтрація за геолокацією: Використання PostGIS для пошуку людей у вашому місті.
  • Система Dismiss: Якщо ви відхилили кандидата, він більше ніколи не з'явиться у ваших рекомендаціях.

💬 Real-time Месенджер (Telegram Style)

  • Миттєві повідомлення: Працює на WebSockets — жодних постійних оновлень сторінки.
  • Індикатори друку: Ви бачите, коли співрозмовник пише вам повідомлення в реальному часі.
  • Статус Online: Точне відстеження присутності користувача в мережі(в розробці).
  • Історія чату: Пагіноване завантаження історії для економії трафіку.

👤 Управління профілем

  • Анкета інтересів: Детальна настройка Bio (хобі, розваги, цінності).
  • Приватність: Тільки ваші "метчі" та підтверджені контакти можуть бачити ваш повний профіль.

🧠 Алгоритм рекомендацій

Серцем системи є Jaccard Similarity Coefficient. Алгоритм порівнює набори даних користувача та потенційних кандидатів:

  1. Вагові коефіцієнти: Система адаптує ваги залежно від вашої мети (Friendship, Love, Professional).
  2. Loom Performance: Обчислення скорингу для сотень кандидатів відбувається паралельно у віртуальних потоках, що забезпечує мінімальний час відповіді сервера.

🛠 Технічний стек

Backend (Java)

  • Spring Boot 3 / Spring GraphQL
  • Spring Security + JWT (Stateless Auth)
  • Hibernate Spatial (PostGIS)
  • Project Loom (Virtual Threads)
  • Datafaker (для генерації тестових 100+ юзерів)

Frontend (React)

  • TypeScript & Vite
  • URQL Client v4 (Normalized Caching)
  • GraphQL-WS (Протокол для сокетів)
  • Lucide React (Іконки)
  • CSS Modules (Telegram-like UI)

📸 Скріншоти

Main Page

Головна сторінка: Розумні рекомендації зі скорингом метчу


Чати & Профіль користувача

Chat Profile

🚀 Швидкий запуск

    git clone https://gitea.kood.tech/mykolalytvynenko/match-me

📋 Вимоги

  • Java 21+
  • Node.js 18+
  • PostgreSQL з розширенням PostGIS

🔧 Налаштування бази

CREATE DATABASE matchme_db;
-- Обов'язково для роботи геолокації:
CREATE EXTENSION postgis;

🏃‍♂️ Запуск Backend

  1. Перейдіть в папку matchme-api.
  2. Налаштуйте application.properties (пароль до БД).
  3. Запустіть додаток з прапорцями для генерації даних:
./mvnw spring-boot:run -Dspring-boot.run.arguments="--drop --seed"

--drop очистить стару базу, --seed створить 100 випадкових профілів.

💻 Запуск Frontend

cd frontend
npm install
npm run dev

Додаток буде доступний за адресою http://localhost:5173.


Розроблено з ❤️ для фантастичних метчів

```

About

Real-time matchmaking and chat platform built with Java 21, Spring Boot, Project Loom, GraphQL Subscriptions, React, and PostgreSQL/PostGIS. Features smart compatibility scoring and geolocation filtering

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages