Tap Battle is a phone-first Tokyo Game Show booth game. Players enter a name, tap as fast as possible for 10 seconds, and appear on a live TV leaderboard.
npm ci && npm run devDATABASE_URL is optional for local development. When it is unset, scores are kept in memory and reset when the server restarts. When it is set to a PostgreSQL connection URL, the app creates tap_battle_scores lazily on the first score query; the database is never required during the image build.
| Route | Purpose |
|---|---|
/ |
Player name, countdown, 10-second tapping game, and result |
/wall |
Auto-refreshing top-10 TV leaderboard and join QR code |
GET /api/scores?limit=10 |
Ranked scores, total games, and latest score |
POST /api/scores |
Validate and save { "name": string, "taps": number } |
push to main → GHCR edge image → AppThrust auto-release