Have you ever felt self-conscious working out alone at the gym? Or maybe found yourself wanting to play tennis but having no one to play with? Or maybe just found yourself not having the motivation to exercise at all? Are you tired of having your sibling tell you they'll exercise with you in the morning but having them yell at you when you try to wake them up? 😔
We were inspired to create ExerBuddy because of a combination of the experiences stated above as well as our extreme lack of self-motivation to exercise and our dislike of working out on our own. We found that exercise was much more bearable and even something to look forward when we had people with similar physical abilities and interests to workout with. By incorporating a social aspect into exercise, we wanted to help people find enjoyment when working out, forming longer-lasting habits and healthier lifestyles.💪
What it does
ExerBuddy helps individuals find workout buddies by matching them based on factors like recreational interests, workout schedule, intensity of workout, and preferred workout relationship (one-workout stand or long-term relationship). If you hate the gym, well that is okay. ExerBuddy is not just about the gym. You will be able to find other people that dislike the gym and like to play badminton just like you! 🏸
How we built it
We created a web app using React JS and Tailwind CSS for the frontend and Python and Flask for the backend. We used a FireStore Authentication to manage users as well as Firestore database to keep track of user information. The Python backend makes calls to the Firestore database and provides the frontend with a list of profiles that would be suitable matches for the user. (Both were completed but they were not connected). 💻
Challenges we ran into
Additionally, there were lot of challenges when it came to working on the backend of our web application. The main difficulty is not being familiar with what databases are and understanding all the components of a web application. There were many syntactic errors when it came to using the API of FireBase, and using Flask while not really understanding its purpose made things difficult. Although we finished the backend, we ran out of time and were unable to implement it by connecting it to the frontend.
Accomplishments that we're proud of
In terms of the backend of our web applications, we were able to get comfortable with the fire database in that we understood how data is stored and what the API calls do for collections and documents. We were also able to handle a majority of our intended POST and GET requests which was very rewarding when the fire database would get updated in real time.
We're also proud of the way the web app looks in terms of the frontend and that we were able to implement a fully functioning signup, sign in, and logout feature.
What we learned
I made a web app before in an academic class but I think I learned more about databases and backend programming in these 48 hours than what I did during for a whole quarter in my class 😮. For sure the short time limit kept my group and I focused on learning how to get everything connected in our web application. This was our first hackathon and besides learning about some of the technical knowledge needed to do web development, communication and listening is also something to focus in a group project and is something our group will be improving on for next time.
What's next for ExerBuddy
We plan to connect the frontend and backend to get a fully functioning app and to implement a chat feature for people who match. Additionally, we plan to use machine learning to determine the best recommendations for potential matches by feeding it data from users' likes and dislikes. We also hope to possibly integrate data from fitness trackers to gamify our app and motivate users to exercise more through point systems and challenges.