To retrieve results from the finish line, we've developed an app that fetches results via HTTP and allows configuration of the devices settings. It's coded in Dart, using the Flutter framework.

Results View

This is the primary view of the app. If the phone is connected to the finish line and the finish line is operational, a downward swipe will retrieve results from the Pi and display them in an easy to read format. In the future, this view will allow you to sort results and view results from one specific racer, but for now it only provides a basic view of results.

Settings View

This is the second main view of the app, which can be reached through a navigation bar at the bottom of the display. It exposes status information, such as if all devices and connection are properly configured, as well as allowing configuration of the app and timing system. For instance, the user can select what IP the Pi is located at, so results can be configured properly. In the future this functionality will auto configure itself, but for now it is manual. Additionally, the user can configure the table that keeps track of the ID number of each racer. This is what allows the IDs that racers input at the start line to be converted into names when the results are displayed. The next section discusses its configuration.

Table Configuration View

This is a secondary view that allows the configuration of a table for mapping racer IDs to racer names. Since this table is stored on the finish line, when the view is initiated  the table is fetched. Then, the user can configure the table by swiping to delete unwanted entries and creating new ones using the button in the bottom right. The table can also be sorted by number or name for ease of configuration using the buttons in the top right. When the check button int he top left is pressed, the table is pushed back to the finish line and the view is dismissed.