Live heats, Scoring and Leaderboard for Sport Events
After last weeks Bündner Championship I found start list generation and ranking process to be error prone, especially for the disciplines that are judged by several experts, such as slopestyle (Ski or Snowboard) or the formation skiing teams. We were editing Excel sheets (stored on OneDrive) and printing the new start lists for the next runs. Just imagine the printer 🖨️ on the mountain 🏔️🤣. The grades of the experts/judges needed to be transferred from paper into Excel after every completed run or heat.
I detected the following deficiencies which could be improved with a more digital approach (digital/mobile from the start):
- Mistakes can occur while copying ratings and numbers from paper into Excel
- Sorting each Excel list (for every competition and run) manually is error prone, especially, with multiple competitions going on simultaneously (slopestyle ski or snowboard, formation skiing, men, women, several runs, etc.)
- The results need to be printed on paper and published on the website (PDF)
- Formatting and printing these sheets (for each competition) takes quite some time and the result is not always consistent (in terms of formatting)
- There are no live results. This is also not convenient for the athletes that want to know right after the run how they scored and how they rank in the competition. Ideally, the athletes get to know their scores right after they cross the finish line.
- OneDrive syncing did not always work reliably (depending on the end users devices) and mailing the sheets was a pain
I was looking into some existing solutions for systems to process the data, such as liveheats. However, since most of these systems are finished products and there is no open source code available that I know of, I decided to quickly draft my own version of a live leaderboard for these kind of sport competitions.
🚀 Demo instance: https://myheats.in0rdr.ch
🧬 Code: https://code.in0rdr.ch/myheats
Right now, there is only the leaderboard which automatically updates as soon as new data arrives in Supabase. During the process of creating this first draft, I became a huge fan of Supabase because it works really well. It is the open source Firebase alternative with Postgres database in the backend. I can highly recommend it for your next project, because it is extremely easy to get started with.
For the purpose of the leaderboard, I was especially interested in the realtime aspects of Supabase. This allows me to update the table as soon as new data is entered in the backend (by the judges of the comptition).
I'm planning to update the code with some more features soonish, among others:
- Authenticaiton for the experts that perform the ranking and rating
- A very simple user-interface or view for the experts to edit the score for a single athlete of a heat or run
- Better import/export functionality for start list and rankings
Stay tuned. If you have some input or tips feel free to drop me a line on IRC #p0c or Mastodon.