82 lines
5.2 KiB
Markdown
82 lines
5.2 KiB
Markdown
# Дорожная карта
|
||
|
||
Статус на 19 июля 2026: технический MVP этапов 0–4 реализован. Следующий контрольный рубеж — развёртывание в Coolify и приёмочное тестирование с реальными Discord-аккаунтами; улучшения этапа 5 остаются будущей работой.
|
||
|
||
## Этап 0 — уточнение продукта
|
||
|
||
- согласовать способ оценки игроков и рейтинг по ролям;
|
||
- определить размеры команд и число одновременно создаваемых команд;
|
||
- выбрать первый формат турнирной сетки;
|
||
- подтвердить редактируемые части регламента;
|
||
- подготовить wireframes ключевых экранов.
|
||
|
||
## Этап 1 — фундамент
|
||
|
||
- создать Go backend и React frontend;
|
||
- подготовить отдельный Compose для локальной разработки;
|
||
- подготовить production Compose для Coolify без пользовательских сетей;
|
||
- добавить multi-stage Dockerfile для frontend и backend;
|
||
- настроить PostgreSQL в составе production-стека, persistent volume и миграции;
|
||
- добавить healthcheck и graceful shutdown сервисов;
|
||
- описать переменные Coolify и настройку внешних резервных копий БД;
|
||
- реализовать Discord OAuth и серверные сессии;
|
||
- добавить роли Admin/Player и безопасное начальное назначение Admin по Discord ID;
|
||
- зафиксировать OpenAPI-контракт;
|
||
- реализовать базовую навигацию и дизайн-систему;
|
||
- добавить переключение RU/EN и локализовать все пользовательские строки;
|
||
- добавить автоматические проверки и тесты.
|
||
|
||
## Этап 2 — игроки и балансировка
|
||
|
||
- самостоятельное заполнение профиля и рейтингов по ролям;
|
||
- выбор предпочитаемых ролей и до трёх желаемых союзников;
|
||
- календарь будущих миксов;
|
||
- статусы участия Going / Maybe / NotGoing;
|
||
- админку для событий, игроков и регистраций;
|
||
- изменение Admin статуса участия за другого игрока с аудитом;
|
||
- подтверждение списка участников Admin;
|
||
- назначение доступных ролей;
|
||
- генерация нескольких вариантов команд;
|
||
- оценка качества баланса;
|
||
- мягкий учёт ролевых и командных предпочтений в целевой функции;
|
||
- ручная перестановка игроков с пересчётом показателей.
|
||
- назначение и переназначение капитана каждой команды.
|
||
|
||
## Этап 3 — проведение серии
|
||
|
||
- создание пары команд;
|
||
- серверная жеребьёвка с прозрачным результатом;
|
||
- драфт карт по выбранному ruleset;
|
||
- бан героев с проверкой ролей и истории серии;
|
||
- фиксация победителя или ничьей каждой карты;
|
||
- автоматический счёт серии и определение победителя;
|
||
- исправление ошибочного результата с аудитом;
|
||
- синхронизация клиентов в реальном времени.
|
||
|
||
## Этап 4 — турнир
|
||
|
||
- single-elimination сетка;
|
||
- автоматическое создание следующих пар;
|
||
- экран трансляции/зрителя;
|
||
- история результатов игрового вечера.
|
||
|
||
## Этап 5 — удобство сообщества
|
||
|
||
- пресеты регламентов;
|
||
- статистика игроков и команд;
|
||
- повторная жеребьёвка с защитой от одинаковых составов;
|
||
- Discord-уведомления;
|
||
- импорт данных и резервное копирование.
|
||
|
||
## Идеи после MVP
|
||
|
||
- режим «капитанский драфт» игроков;
|
||
- ограничения «хочу вместе» и «не ставить вместе»;
|
||
- сезонный рейтинг сообщества;
|
||
- прогноз вероятности победы и подсветка причин дисбаланса;
|
||
- голосование зрителей за карту или MVP;
|
||
- публичный overlay для стрима;
|
||
- PWA с push-уведомлением о начале матча;
|
||
- синхронизация событий с внешним календарём через iCalendar;
|
||
- библиотека версионируемых регламентов под разные патчи.
|