01
Race management app for a youth cross-country Grand Prix, Boujdour
On race day, officials work in different places: call room, start line, finish line. Everyone needs the same trustworthy record of who ran and who arrived.
- Five roles (admin, call room, timekeeper, finish judge, institution), each with its own screen and permissions.
- Every race action (start, arrival, finish) is a single database function, so a step cannot half-happen.
- Live race panels, and attendance confirmed twice before a runner counts.
- admin
- call room
- timekeeper
- finish judge
- institution
- start_race()
- record_arrival()
- finish_race()