Self-hosted live scoreboard kiosk for NBA, NFL, MLB, F1, UFC, cricket
Sport Kiosk is a full-stack sports scoreboard application optimized for
tablet/kiosk landscape display. An Express/TypeScript backend polls the
public ESPN scoreboard API on a dynamic schedule (30s while games are
live, 5min otherwise), optionally caching responses in Redis, and serves
a React/Vite single-page frontend that shows live scores and upcoming
games with auto-rotation.
Packaged as a single snap daemon: the backend serves the pre-built
frontend assets itself (via express.static + an SPA fallback), so no
separate nginx process or container is needed. Redis is optional and
used opportunistically if reachable on 127.0.0.1:6379 -- the app runs
correctly with no cache present, just with more frequent upstream ESPN
requests.