Video Demo: (https://www.youtube.com/watch?v=KzlXlnVFJIc)
Gym Guide is a web-based application designed to help fitness enthusiasts effectively track their workouts while staying motivated. This project is my CS50 final submission, showcasing the skills I’ve learned throughout the course.
-
User Authentication:
- Users can register and log in securely with their credentials.
- A logout button ensures easy session management.
- A button for changing the user's password.
-
Dashboard:
- The central hub where users can manage their workouts.
- Includes a dynamic table displaying workout details: Day, Exercise, Sets, Weight, and Reps and also an option to remove these exercises.
-
Add Exercise:
- An intuitive form that collects workout details and updates the dashboard upon submission.
- Ensures user inputs are validated before storing them in the database.
-
Creative Enhancements:
- Motivational Quotes: Random quotes, including popular anime-inspired ones, appear to keep users energized.
- Spotify Playlist: An embedded playlist lets users play workout music directly from the app.
- Flask and Python: Backend framework and language for routing, database management, and logic.
- SQLite: Database to store user and exercise data.
- HTML, CSS, Bootstrap: Frontend technologies for responsive and stylish design.
- JavaScript: Enhancing interactivity, such as dynamic table updates.
app.py
: The core backend logic, including routes for user authentication, exercise management, and session handling.templates/
: Contains all HTML templates such as the dashboard, login, and registration pages.static/
: Holds CSS and JavaScript files for styling and interactivity.README.md
: This documentation file explaining the project.gymguide.db
: The SQLite database storing user credentials and workout data.
One of the key decisions was to focus on simplicity and motivation. Fitness apps can become overwhelming, so I aimed to design an interface that is clean, functional, and inspiring. I debated between using an external API for quotes but opted to hardcode them to ensure quick loading and relevant content. Embedding a Spotify playlist was a creative touch, adding real value to the user experience.
This project taught me how to balance backend logic with frontend design. Ensuring a seamless user experience while managing session data securely was a valuable lesson. Choosing colors, themes for the webpages and quotes for challenging but rewarding.
Thank you for reviewing my project, and I hope Gym Guide encourages more people to stay fit and healthy!