Search for a command to run...
A web-based foosball tracking system with automatic goal detection and real-time score updates using ESP32 IoT integration

Foosball Pro League uses ESP32 IR sensors to track goals and keeps matches and leaderboards updated in real time.
The core server infrastructure handles real-time communication, data persistence, and secure API endpoints.
This was a 4th‑semester collaboration with WEXO A/S, developed largely on‑site so we could test on their table and iterate quickly.
We first aimed for VTAP100 NFC logins at the table, but the integration was too heavy for the timeline, so we switched to a simpler QR‑based team assignment that delivered the same experience.
Devices talk to the API using a simple API‑key that’s validated server‑side, while the web surface uses JWT sessions with hashed passwords and parameterized queries. Everything runs over HTTPS, and we apply rate limiting to keep noisy clients from overwhelming the API. It’s a pragmatic security posture for a prototype that still follows good habits.
We host on a small Ubuntu VPS at DigitalOcean, with the API, web app and supporting services wrapped in Docker. Nginx Proxy Manager handles routing and TLS so each service has a clean subdomain. A GitHub Actions pipeline builds new images, ships them to the server, and restarts containers, so merging to main feels like deploying a real product.