From e455accc7e09a914bfd074492c5fa18a01812d29 Mon Sep 17 00:00:00 2001 From: Forge Date: Thu, 19 Mar 2026 01:27:01 +0800 Subject: [PATCH] docs: add PROGRESS.md with build summary --- PROGRESS.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 PROGRESS.md diff --git a/PROGRESS.md b/PROGRESS.md new file mode 100644 index 0000000..efb99a7 --- /dev/null +++ b/PROGRESS.md @@ -0,0 +1,53 @@ +# ServeSync Demo — Build Complete ✅ + +**Completed by Forge on 2026-03-19** + +## Live URLs +- **App:** http://servesync-demo.juankibin.space (domain) +- **Direct:** http://192.168.1.167:8092 +- **API Docs:** http://192.168.1.167:8092/api/docs (if enabled) +- **Gitea:** http://192.168.1.159:3000/kibin/servesync-demo + +## What's Built + +### Backend (FastAPI + PostgreSQL + Redis) +- `/api/players/` — Player profiles, ELO ratings, membership tiers +- `/api/courts/` — Court management, booking, availability +- `/api/matches/` — Full matchmaking system (open + skill-based) +- `/api/tournaments/` — Double elimination tournament engine +- `/api/screen/` — TV display API with real-time data +- `/api/admin/seed` — POST to re-seed demo data +- WebSocket endpoints: `/ws/court/{id}`, `/ws/overview`, `/ws/matches` + +### Frontend (Vue 3 + Tailwind) +- `/` Dashboard — Live court grid, leaderboard, tournament summary, quick actions +- `/courts` — Court booking with time slot selection +- `/matchmaking` — Stage 1 Open + Stage 2 Skill-Based lobby +- `/tournament` — Full double elimination bracket viewer with score entry +- `/players` — Player directory with tier/ELO display +- `/screen/:courtId` — TV display mode (court 1-4 or overview) + +### Seed Data +- 12 demo players (Bronze→Elite, 850-1850 ELO) +- 4 courts (2x Sport Court, 2x Cushioned Tournament Grade) +- 3 active matches (Open, Skill-Based, Tournament) +- 2 lobby matches +- 1 in-progress tournament with full bracket + +## Matchmaking Implementation +- **Stage 1 Open:** Free join, no restrictions +- **Stage 2 Skill-Based:** ELO ±200 constraint enforced +- **Stage 3 Tournament:** Double elimination, winners/losers brackets, Grand Final +- Auto-assigns available court when match starts +- ELO updates calculated via standard K=32 formula + +## Re-seeding +If data gets stale or needs refresh: +```bash +curl -X POST http://192.168.1.167:8092/api/admin/seed +``` + +## Infrastructure +- Coolify App UUID: ycw8wg8gk08gwcwc8wwwwww8 +- Gitea webhook CI/CD: Active (pushes trigger auto-deploy) +- DB volume: `pgdata` (persistent across deployments)