Inspiration
As we approach the end of the year, a lot of people will start planning out their New Years Resolutions and look for things to improve upon in their lives. Of all the resolutions, one of the biggest and most common is going to the gym and getting fit. However, this is easier said than done. In particular, working out for the first time can be a daunting task, especially if you're a beginner and doing it alone. For one, some exercises (like the bench press) are best done with a partner, and you likely won't have one when you first start. You're also often confused on what machines to use and feel intimidated by the other people at the gym. All three of us definitely experienced this ourselves when we first started working out. Therefore, we created Find Your Fit to solve this problem and help make the workout experience a lot easier and comfortable for beginners by finding them an ideal workout buddy.
What it does
Our project acts as a matchmaking application. Users first register themselves on the application by providing their basic information, such as their address (or an address close to their location), what their workout goals are, their experience level, etc. Once registered, the user can utilize the matchmaking functionality. After logging in they are brought to a tab called "Swipes," where they can browse the profiles of various potential workout partners. The application makes these recommendation primarily by location, such that only users who are within a certain range of the current user will appear. The current user will be able to view the potential workout buddy's information, and decide whether to press the "Yes" button or the "No" button on them. When two users mutually like each other, an alert will pop up on the screen saying that a match has been made. It will provide the match's email to allow for contact. Our application also has two other tabs, "Profiles" and "Matches". Profiles shows the current user's information, and Matches allows the user to scroll through all the matches they have received.
How we built it
We mainly used React.js for the frontend, as well as HTML and CSS. For the backend we used MySQL and Express.js. We used Google's geocoding API to get coordinates based on a person's inputted address, and we used Axios to make HTTP requests. We also used Piskel to design our logo (the "FYF" symbol).
Challenges we ran into
We ran into numerous challenges as we were building this project. For one, while we all had some prior experience with web development, many of the technologies we used (like Axios and Google’s geocoding API) were entirely new to us. We all were also rather unfamiliar with React. Therefore, we ran into a lot of problems when building our project, and we spent a lot of time scratching our heads and debugging. Additionally, we accidentally committed passwords to the Github repo we were first working in, so at the end we we put our code into a new repo to protect the passwords, which was a hassle.
Accomplishments that we're proud of
We are proud of developing a working full stack web application. We ran into many, many problems using and learning all these unfamiliar technologies, but we were able to resolve them through communication and using online resources. We spent two a lot of effort on this project, and we are proud of what we succeeded in learning and producing.
What we learned
We improved on our frontend development skills by working with and learning more about React, HTML, and CSS libraries. We learned how to use the Geocoding API by Google to determine user location and calculate distance between users. We learned how to connect our frontend with a backend API by using Axios to make HTTP requests. We learned more about creating a backend server using Express.js to handle API calls and MySQL to store user data and actions.
What's next for Find Your Fit
Some improvements we want to make are to improve the matching algorithm and improve communication between matches. Right now the web app just gives away the match's email after a match, which is a privacy concern and not really ideal. We would also like to give the user more control over picking their location and the type of people they want to workout with. There are potential privacy concerns with how we ask users to input their address during registration. There are also numerous improvements that could be made to the selection algorithm (for instance, using AI to match users with similar goals). Finally, we want to improve the look of the app to have a more modern and cleaner look.

Log in or sign up for Devpost to join the conversation.