50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# Mixmaker
|
|
|
|
Mixmaker is a full-stack application for organizing Overwatch community scrims: Discord authentication, role ratings and preferences, RU/EN UI, event RSVP, preference-aware balanced 1/2/2 teams, captain assignment, Bo3 drafts and results, and a single-elimination bracket.
|
|
|
|
## Stack
|
|
|
|
- Go backend with Clean Architecture
|
|
- PostgreSQL
|
|
- React, TypeScript, Vite, TanStack Query and Router
|
|
- REST + Server-Sent Events
|
|
- Docker Compose for local PostgreSQL and Coolify production deployment
|
|
|
|
## Local development
|
|
|
|
Requirements: Go, Node.js/npm, Docker with Compose.
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
make dev-db
|
|
make migrate
|
|
|
|
# Terminal 1
|
|
make backend
|
|
|
|
# Terminal 2
|
|
make frontend
|
|
```
|
|
|
|
The frontend runs at `http://localhost:5173`; API requests are proxied to the backend. To use the real API locally, copy `frontend/.env.example` to `frontend/.env` and set `VITE_DEMO_MODE=false`.
|
|
|
|
Create a Discord application, add the callback URL from `DISCORD_REDIRECT_URL`, and fill in `DISCORD_CLIENT_ID`, `DISCORD_CLIENT_SECRET`, and `ADMIN_DISCORD_IDS`.
|
|
|
|
## Checks
|
|
|
|
```bash
|
|
make test
|
|
make lint
|
|
make compose-check
|
|
```
|
|
|
|
## Production
|
|
|
|
The root `compose.yaml` is designed for a single Coolify Docker Compose resource. Coolify owns routing and networking; the file intentionally does not declare custom networks or publish PostgreSQL.
|
|
|
|
See [deployments/coolify.md](deployments/coolify.md) for setup, secrets, storage, and backup requirements.
|
|
|
|
## Product documentation
|
|
|
|
Current decisions and domain rules live in [`memory_bank/`](memory_bank/).
|