TerpFit
Inspiration
The inspiration behind TerpFit came from wanting to make working out smarter and more personalized for everyone. A lot of people struggle with planning workouts, finding nearby gyms, or staying consistent with their fitness goals. We wanted to create a platform where users don’t have to think too hard about building a workout plan, instead they can simply chat with an AI and get a customized plan built for them. Combining location tracking, AI conversations, and workout logging felt like the perfect way to make fitness easier and more interactive.
What it does
TerpFit is a user based web application that helps users find nearby gyms or parks, chat with an AI chatbot to build a workout plan, and log their workouts for future tracking. Users can log in or sign up, select a location from an interactive map using Leaflet.js, and then talk to a chatbot powered by Google’s Gemini API. The AI will ask smart questions until it gathers key workout details like the type of workout, duration, estimated calories burned, and a health rating. After the workout plan is created, users get a checklist of exercises to complete. Once finished, their workout, notes, and stats are saved to their personal dashboard where they can track their progress and streaks.
How we built it
We built TerpFit using Python Flask for the backend and SQLAlchemy with SQLite for managing the database. The frontend was developed using HTML, CSS, and JavaScript, with Leaflet.js powering the interactive map that displays gyms, parks, and courts near the user. The AI chatbot was integrated using Google’s Gemini API, which allowed us to have conversations that adjust based on user input. We also implemented user authentication so users can log in, log out, and securely track their workout history. Workouts are stored in the database with attributes like date, time, location, workout type, duration, calories burned, and user notes. The dashboard page allows users to view their full workout history and track their workout streak.
Challenges we ran into
One of the biggest challenges we faced during this project was working with the Gemini AI API. Since we were heavily relying on the API to generate workout plans and handle conversations, we quickly ran into issues with API key errors and usage quotas being exceeded. There were multiple times where the API would stop responding or throw unexpected errors, which slowed down development and forced us to find creative ways to minimize requests. Another major challenge was building the interactive map using Leaflet.js and trying to get it to properly identify and display nearby gyms, parks, and courts. Accurately handling location data, saving user selected locations, and ensuring markers appeared correctly on the map took a lot of testing and troubleshooting. Additionally, the front-end page formatting often broke due to conflicting elements between the chatbot, checklist, and map features all being displayed together.
Accomplishments that we're proud of
We are really proud of being able to fully integrate AI into the workout planning process in a way that feels personalized and useful. We’re also proud of creating a smooth user experience where people can easily log in, select a location, and build a complete workout plan within minutes. Building an interactive map that lets users find real locations and saving that along with their workout data felt like a huge accomplishment. Lastly, being able to track workout streaks and display full workout history in a clean dashboard really brought the whole project together.
What we learned
Throughout this project, we learned how to build a full-stack web application from start to finish while combining several complex technologies. We gained experience working with the Google Gemini API to handle dynamic conversations, integrating Leaflet.js for real-time maps, managing databases with SQLAlchemy, and securing user authentication. We also learned how to design and structure an interactive user flow where all parts of the app communicate smoothly between frontend and backend.
What's next for TerpFit
Moving forward, we want to continue expanding TerpFit by adding even more features. Some ideas include adding Google Maps Street View for location previews, exporting workout plans to PDF, adding email reminders for workouts, and improving the AI’s ability to recommend specific exercises based on user goals. We also want to explore adding social features like sharing workouts with friends or creating group challenges. Overall, we see a lot of potential in TerpFit and hope to keep developing it into an even more powerful fitness companion.
Log in or sign up for Devpost to join the conversation.