Files
mixmaker/memory_bank/roadmap.md
lemintare 5e0825f43f
Some checks failed
CI / backend (push) Has been cancelled
CI / frontend (push) Has been cancelled
CI / compose (push) Has been cancelled
Add turn alerts and public team rosters
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-19 20:46:23 +03:00

7.6 KiB
Raw Blame History

Дорожная карта

Статус на 19 июля 2026: полный versioned production-пайплайн между событием, составами, live-серией и турнирной сеткой реализован. Backend, admin roster editor, live/spectator UI, SSE и проверки контракта связаны в единый сценарий.

Завершённый контрольный рубеж — полный пайплайн скрима

  • закрыть регистрацию и зафиксировать Going-участников;
  • сгенерировать и выбрать вариант баланса;
  • дать Admin обменивать игроков одинаковой роли и заменять их резервными;
  • пересчитывать показатели после каждой ручной правки;
  • подтвердить составы 1/2/2 и капитанов;
  • редактировать произвольный граф Bo3 через Team / Winner / Loser и запускать все готовые пары;
  • связать жеребьёвку, map draft, hero draft и результаты карт единым versioned FSM;
  • блокировать обычное изменение составов после старта;
  • разрешить аудируемую аварийную замену Admin;
  • синхронизировать admin/live/spectator экраны через SSE;
  • показывать сохранённые составы на публичной странице события после балансировки;
  • уведомлять участника звуком, когда сервер передаёт ход его команде;
  • покрыть переходы и конфликты версий 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 — турнир

  • versioned drag-and-drop редактор произвольной сетки;
  • автоматическое создание следующих пар по Winner/Loser-зависимостям;
  • экран трансляции/зрителя;
  • история результатов игрового вечера.

Этап 5 — удобство сообщества

  • пресеты регламентов;
  • статистика игроков и команд;
  • повторная жеребьёвка с защитой от одинаковых составов;
  • Discord-анонс нового микса с @everyone и ссылкой на регистрацию;
  • event-specific Discord-роли ответа и статусов Going/Maybe/NotGoing;
  • обновление анонса, напоминания, публикация составов и результатов;
  • идемпотентная синхронизация временных Discord team/captain и Tank/Damage/Support ролей;
  • отдельные member-list группы для команд и зарегистрированных участников;
  • пятиминутная глобальная сверка и восстановление managed Discord-ролей;
  • создание и очистка временных командных голосовых каналов;
  • импорт данных и резервное копирование.

Идеи после MVP

  • режим «капитанский драфт» игроков;
  • ограничения «хочу вместе» и «не ставить вместе»;
  • сезонный рейтинг сообщества;
  • прогноз вероятности победы и подсветка причин дисбаланса;
  • голосование зрителей за карту или MVP;
  • публичный overlay для стрима;
  • PWA с push-уведомлением о начале матча;
  • синхронизация событий с внешним календарём через iCalendar;
  • библиотека версионируемых регламентов под разные патчи.