# 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)