We believe that physical activity is incredibly beneficial to one's wellbeing. For many of us, having a workout partner helps us improve motivation and consistency, all the while making their workouts more fun. However, it can be tricky to find a friend who is compatible with our workout availabilities and goals. For example, I might be personally inclined towards cardio activities, while most of my friends would prefer lifting weight or targeting specific muscle groups. That is why we decided to create an online platform that seeks to connect the most compatible workout buddies.
What It Does
Workout Buddies allows users to find their perfect workout partner. It offers its users the opportunity to connect with people who share similar fitness goals, schedules, and workout preferences. Upon account creation, the user is prompted to fill out their preferences and any other information they would like to display on their profile. Let's say you want to find a buddy for your morning runs. You would toggle your workout time to the morning and set your preferred workout to running. The website would then cross-reference users with similar availabilities who also like to run and recommend their profiles in your explore page. The search bar also allows users to directly search for keywords such as the name of their favourite workout channel or specific sports like ultimate frisbee. Users can then send a connect request when they find a profile they like. If their connect request is accepted, they will then be able to chat and potentially plan a future workout session together.
How We Made It
We built our front-end using a React framework and our back-end using a Flask framework for fast prototyping. We implemented Facebook's login API to facilitate the account creation/login process for users with an existing Facebook account. For demo purposes, we used an SQLite database for our user database. Once the user sets or updates their preferences, the respective fields in the database are updated with the new value. The explore page and the search bar both rely on the similarity of these profile fields when presenting suggested users.
It was the first time that we had worked with SQL and a database, as well as our first time using Flask, so we had to look into a lot of documentation. We also ran into significant difficulties trying to integrate the cockroach cloud database in the beginning, which is why we then switched to SQLite to at least have a functional website.
What We Learned
Throughout this project, we have learned a great deal about how to query and update information from a database. We have also learned how to prototype a website using a flask back-end framework and process requests from the front-end.
In the future, we would envision offering login options other than through a Facebook account. We would also like to switch to a database that is more resilient and scalable like the Cockroach cloud database. Finally, we would improve the UI to make it as user-friendly and intuitive as possible.