Initialize project with basic structure, including Docker configuration, backend and frontend setup, environment configuration, and essential files for development.
This commit is contained in:
49
README.md
Normal file
49
README.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# 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/).
|
||||
Reference in New Issue
Block a user