Inspiration
This summer, my friends and I decided to take on a 90-day fitness challenge. At first, it was exciting, but I quickly realized how confusing it could be to figure out the right workouts, understand which equipment to use, and learn how to avoid injuries. Despite putting in the effort, I wasn’t seeing the results I had hoped for, and sometimes I even ended up with small injuries due to lack of proper guidance. That frustration pushed me to create something that could remove the guesswork and make fitness more personalized, safe, and motivating.
What it does
GymTracker is a fitness app that creates customized workout plans tailored to each user. It takes into account factors such as age, gender, availability (days per week and hours per session), and fitness goals like building strength or muscle gain. On top of that, the app introduces motivational challenges like the 90-Day Challenge, the 21-Day Challenge, and the Winter Arc Challenge to keep users engaged, consistent, and excited about their progress.
How we built it
We built GymTracker with a SwiftUI frontend to provide a clean and smooth iOS experience. The backend is powered by Python, which handles logic, plan optimization, and AI integration. For data storage and real-time syncing, we used Firebase, which stores user profiles, progress, and workout data. Finally, we integrated the Gemini API to generate personalized workout recommendations, making the app intelligent and adaptive to each individual’s needs.
Challenges we ran into
One of the biggest challenges was finding the right balance between simplicity and customization. We wanted to give users a truly personalized experience without overwhelming them with complexity. Integrating different technologies like Swift, Firebase, Python, and the Gemini API was another learning curve, and making sure the generated workouts were realistic and safe required constant testing and refinement. On top of that, time management was tough—we had to balance designing the interface, writing backend logic, and ensuring everything connected seamlessly within the limited timeframe.
Accomplishments that we're proud of
We’re proud that GymTracker became a complete, end-to-end app that successfully connects frontend, backend, database, and AI into one smooth workflow. Designing a clean and simple interface with SwiftUI felt like a big achievement, as it makes the app intuitive and user-friendly. Another accomplishment was creating motivational challenges that don’t just give users exercises but actually push them to stay accountable and consistent. Most importantly, we proved to ourselves that we could bring together multiple technologies and make them work as one cohesive product.
What we learned
Building GymTracker taught us that one fitness plan never fits all—personalization is everything. From a technical side, we learned how to integrate Firebase, Swift, Python, and AI APIs effectively. We also came to appreciate how much UX design impacts consistency and user engagement. And on a personal level, I learned how small mistakes in planning—like unclear exercise guidance—can have real consequences, such as injuries. This reinforced the importance of building tools that make fitness smarter, safer, and more accessible.
What's next for GymTracker
Looking ahead, we want to take GymTracker further by adding nutrition planning to complement workouts and create a more holistic approach to fitness. We also plan to integrate the app with wearables like Apple Watch and Fitbit, so users can track their activity seamlessly. Another goal is to build community features, allowing friends to join challenges together and stay motivated as a group. Finally, we aim to expand GymTracker to Android, so it can reach more users and help more people stay consistent in their fitness journey.

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