The Olympics are a chance for nations all around the world to show off their very best, impassioned athletes. It's a chance for different athletes to compete for their countries, inspiring national pride and bringing people closer together. What if we could open up the same sort of competition to not only these Olympic athletes, but to all the fans watching from the stadiums and at home as well? Through this line of thinking, we thought that it could be a unique experience to bring to these fans around the world the chance to compete for their countries as well -- bringing about a novel kind of fan engagement and a more interactive way to experience the Olympics.

What it does

Fantasy Olympics allows registered fans to enter into matches according to individual events within different sports categories in the Olympic event schedule. Users can then vote or bet on the outcome(s) of that event by choosing which country they predict to nab the gold medal. At the end of the event, the country with the most accurate user predictions collectively wins gold for their country. Similarly, the country with the second and third most accurate user predictions collectively wins silver and bronze, respectively, for their countries. This process is applied to all events within all the different sports categories. After voting, users are led to a data visualization of the current voting percentages per country as they currently stand. Users can also see data visualizations for previous medal counts and previous Olympics destinations.

With the Pebble watch, users can download the app, which gives them added functionality, such as launching the website, viewing the data, viewing the schedule, and voting for their predicted winner/favorite team for each game.

How we built it

For the web app, we built the back-end server with Python Flask to save the database of the Olympics predictions to Firebase. We also used the server to retreat data from Firebase and serve it to the front-end. We deployed our server on Heroku. On the other hand, the Pebble app was built using CloudPebble. Each button click on the watch triggers a shells script, which performs one of the above functions. The front-end was built with HTML, CSS, Javascript, bootstrap, and jQuery. Our data visualization component was built with d3.js, and our map of previous Olympic destinations utilized the Google Maps API.

Challenges we ran into

We ran into problems when we tried to update the database from our server and sync the database for both front-end and back-end. Additionally, another challenge was with the connectivity of the watch and the website. Real-time vote updating from the watch wasn't being reflected onto the website, and the new data wasn't being generated.

Accomplishments that we're proud of

We're proud of the working prototype we've managed to get up and running this weekend. Conceptually, we think that the core idea has the potential to incorporate expanded functionalities and enhance fan engagement with the Olympics, more than that of years before.

What we learned

Learned jQuery, d3.js, Flask framework, Firebase.

What's next for Fantasy Olympics

In the future, we'd like to implement localized polling, so perhaps users can create challenge betting matches to other users restricted to within a certain radius. Additionally, we'd like to set up individual user accounts that will keep track of all a user's previous bets and wins for his or her country. As far as timing, we would need to restrict the polling periods to the times of the actual Olympic events (so that users cannot cast votes after the actual events finish) and catered to the rules of individual sports (voting for individual, sequential, turn-by-by outcomes such as in gymnastics would work differently than voting for team, final outcomes such as in soccer).

Share this project: