Inspiration
I participated in debate in high school and still go back and judge tournaments and coach the students. I realized that the process of managing the tournament, most notably scheduling rounds, notifying competitors and maintaining results, was done in a very inefficient manner, mostly by hand. An online service does exist to provide this service, tabroom.com, but it does not have an extensive feature set, and its service is unreliable. Thats why we decided to make debate monkey, a tool to provide these service rapidly and reliably.
What it does
DebateMonkey is web service in which tournament officials can create tournaments so that students can join on their own accord. Once a tournament is created, any user with access can register for the tournament. DebateMonkey will automatically create matches and notify the students as to where their round is and who they are facing. It will also assign to judge to critique the round. Afterwards, the judge can enter their decision and comments to each team. After the judge submits this electronic ballot, DebateMonkey will automatically tabulate these matches to create finals qualifiers and overall placements. At the official's behest, the judges comments may be hidden or revealed to the competitors at whatever point. All of this functionality is available through the web interface or the app. If any students opt out of they app, they may also chose to receive notifications via SMS, using Twilio.
How I built it
The web frontend was built in ReactJS. The backend is a RESTful Django Framework, that manages a mySQL database to store all tournaments, users, and round results. The back end is responsible for tabulating the results and pushing notifications via Twilio or the App. The app was built using Flutter.
Challenges I ran into
Originally, we were a team of 4, but all of my team was forced to leave early in the HackCU tournament, leaving only me to work on the project. This resulted in this projected being far too large scale for a single person to handle. I decided to drop the app and focus mostly on the web interface. Also, I didn't have much time to focus on the styling and UX and had to focus on functionality leaving the site a little rough around the edges. The hardest technical challenges were serializing the many to many relationship with users and tournaments in the database using Django models and maintaining persistent login sessions utilizing authorization tokens.
Accomplishments that I'm proud of
I managed to get a relatively functional site that encompasses the basic functionalities of my desired app while only having one person. The end product is still visually appealing and the UI is fairly intuitive. The Twilio API was successfully implemented and sends out a text message to a registered user.
What I learned
The technology I learned most about was Django and how to manage database models with it. I also learned how to implement the Twilio API, and also how to stay sane after 24 hours of coding alone.
What's next for DebateMonkey
Our next focus is going to be implementing the key elements that were missed, specifically ballot entry and judge enrollment. Some UI changes and overall bugfixes and I think debate monkey could be a viable product.
Log in or sign up for Devpost to join the conversation.