Initialize project with basic structure, including Docker configuration, backend and frontend setup, environment configuration, and essential files for development.
This commit is contained in:
@@ -42,6 +42,7 @@ backend/
|
||||
- React + TypeScript;
|
||||
- Vite;
|
||||
- TanStack Router и TanStack Query;
|
||||
- собственный типизированный слой локализации RU/EN с сохранением языка в localStorage;
|
||||
- Tailwind CSS;
|
||||
- shadcn/ui как основа компонентов;
|
||||
- Framer Motion для умеренных анимаций;
|
||||
@@ -63,7 +64,7 @@ frontend/src/
|
||||
|
||||
## Границы модулей
|
||||
|
||||
- Players: профили, рейтинги и предпочтения ролей;
|
||||
- Players: профили, рейтинги, предпочтения ролей и желаемых союзников;
|
||||
- Auth: Discord OAuth, сессии и роли доступа;
|
||||
- Admin: управление игроками, регистрациями, событиями и капитанами;
|
||||
- Events: календарь, регистрации участников и состояние игрового вечера;
|
||||
@@ -77,7 +78,9 @@ frontend/src/
|
||||
|
||||
### Балансировщик
|
||||
|
||||
В MVP — детерминированный оптимизатор с весовой функцией качества и ограниченным поиском вариантов. Алгоритм располагается в доменном слое и не зависит от БД. Позже его можно заменить на constraint solver без изменения API сценария.
|
||||
В MVP — детерминированный оптимизатор с весовой функцией качества и ограниченным поиском вариантов. Overwatch-ранги Bronze 5 → Champion 1 отображаются в ordinal 1–40 только для внутренних вычислений. Жёсткие ограничения обеспечивают состав 1/2/2 и уникальность игроков. Мягкие штрафы учитывают общий и ролевой разброс рейтинга, назначение вне предпочитаемой роли и разделение желаемых союзников. После построения нескольких начальных вариантов выполняется локальный поиск обменами игроков одной роли.
|
||||
|
||||
Алгоритм располагается в доменном слое и не зависит от БД. При росте сообщества его можно заменить на CP-SAT/MILP solver без изменения API сценария.
|
||||
|
||||
### Драфт как конечный автомат
|
||||
|
||||
|
||||
Reference in New Issue
Block a user