Files
mixmaker/memory_bank/roadmap.md

96 lines
6.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Дорожная карта
Статус на 19 июля 2026: полный versioned production-пайплайн между событием, составами, live-серией и турнирной сеткой реализован. Backend, admin roster editor, live/spectator UI, SSE и проверки контракта связаны в единый сценарий.
## Завершённый контрольный рубеж — полный пайплайн скрима
- [x] закрыть регистрацию и зафиксировать Going-участников;
- [x] сгенерировать и выбрать вариант баланса;
- [x] дать Admin обменивать игроков одинаковой роли и заменять их резервными;
- [x] пересчитывать показатели после каждой ручной правки;
- [x] подтвердить составы 1/2/2 и капитанов;
- [x] запускать одиночную Bo3-серию для двух команд или single-elimination турнир для нескольких;
- [x] связать жеребьёвку, map draft, hero draft и результаты карт единым versioned FSM;
- [x] блокировать обычное изменение составов после старта;
- [x] разрешить аудируемую аварийную замену Admin;
- [x] синхронизировать admin/live/spectator экраны через SSE;
- [x] покрыть переходы и конфликты версий unit-, integration- и UI-тестами.
## Этап 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 — игроки и балансировка
- самостоятельное заполнение профиля и рейтингов по ролям;
- выбор предпочитаемых ролей, до трёх желаемых союзников и до трёх avoid-игроков;
- календарь будущих миксов;
- статусы участия Going / Maybe / NotGoing;
- админку для событий, игроков и регистраций;
- изменение Admin статуса участия за другого игрока с аудитом;
- подтверждение списка участников Admin;
- назначение доступных ролей;
- генерация нескольких вариантов команд;
- оценка качества баланса;
- мягкий учёт ролевых, командных и avoid-предпочтений в целевой функции;
- ручная перестановка игроков с пересчётом показателей.
- назначение и переназначение капитана каждой команды.
## Этап 3 — проведение серии
- создание пары команд;
- серверная жеребьёвка с прозрачным результатом;
- драфт карт по выбранному ruleset;
- бан героев с проверкой ролей и истории серии;
- фиксация победителя или ничьей каждой карты;
- автоматический счёт серии и определение победителя;
- исправление ошибочного результата с аудитом;
- синхронизация клиентов в реальном времени.
## Этап 4 — турнир
- single-elimination сетка;
- автоматическое создание следующих пар;
- экран трансляции/зрителя;
- история результатов игрового вечера.
## Этап 5 — удобство сообщества
- пресеты регламентов;
- статистика игроков и команд;
- повторная жеребьёвка с защитой от одинаковых составов;
- Discord-уведомления;
- импорт данных и резервное копирование.
## Идеи после MVP
- режим «капитанский драфт» игроков;
- ограничения «хочу вместе» и «не ставить вместе»;
- сезонный рейтинг сообщества;
- прогноз вероятности победы и подсветка причин дисбаланса;
- голосование зрителей за карту или MVP;
- публичный overlay для стрима;
- PWA с push-уведомлением о начале матча;
- синхронизация событий с внешним календарём через iCalendar;
- библиотека версионируемых регламентов под разные патчи.