This is a backend server with API for the Lap Timer system. It contain an ASP.Net Core 3.1 Web API that works with IoT lap timers like this one
- Build and run the project
- Swagger is accessible from the root URL to view and test endpoints
- Check out the integration tests to see the RaceTimer controller behavior
The lap time announcer plays audio of the lap time up to one minute.
The race manager is the core of the application that controls everything.
- Register lap timers
- Start a race
- Add lap results
- Get current race results
- Get current race results for a specific lap timer
- Registration
- New lap timers can register with the race manager in this state
- Transitions to
StartCountDown
by a call to the/StartRace
endpoint
- StartCountdown
- Counts down to a race start. The countdown gives the IoT timers a chance to synchronize the start time
- Transitions to
InProgress
when the countdown expires
- InProgress
- Transitions to
FinishCountdown
once the first timer has finished the race
- Transitions to
- FinishCountdown
- Transitions to
Finished
once either all lap timers have finished or the countdown has expired
- Transitions to
- Finished
- Transitions to
StartCountDown
by a call to the/StartRace
endpoint
- Transitions to