This app allows users to record race results on their mobile devices. Finish Line Mode allows users to record finish times (and bib numbers, optionally). Chute Mode allows users to record bib numbers. The data is stored locally on the device, and pushed to RunSignup when recording is finished (if the user has chosen the Score & Publish Results
App Flow). One user can record times in Finish Line Mode, and multiple users can record bib numbers in Chute Mode.
Score & Publish Results
- Results are stored locally. Participant data is pulled from RunSignup, allowing Grid View in Finish Line Mode (see below). When the user has finished recording Finish Times & Bib Numbers, results are synced to RunSignup. Results can also be exported by the user.Backup Timer
- Results are stored locally. Participant data is pulled from RunSignup, allowing Grid View in Finish Line Mode (see below). Results are never pushed up to RunSignup, but can be exported by the user.Score Offline
- Results are stored locally. This App Flow can be used without an Internet Connection. Results are never pushed up to RunSignup, but can be exported by the user. Results can also be assigned to an Online Event (in theScore & Publish Results
App Flow) when an Internet Connection is established.
- Clone this project
- Download nodeJS if you have not already (https://nodejs.org/en/)
- NOTE: We have left a placeholder NEED_APP_ID throughout the code. You will need to decide the Apple and Android APP_ID for your usage of this app (e.g. com.company.appname) and update the code for that setting. Search and replace NEED_APP_ID with your app id. In addition the Android Java namespaces and folder structure (packages) will need to be adjusted for that new com.company.appname pathing.
- Run
npm install
in Terminal - Run
npm install expo-cli
in Terminal - Follow the instructions at these links to run an iOS or Android emulator on your computer.
- Android emulator (https://docs.expo.dev/workflow/android-studio-emulator/)
- iOS simulator (https://docs.expo.dev/workflow/ios-simulator/ -- a Mac is required)
- Run
expo run:android
orexpo run:ios
in Terminal (do not use the Expo Go app)
App Flows
Finish Line Mode - List View
Finish Line Mode - Grid View
Chute Mode - List View
Chute Mode - Scan View
Results Mode
- React Navigation (https://github.com/react-navigation/react-navigation)
- Async Storage (https://github.com/react-native-async-storage/async-storage)