-
Home page for a given user
-
Admin console
-
Assisting new Basketball fans with basketball terms
-
Betting screen
-
Example of user placing a bet
-
When a user skips a bet they get an animation
-
Options for a user when choosing a bet
-
Leaderboard for points
-
Players can trade their points for merch
-
Buying merch
-
Once a user gets a swag item
Inspiration
When it comes to sports there is no better feeling than predicting the outcome of a sports match before the game started. The ups and downs of competition is what makes professional sports the greatest form of entertainment all around the world. We wanted to take this competition to a whole new level. Instead of just arguing with you close friends around you about who the match MVP is, or who will get the the highest number of rebounds. Dunk Dynasty seeks to bring entire sports communities together with a series of bets in order to ensure that the game that never feel stale or old.
What it does
Dunk Dynasty works on several different levels of AI and Machine Learning. At the top level users can bet digital points that can be gained for watching the games, participating in bets, or for buying tickets. These points can be exchanged for swag at your local stadium or gathered up to show off on our leaderboard. The main use for these points though are to enter into bets. We have 2 current types of bets. One that happens before the start of every game, and another that happens randomly throughout the game sending players alerts to join. Both types are unique for every game state and even can make bets directly on the words that the announcer is speaking. Another level is our machine learning algorithm. We used a classification neural net that gauges the approximate probability based on the current game state to find out the probability of a team winning based off statistics such as game data and historical data for a given head to head match up at any point in the game. We also have other features such as a working betting system, merch exchange, and chat bot to help new players learn terminology to better understand the game.
How we built it
We used 3 separate tech stacks, and a few technologies. Our beautiful front end is designed in react native and has the ability to be exported to any mobile application or desktop application. With over 14 pages React Native is great for handling complex routing issues while making the end result clean for users. Our Admin console is built in Svelte to ensure maximum browser capability. Finally our backend was built using flask a python framework. Flask was used primarily because it has great routing capabilities with both GPT 3.5 for generative bets, and connecting with our AWS account for training our TensorFlow neural network. Flask is also great for a mobile server that ran the model locally while handling the computational needs of both our Admin and User app.
Challenges we ran into
The biggest challenge we ran into this time was really scope creep. In an app like this we had a lot of features that we wanted to do and was really limited only by our time. We did end up writing a list of features that would provide the greatest wow factor and worked our way down the list until we got to our current product. Another challenge for us was how complicated it is to run a sagemaker instance endpoint. Even though AWS was great for training fast, we ended up hosting the model locally to ensure that it would work during the demo.
Accomplishments that we're proud of
As a team we are most proud of the fact that we all know each others strengths and weaknesses very well. This allowed to not only design a project that we are all proud to present, but also design the project that played off of each of our greatest strengths. Additionally, when it came to, usually the hardest part of the project, integration we found that even though we were connecting 3 applications instead of 2 there were no hiccups.
What we learned
We learned just how complex it can be to choose a model that fits a specific use case. For our neural net we originally wanted to be able to support regression questions as well, but we learned that would have required a lot more training and potential issues with diverse outputs than a binary classification problem. Additionally we learned as a team how important async functions are in react native and how complex it can make a single component.
What's next for Dunk Dynasty
We want to be able to support a wider variety of potential bets such as regression bets and more styles such as betting against the house, or head to head with another player. We also want to be able to more dynamically accept constant feed from an announcer instead of having to split them into segments and feed them separately. Finally we want to ensure that this is an app that brings players to the game instead of dragging their focus from it. To do this we want to further simplify the bet process to just a couple clicks or even from the lock screen.
Built With
- amazon-web-services
- flask
- javascript
- python
- react-native
- svelte
- tensorflow
Log in or sign up for Devpost to join the conversation.