LapStream is a live event tracking platform for distance-based swim (and run) events. It will support on-site race operations with fast participant registration, lane/slot assignment, and live status views.
Enable staff to track participant progress in real time, keep lane assignments organized, and provide compelling live data during an event.
- Register participant at reception.
- Assign participant to a pace group and lane slot.
- Capture lap progress from lane/helper stations.
- Stream updates to live dashboards and operations views.
- Review/export event results and audit history.
This repository currently contains the backend service (/lapstream_server) and project planning docs.
Backend flow:
- configure server within the
serverconfig.dev.json(CONFIG_PATH env variable) - Register players via
POST /player/register - Manage Player's slot assignments via
/slots/TODO: - Connect and authenticate clients with permission management
- Establish bidirectional live event stream to receive lap count events from clients
- Add live dashboard views and data terminals for event participants
Planned platform architecture:
- Frontend: SvelteKit PWA
- Backend: Node, ExpressJS
- Database: PostgreSQL (
postgres:18-alpineimage) - ORM: drizzle
- Realtime communication: WebSockets
-
/lapstream_server- backend API, DB, migrations/tooling, OpenAPI specs (TODO) -
server routes are split into a controller layer and a service layer, no repository abstraction.
-
/lapstream_client- frontend (TODO), mock client with CLI (TODO)