Inspiration

Working out at Eppley, waiting for machines, and extending your workouts because you are waiting for long periods. Occasionally, working out alone and wanting someone else to work out with and potentially become friends.

What it does

A user creates a profile using registration and login features, which are stored and authenticated using Firebase. Then, the user can create a workout plan, find a workout buddy, or see the availability of machines at Eppley Recreation Center. Creating a workout plan entails building a five or 7-day schedule where you decide which exercises and muscles you will be training on that day. You can view your past workout plans, and a reward program is in place for those who stick to their workout routine. Your profile will show the user's avatar, some information about the user, and their status in the rewards. An info button displays the various tiers in the status program. For the find workout buddy section, after answering a couple of questions, a list of potential buddies will be displayed. You can press on the buddy and receive contact information to contact them. We did not create the front-end or back-end for the machine availability aspect, but we brainstormed the implementation.

How we built it

We built it in Visual Studio Code, using React Expo and viewing our code on our phones. We started with Figma to visualize the UI that we wanted to create. Then, we split up and worked on React-Native to implement the front end and create a database and fast API to track machine availability. Then, we worked on Firebase to authenticate user profiles. After assembling the project pieces, we pushed all our code to GitHub for future use despite being unable to create a finished result.

Challenges we ran into

We ran into a challenge when initially implementing the front end using React. We were creating a mobile app, and while trying to navigate between pages, we used React Router. While running into several errors, we eventually realized that React Router is only meant for web applications and React-Native is intended for mobile applications. Another challenge we encountered was not getting Firebase to authenticate user profiles, and we could not debug the issue.

Accomplishments that we're proud of

We are proud of the front-end implementation, from drawing the user interface on paper to Figma and then in react native.

What we learned

We learned a lot about the React tech stack, Firebase documentation, and command line arguments to emulate React expo apps on a mobile phone.

What's next for TerpFit

We plan on continuing to work on this project as we are passionate about the finished project and hope to piece all our technologies together to create a functional application.

Share this project:

Updates