Go-монолит на настоящей PostgreSQL/PostGIS, Redis и фоновом воркере, реализующий ключевые сценарии приложения знакомств и спортивных событий SportVibe: авторизация, лента и матчинг, события с заявками, уведомления через outbox-воркер и demo-панель администратора.
Опрос реальных health-эндпоинтов API каждые несколько секунд — не статичные иконки.
Вертикаль ключевых сценариев из функционального ТЗ — не полный коммерческий MVP (см. явные исключения ниже).
Phone + OTP (demo-провайдер), JWT access/refresh с ротацией и reuse-detection, rate-limit через Redis.
Регистрация с динамическими полями по виду спорта (JSONB), просмотр/редактирование, фильтры анкет.
Рекомендации по PostGIS-геофильтру, лайк/дизлайк, транзакционное создание match на взаимный лайк.
Создание, заявки на участие, подтверждение организатором, лимит участников, геокод-заглушка.
Outbox-паттерн: фоновый воркер асинхронно доставляет уведомления с учётом настроек пользователя.
Отдельный demo-контур: пользователи, события, жалобы — новый API, не реконструкция чужого.
Модульный монолит: два бинаря (api, worker) из одного Go-модуля, общие internal-пакеты, один источник правды.
Пути сохранены 1:1 из реального Postman-контракта клиента (ADR-1) — совместимость с уже собранным мобильным приложением, не «причёсанный» REST.
| Группа | Примеры путей | Статус |
|---|---|---|
| Auth | /api/v1/auth/otp_enter, otp_verify, register | реализовано |
| Profile | /api/v1/myprofile/, edit, notifications/ | реализовано |
| Datings | /api/v1/datings/recommendations/, like, likes/ | реализовано |
| Events | /api/v1/events/create_event, events_manage, all/ | реализовано |
| Admin (demo) | /api/v1/admin/users, events, complaints | новый demo-контур |