Inspiration

As people who aspired to be more healthy by getting into the gym, when we first starting our journey of getting fit, we had no idea what exercises we could do to get started. This is where we wish we had more information on what were some beginner exercises we could attempt and also had help in figuring out when we had time to exercise. This is where Atma comes in.

What it does

Atma is a piece of software that provides exercises in the form of cardio, strength training, and flexibly to assist people in achieving their fitness goals. The app comes in a gives a range of exercises varying in difficulty with options of easy, medium, or hard workouts to support people new to fitness as well as cater to folks who are more experienced. Furthermore, creating time for exercising is just as important or it becomes difficult to create healthy habits in the gym over a period of time. To solve this problem Atma includes a scheduler to remind the user of when they have free time to go to the gym and a summary of the exercises suggested.

How we built it

We initially approached our idea of a perplexity-based workout planner wanting to use Flask and React; however, we figured there was a simpler and more effective approach. As such, we settled on implementing a React and Node.js app hosted on GitHub. Our React frontend has strong support in our Node backend, and we were able to call the Perplexity API to generate our needed responses without too much difficulty after the initial learning curve. We also used Chakra UI components to handle the interactive frontend features of our site, and these features were also compatible with our API functionality on the backend. We also used the Vonage API to send SMS messages containing the details for a user's customized workout regimen.

Challenges we ran into

Lacking experience with web development, we ran into challenges at every new step. We first had issues with the Perplexity API due to its novelty, and we also faced several issues regarding testing configurations and version control between our team members. We spent a lot of time debugging issues due to our lack of knowledge about the frameworks and languages that we were using, and at certain points seemingly backwards logic from what we were used to was needed to keep moving forward. In the end, we had to forge through copious amounts of unfamiliarity and debugging tools will be at the top of our priority list next time. Additionally, we had trouble defining the scope of our project and had to cut several grand ideas to focus on the implementation of minutiae. With this experience, we can be more aware of how far we can realistically go in future projects.

Accomplishments that we're proud of

We are proud of being able to prompt engineer Perplexity and integrate the Perplexity responses with our backend in such a way where it can keep all the necessary recommendations for our users exercises. Additionally, we were able to successfully parse our specific Perplexity response and display it in our accessible way in our frontend web app.

What we learned

Throughout this project we learned much about how basic data structure syntax worked in JavaScript. We also gained lots of knowledge regarding the various types of prompt engineering required for different LLMs to get different responses. However, the greatest lesson of all that we all took away from this is that if we believe that we can solve a problem, it will eventually be solved with enough combined brainpower and dedication.

What's next for Atma

One thing we hope to add in a future iteration a direct scheduling system right in the users personal calendar. We would most likely implement a Google Calendar API in combination with our React Web App. This way our users can visually see what their gym schedule looks like along with the recommended exercises for the day.

Built With

Share this project:

Updates