Разработка портала для дейтинга
Дейтинговая платформа — приложение для знакомств с алгоритмом подбора пар, чатом и системой безопасности. Технически: обработка медиа, realtime-коммуникации, рекомендательный движок. Бизнес-модель: freemium с платными функциями (суперлайки, буст профиля, расширенные фильтры).
Профиль и медиа
Профиль содержит: фотографии (до 9 штук), краткое описание (bio), базовые параметры (возраст, рост, образование, интересы). Верификация фото — обязательная функция:
- Selfie-verification: пользователь делает фото в указанной позе → ML-модель сравнивает с профильными фото (DeepFace, FaceNet)
- Синяя галочка «верифицирован» повышает доверие
Обработка фото: автоматическое определение лица (OpenCV или Cloud Vision API), предупреждение если нет чёткого лица, crop + WebP-конвертация.
Алгоритм подбора
Два подхода:
Swipe (Tinder-model): пользователь видит профили по одному, свайпает право (лайк) или лево (пропуск). Матч — оба лайкнули друг друга → открывается чат.
Рекомендательная лента (Hinge-model): ежедневные кандидаты, отобранные алгоритмом. Меньше gamification, выше качество.
Факторы ранжирования:
- Географическая близость (PostGIS radius query)
- Совместимость параметров (возраст, интересы)
- Активность пользователя (ELO-подобный рейтинг, учитывающий, кто лайкает)
- Недавняя активность (онлайн недавно → выше)
ELO-rating: каждый пользователь имеет внутренний рейтинг «привлекательности». Лайк от высокорейтингового пользователя повышает твой рейтинг больше, чем от низкорейтингового (как в шахматах).
def update_elo(liker_elo: float, liked_elo: float, mutual: bool) -> tuple:
k = 32
expected_liker = 1 / (1 + 10 ** ((liked_elo - liker_elo) / 400))
delta = k * ((1 if mutual else 0) - expected_liker)
return liker_elo + delta, liked_elo - delta
Realtime-чат
Чат открывается только при матче. WebSocket (Socket.io) для realtime-доставки сообщений. Функции:
- Текст, эмодзи, GIF
- Прочитано/доставлено (read receipts)
- Ввод текста (typing indicator)
- Фото (с модерацией перед отображением)
Безопасность и модерация
Дейтинг-платформы особенно подвержены мошенничеству (catfishing, scam):
- Автоматическая детектирование «мошеннических» паттернов в тексте (ссылки на внешние сайты, просьбы денег)
- Блокировка отправки внешних ссылок в первые N сообщений
- Жалобы + быстрая блокировка
- AI-модерация фото (NSFW-детектор)
- Верификация возраста для несовершеннолетних
Геолокация и фильтры
Основной фильтр — расстояние. PostGIS:
SELECT p.*, ST_Distance(p.location::geography, $user_location::geography) AS dist
FROM profiles p
WHERE p.id != $user_id
AND NOT EXISTS (SELECT 1 FROM swipes WHERE swiper_id = $user_id AND swiped_id = p.id)
AND ST_DWithin(p.location::geography, $user_location::geography, $radius_meters)
AND p.age BETWEEN $min_age AND $max_age
ORDER BY RANDOM() -- + ELO-weighting
LIMIT 20;
Монетизация
- Суперлайк — выделенный сигнал интереса (N штук бесплатно, больше — за монеты)
- Boost — профиль показывается больше людям в течение 30 минут
- Rewind — вернуть последний свайп влево (отменить)
- Расширенные фильтры — по образованию, росту, вредным привычкам
- Unlimited likes (по умолчанию лимит на день)
- Видеть кто лайкнул (без матча)
Stripe Billing для подписок + в-app покупки через App Store/Google Play (30% комиссия платформ).
Сроки
MVP (профили, свайпы, матчи, чат, базовый поиск): 4–5 месяцев. Полноценная платформа с ELO, верификацией, видеознакомствами, монетизацией, мобильными приложениями: 8–14 месяцев.







