feat: Rebuild as Court Manager Dashboard v2

- Complete rewrite for single Court Manager user
- Feature 1: Player Management (CRUD, ELO, skill level)
- Feature 2: Court Reservation (timeline, override)
- Feature 3: Match Event Builder (3-step wizard)
  - Step 1: Event setup with player selection + stage calculator
  - Step 2: Stage configurator (Open/Skill/RR/Tournament)
  - Step 3: Auto bracket generation
- Feature 4: Live Court View (main dashboard, 2x2 grid)
- Event Control: score entry, bracket advancement, court assignment
- Screen view: TV display per court (/screen/:id)
- Seed: 8 players, 4 courts, 1 completed + 1 active event
- Routes: / players courts events events/new events/:id screen/:id
This commit is contained in:
Nemo
2026-03-19 07:35:51 +08:00
parent e455accc7e
commit 4421f61c24
56 changed files with 2949 additions and 4209 deletions

View File

@@ -1,21 +1,14 @@
#!/bin/bash
set -e
echo "Waiting for database..."
until python -c "
import psycopg2, os
try:
conn = psycopg2.connect(os.environ.get('DATABASE_URL', 'postgresql://servesync:servesync@db:5432/servesync'))
conn.close()
print('DB ready')
except Exception as e:
print(f'DB not ready: {e}')
exit(1)
"; do
sleep 2
done
echo "Running seed..."
cd /app && python seed.py && echo "Seed complete" || echo "Seed failed (continuing)"
echo "Waiting for database..."
sleep 3
echo "Running migrations..."
python -c "from app.database import engine; from app.models import Base; Base.metadata.create_all(bind=engine)"
echo "Seeding data..."
python /app/seed.py || echo "Seed already exists or failed (non-fatal)"
echo "Starting server..."
exec uvicorn app.main:app --host 0.0.0.0 --port 8000
exec uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 1