Files
servesync-demo/PROGRESS.md
2026-03-19 01:27:01 +08:00

2.0 KiB

ServeSync Demo — Build Complete

Completed by Forge on 2026-03-19

Live URLs

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:

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)