TRacer
Documentation

Getting set up

There are two ways to get set up.

Manual Setup

Add a new event

Add your station

After adding or selecting your race you'll be taken to a page to add or select your station. This app was designed with the idea that there are multiple aid stations in the race which have a number associated with each aid station.

Upload File

When on the page to add or select the event instead of pressing the plus button you can press the button with the paper clip. This will open a file selector on your device. Browse to the file with the race data and select that file. If the file contains stations you'll be able to select which station you're at, or follow the instructions to manually add a station.

Entering runners' times

On the "Input" tab you can type in the runner's bib number and add the time the runner came into the station and the time the runner left the station.

Here you can see we've put in the bib number 24 and you can see the message "Runner 24 not found." This will show up in two different cases. First if you haven't imported race data then the app doesn't know what runners exist and you haven't ever put any times in for the runner. Or if you have imported race data that has all the runners then this bib number was never imported.

For quick entry once you tap "Add", or, if the runner is found, "Next", then it will auto jump to Time In and once you press save on Time In it will jump to Time Out. This way you can quickly put in bib number -> time in -> time out.

You'll also notice that there are special buttons like "Auto Time In" and "Auto Time Out" if you press these buttons it will mark runner #24 as time in right now or time out right now. 


Pro note: If you want to quickly put just the time in or just the time out for runners you can tap the gear icon in the top right select "Time out only input" and then while entering runner times pressing next/save will jump between bib number and time out. In the dropdown from the gear icon you'll also see the options "Time in only input" and "Dialpad View". If you would prefer to see the order of the keypad to be a dialpad with 123 the top row and 789 on the bottom row then turn on "Dialpad View"

Sending and receiving data

Sending

When you're ready to transmit your runner times to net control go to the "Send/Receive" tab. Here you'll see what data has changed that it will be sending.

Simply press "Transmit all changes" to start transmitting. You should hear a long beeeeeeep and then a sound that is similar to the old dial up modems. Likely you'll have asked net control if they're ready to receive and they've told you to go ahead and transmit before you start this.

Hold the phone up near the radio mic, but not pointing your phone's speaker directly at the mic. It should pick it up just fine.


Note: If you want to transmit/retransmit a single runner you can go to the runner list by going to the "Station" tab as shown here "Station 5" and select the runners and press the transmit button in the top right

If net control doesn't receive all the data they will tell you to retransmit certain blocks. You can see here that you can select "Headers" or "1" or "2" depending on how many runner's times you're transmitting you could have 1 block or any number of blocks. Select which ever blocks you need to retransmit and tap the little speaker phone icon next to "6 runners sent at..." to start transmitting the selected blocks.


Receiving

You'll notice in the top right there is an icon of a mic crossed out. If you tap on that your device will ask you for permissions to access your mic. Once you've given the app permission you'll see a red bar across the top which indicates that the app is in listening mode. While in listening mode if someone else with the app transmits, your device will listen and receive that transmission. The app will also tell you if you're missing any blocks.

Net control may choose to send out updates such as runners who have dropped from the race etc.

Also if you receive data from another station you won't see their time in and out on your station, but you can see it if you go into the runner's details or switch which station you have selected (WARNING: if you switch your station during a race make sure you switch back to your correct station)

By default the mic turns off again in a short amount of time after it stops hearing data coming in. If you want the device to always be listening then tap the gear icon in the top right and turn on "Always Listening"

Viewing records

If you go to the tab with the runner on it that says "Records" You'll see in the top right it says "Recent" Pressing that will open a dropdown you can switch between a few filters/sorting options to look at a list of the records you've entered.

When you have runners in the list that don't have a time in or don't have a time out it will show have a button you can press to quick jump to entering the time in or out for that runner. That way if you are looking at the Recent entries and you see a runner go out you can easily press the + next to their number and then press "Current time" and it will record their time

Changing aid station or event

You can switch to a different aid station or event by taping in the top left where your station name and a dropdown arrow is shown. This will pull up a list of all the stations for this even that you have created or imported. You can quickly change to the correct station where you are located or tap "Switch event" to go to the events list and either create a new event or select a different event or press the "Add station" button to add another station

JSON File Format

This outlines the JSON file format required for importing race data into the Runner Tracker App.

Note: The distinction between an event and a race is that an event may have mutiple races in it. For example an event may have a 100M race, a 100K race, and a 50M race going at the same time sharing stations.

The JSON file should consist of the following properties:

File Format

Station Object

Race Object

Participant Object

Example

{

  "name": "50 Miler 2023",

  "startDate": "2023-04-05T05:00:00",

  "slug": "50M23",

  "stations": [

    {

      "name": "Start Line",

      "stationNumber": 0,

      "stationNumberDisplayed": "START",

      "distance": 0

    },

    {

      "name": "Finish Line",

      "stationNumber": 10,

      "stationNumberDisplayed": "FINISH",

      "distance": 50

    }

  ],

  "participants": [

    {

      "bibNumber": 104,

      "firstName": "John",

      "lastName": "Doe",

      "sex": "M"

    }

  ]

}