Inspiration
We wanted to create a gamified version of commons speculation on grounds over whether a test would go well, outcomes of sports, classes, etc. The site leans into students' competitive nature by allowing them to "take" tokens from each other by choosing the correct prediction.
What it does
Administrators create events which have some sort of numerical pivot. Users then wager a certain amount of their tokens on the outcome being above or below the stated value (e.g. weather tomorrow above/below 70 degrees). Bets are distributed not only on correctness, but also according to the amount of tokens placed on each bet, so winners who were part of a minority (less likely) win a greater reward. The amount of tokens is finite, so students who gain tokens must gain them from another who loses.
How we built it
The site utilizes a react frontend which communicates to an API backend written in Flask. User and event information are stored in a sqlite databased which is interfaced with SQLAlchemy, an ORM library for flask. Bootstrap is used for quick and modular frontend styling. React allows for dynamic wepbages while the API provides quick and powerful data retrieval in ready-to-use json formatting.
Challenges we ran into
Initially, figuring out how to interface the frontend and backend was a significant challenge. Both sides run on different servers which have to interface through http requests. These requests are restrictive and require careful choice of return and request values. Additionally, frontend design was new for our team, and react proved a challenging if powerful frontend solution. On the backend, designing a structure which allows for modular and safe interfacing was a challenge, since requests have to be error handled.
Accomplishments that we're proud of
We're not only very proud of the completeness of our application, which was difficult to accomplish on its own, but on the standards and guidelines we came up with during development to stay on the same page and avoid conflicts. Additionally, group programming was new for our members and coordinating using VCS was a new obstacle we leveraged very successfully.
What we learned
On the backend, we became more familiar with writing and interfacing with a proprietary API for a website. React, a library we had to learn during the hackathon, used this API to collect data and later displayed it in an appealing and logical format with considerations to state management.
What's next for HooBets
Besides bugfixes, which while we did plenty of during the hackathon we're sure to have more of due to the haste of development, we'd like to scale horizontally, adding more features and expanding existing ones. Examples include the ability for users to add their own events and for outside integrations (possibly using external APIs) to automate the process of adding or resolving events. Additional considerations for security and speed may need to be taken in the backend as the application grows in scale.
Log in or sign up for Devpost to join the conversation.