Sport is a great way to stay fit and healthy. Sports also teaches us big lessons for life, while encouraging a sense of belonging and identity, bringing people together in this increasingly fragmented society.

Humans are, by nature social animals. In the past we were hunters and gatherers and that competitive spirit is still in us. This is evident in the fact that most sports are team sports and require more than 2 players. There is a common problem of finding other players especially if someone is new to the place and aren't great at socializing.

For Sai (team member) personally, when he was a new student to the University of Waterloo, it was hard to find others who were interested in playing badminton. The student clubs were extremely crowded and weren't effective. It was a tedious to reach out to others, asking if they're interested in playing and would be available at a certain time. Again, having no prior understanding on what their skill level was, made the sport either too boring or too hard.

There is no dedicated platform where one can meet other players who aren't professional yet love to play a sport. This in fact, could be one reason why people have hard time playing sports.

What it does

Allows you to host sports events

Easily join events hosted by others

Send call/SMS reminders to others for meet-ups via Twilio

How we built it

MongoDB database for storing data relating to users and events

Flask webserver for serving web files and containing Python logic to interact with Twilio

Account authentication system built with MongoDB and Flask

Challenges we ran into

Initially, we have trouble figuring out how to send custom voice messages dynamically using Twilio's programmatical voice calls (we were able to overcome this by using TwiML bins)

Flask user authentication was difficult to implement

Allowing multiple users at any one point in time was challenging

CSS is a pain

Accomplishments that we're proud of

Successfully implementing a multiple user authentication system using MongoDB and Flask authentication

Making it look decent

Getting the whole pipeline from user account creation to joining events and receiving Twilio calls working correctly

What we learned

How to implement user authentication

Utilizing the Twilio API (first time using the API)

Partnering Flask with MongoDB

What's next for Sportify

Implement booking mechanisms for limiting the number of people at each event

Allow friends to respond to reminders with number pads e.g. "1" for "Will be there!" and "2" for "Sorry, can't make it!"

Share this project: