24 lines
2.0 KiB
Plaintext
24 lines
2.0 KiB
Plaintext
---
|
|
description: Core Mixmaker product context
|
|
alwaysApply: true
|
|
---
|
|
|
|
# Mixmaker Context
|
|
|
|
- Mixmaker is a web app for organizing Overwatch scrims for communities of 20+ players.
|
|
- Read the relevant files in `memory_bank/` before meaningful product or architecture changes.
|
|
- The core flows are Discord auth, player profiles, event calendar and RSVP, role-based team balancing, coin toss, map and hero bans, Bo3 results, and tournament brackets.
|
|
- Players sign in through Discord and may edit only their own Tank, Damage, and Support Overwatch ranks (Bronze 5 through Champion 1), preferred roles, and up to three preferred teammates.
|
|
- Scheduled events support Going, Maybe, and NotGoing participation statuses.
|
|
- Admins may manage events and change RSVP for another player; store the acting account for every administrative override.
|
|
- The balancer creates full 5v5 teams with 1 Tank, 2 Damage, and 2 Support; unmatched players remain in reserve.
|
|
- Rating balance and 1/2/2 are hard priorities; role and teammate preferences are soft weighted objectives.
|
|
- An Admin assigns one captain from each team's current roster; captain permission is scoped to that team.
|
|
- Keep the UI polished, responsive, mobile-first, and styled as a dark esports control panel.
|
|
- Keep all user-visible strings available in Russian and English through the shared localization layer.
|
|
- Business rules and draft state are enforced by the backend; the frontend must not be the source of truth.
|
|
- Preserve draft, result corrections, and match history as auditable actions instead of silently rewriting completed steps.
|
|
- Production deploys to Coolify as one Docker Compose stack with PostgreSQL; do not declare custom Compose networks unless explicitly required.
|
|
- Do not commit production secrets, publish PostgreSQL ports, or omit persistent storage, healthchecks, and backup documentation.
|
|
- After meaningful product, architecture, API, data-model, deployment, or workflow changes, update the relevant files in `memory_bank/` in the same task.
|