Inspiration

We were heavily inspired by fantasy sports leagues that we've done with our friends. We thought that instead of fantasy rankings being determined by the outcomes of sports games, it would be more fun to have it be determined by games/challenges within our own personal circles, and inspiring friendly competition.

What it does

Our platform provides a way for friends to create groups and host challenges. The challenges consist of a series of options (input by the user) and the rewards for each option.

So if you were going bowling with your friends, you could create a challenge called "Bowling Night" with the options being all the people attending. Then everyone in the group can select who they think is going to win bowling night, if guessed correctly they get the reward. If someone is particularly good at bowling, you can lower their specific reward or if someone isn't great, increase their reward, so everyone is being rewarded for their relative risk they are taking.

Over time, people can build up their points through winning challenges and see how they place in the group ranking. It is intended to be fun an competitive in a personal way.

How we built it

While we have previously used Firebase in the past, we felt this project's schema was more fitting for a SQL database, so we went with Supabase to utilize free SQL server hosting along with its suite of helper functions.

We ended up using a SERN stack (SQL/Supabase, Express, React, Nodejs). Using Typescript to prevent the issues that arise from having a loosely typed language.

Challenges we ran into

One of our collective (group) goals for this hackathon was for everyone to "get out of their comfort zone" and try and learn something new - whether it be a new technology, best practice, etc. We feel that this added some personal complexity to our project as we were reaching out of our status quo(s).

Our most time-consuming challenge was correctly implementing our Supabase database and connecting it to our backend server. Despite have experience using SQL, it was our team's first time utilizing Supabase and it was not as intuitive for first time users as we had hoped.

Following supabase integration, user authentication specifically was a big struggle for us (at first). Since we had custom metadata we wanted represented in user sign-ups & logins and were making supabase calls from the server (not frontend), we could not utilize a lot of the default features that would have made this a very streamlined process. It took a bit more time than we expected to sort it out, but in the end we were able to see it through.

Accomplishments that we're proud of

We thought this was a really fun idea that we could see ourselves using in our day-to-day lives. We are definitely interested in continuing this project after the Hackathon.

What we learned

For Arun, one of our frontend developers, it was his first time using React Vite.js, since his only experience with React was through Next.js.

For Rayyan, one of our frontend developers, it was his first time in a Hackathon.

For Rahul, our backend developer, it was his first time using Supabase.

What's next for OddsUp

During our initial ideation phase, we came up with a lot of fun and even practical ideas that did not reach fruition in this hackathon project. There are a lot of features that we plan to add on that expands the scope of the web app. However, our foremost concern - since it is more of an entertainment web app - is to enhance the user experience and make optimizations - both in code and UI.

Built With

Share this project:

Updates