Click on api folder for info
Project Name: PRTracker
Team Members: Aneesh Mussim
Course: CMSC408 - Fall 2024
Date: September 28, 2024
GitHub Repository: CMSC408 PRTracker Repository
Description:
PRTracker is a workout log database application that helps users track workouts, exercises, and performance metrics such as sets, reps, weight lifted, and calories burned. It supports goal setting and progress tracking, making it ideal for individuals and personal trainers to manage and optimize fitness routines efficiently.
- Pitch Video: Link to Pitch Video
- Design Video: [Link to Design Video]
- GitHub Repository: Link to GitHub Repository
Problem Domain:
Tracking workouts and fitness progress manually can be challenging and ineffective. PRTracker addresses these issues by providing a structured way to record workouts, analyze performance, and track progress over time.
Target Audience:
The application is designed for both individual users who want to manage their personal fitness progress and personal trainers who need to monitor multiple clients effectively.
Motivation:
The project was inspired by the difficulties faced when manually logging workouts and the desire to create a solution that helps both fitness enthusiasts and professionals optimize their training routines.
The database includes the following entities and relationships:
- User: Stores information about the user (e.g., ID, name, age, weight, fitness goal).
- Workout: Represents workout sessions (e.g., ID, date, duration, type).
- Exercise: Contains details about exercises (e.g., ID, name, type, muscle group).
- Exercise Performance: Logs performance metrics for each exercise (e.g., sets, reps, weight).
- Goal: Tracks fitness goals and progress (e.g., ID, description, target, progress).
Each relation has been decomposed into BCNF/4NF to ensure that it is free of redundancy and anomalies, supporting efficient querying and updates.
-
User (user_id, name, age, weight, fitness_goal, email)
- Primary Key:
user_id
- Primary Key:
-
Workout (workout_id, user_id, date, duration, workout_type, calories_burned)
- Primary Key:
workout_id - Foreign Key:
user_id(referencesUser.user_id)
- Primary Key:
-
Exercise (exercise_id, name, exercise_type, muscle_group, equipment_used)
- Primary Key:
exercise_id
- Primary Key:
-
ExercisePerformance (performance_id, workout_id, exercise_id, sets, reps, weight, time, heart_rate)
- Primary Key:
performance_id - Foreign Keys:
workout_id(referencesWorkout.workout_id),exercise_id(referencesExercise.exercise_id)
- Primary Key:
-
Goal (goal_id, user_id, description, target, progress, start_date, end_date)
- Primary Key:
goal_id - Foreign Key:
user_id(referencesUser.user_id)
- Primary Key:
- Retrieve all workout sessions for a specific user.
- List all exercises performed during a workout session.
- Find the most recent workout date for each user.
- Identify exercises not performed in any workout.
- Find users who have achieved their fitness goals.