Inspiration

Ever since I joined this school, I've always wanted to play recreational badminton. While I'm not good at the sport, I enjoy the activity and would like to get more time to play it. However, UMass has a very limited amount of courts for the huge student population, causing the courts to always be filled with high skilled players. As someone who lives on orchard hill, I can't be checking the Campus Rec Center every hour of my day, since I'm very far away from the center. This in turn leaves me with no options to play badminton.

What it does

The portal allows users to create an account, and set a maximum of one booking in a day. This ensures that users can’t overbook i.e., book 2 to 3 hour sessions in a single time period, thus allowing more people to have access to the courts.

How we built it

We used ReactJS to write the front-end, implementing Auth0 to authenticate and authorize users. The front-end allows users to interact with a drop-down menu and calendar for all 3 courts, so that they can choose whatever time they'd like to make a booking for.

For back-end, we decided to use a python server, running Fast-API to serve data from our MongoDB server. To make this system scalable, we dockerized the entire project, and then used our google cloud credits to host our project on Google Cloud Run, a scalable container hosting platform.

Challenges we ran into

Some of the Challenges we ran into was initially, our Fast API server was blocking CORS, which made our API system inaccessible in certain conditions. We eventually modified our Fast API client to deal with this. After we got our back-end working, we struggled with React.js on the front-end accurately showing our available time slots.

Accomplishments that we're proud of

We are proud to create a full stack web app, which features authentication and database management. We are also proud to create a full deployment system to the cloud, allowing us to call our API functions from anywhere.

What we learned

We learned about MongoDB, Authenticating with Auth0, Hosting an API with Fast-API, dockerizing a project to host on Google Cloud.

What's next for UMass Badminton Portal

We would like to create skill-based matchmaking, and also use a computer vision system to track scores of different matches. This would allow us to keep track of users wins/losses, creating a full scoreboard.

Built With

Share this project:

Updates