Inspiration
We built this project at a social goods hackathon sponsored by Rutgers IEEE, where they had five different challenges to pick from. We picked this challenge because it was interesting to us and we were able to implement some algorithms that we had recently learned in our Data Structures class, such as priority queues and heap sort.
What it does
The RUPA bed races have 35-50 teams compete in a race down College Avenue, with their vehicle being a bed! Though the highlight of the event is the race itself, teams are also judged based on the design of their bed, the design of their uniforms, and how much they are able to donate. (There is a minimum donation requirement for teams to meet before they can participate.) Each category has a set weight in the total score. The purpose of this program is to easily and effectively keep a real time ranking of each team based on the parameters listed above.
How we built it
In order to document the speed rankings of each team, we used a stopwatch API from Princeton University. Assuming each team goes back to back, the stopwatch is able to see how long each team takes to finish the course by seeing the last time the stopwatch was pressed, and the program can quickly update the times of each team. It then uses heapsort to sort the teams by their time and gets the top however many teams are specified for each round. Based on each team's rankings in each round, they are assigned their appropriate amount of points for the speed category.
The design of the beds and team uniforms are easy to assign points. It simply needs files containing each judge's scores and will sum up the scores to assign the appropriate points in each category.
The minimum donation requirement is able to be changed and can be input by the user. In order to use this, a file with the number of donations from each team will be inputted, and is again sorted using heapsort to find the first, second, and third place winners, which will then be assigned their appropriate points. The rest of the teams will have their donation amount compared to the minimum donation requirement and assigned donation points based on that.
Finally, each team's points in each category will be summed up to get their total score. This will be sorted and the top teams can be easily known.
Challenges we ran into
At first, we were unsure how to keep track of each team's speed ranking, since the races go by so fast. However, since they are back to back, we thought a stopwatch would be a good way to keep track of each team's times.
Accomplishments that we're proud of
Though we barely had two days to put this project together, we made the most of our time and made a program that will easily calculate each team's score.
What we learned
Planning goes a long way. Before we even started coding, we sat down and made an action plan of what we needed to accomplish and how the different parts of the code would work together to produced the desire outcome.
What's next for RUPA Bed Races
Hopefully, this program will be able to implemented in RUPA's next bed race, and make the lives of the coordinators much easier. The automatic nature of this project will make it much quicker to score each team.
Log in or sign up for Devpost to join the conversation.