See it deployed here!
My Workout Builder allows individuals to create sets of exercises into a custom workout plan based on their preferences and allotted time. Users can then log their workout and keep a history of how much they've exercised each day. Trainers are able to perform basic CRUD operations from a manage exercises panel.
Given: The user is logged in and has worked out
When: The users enters their workout with the exercises "Indoor Running," and "Dumbbell Curls" with a duration of 45 minutes
Then: The workout is saved with the exercised "Indoor Running," and Dumbbell Curls" with a duration of 45 minutes and the current date
Given: The user is logged in and has worked out
When: The users enters their workout with the exercises "Indoor Running," and "Dumbbell Curls" but does not enter a duration
Then: The workout is not saved and an error is given - "Must select workout duration"
Given: The user is logged in and has an incomplete workout planned
When: The user clicks a check-box on an incomplete workout to mark the workout as completed
Then: The workout will be logged and can be viewed as a completed workout
Given: User is logged in and a feed of exercises (workout) is available
When: The user selects the date 09/05/23
Then: The user can view the workout that they did for that date
Given: User is logged in and on home page
When: The user selects a date that has no workouts for it
Then: Fallback text states that there was no workout on that date
Given: User is logged in and a feed of exercises is available
When: User selects the exercises "Squats" and "Push-ups", a duration of 30 minutes, and sets the planned date to 9/10/23
Then: The workout plan is created for the date 9/10/23, to do squats and push-ups for 30 minutes
Given: User is logged in and a feed of exercises is available
When: User selects the exercises "Squats" and "Push-ups", a duration of 30 minutes, and sets the planned date to 9/10/22 (in the past)
Then: The workout plan is not created and displays an error - "Please select a future date"
Given: The user is logged in and on the home page
When: The user has the new exercise name and description filled out, and an exercise type selected. They press the create exercise button.
Then: A new exercise is added and can be used when logging a workout
Given: The user is logged in and on the home page
When: The user has the new exercise name but no description filled out, and an exercise type selected. They press the create exercise button.
Then: The exercise is not created it an error is thrown - "Please add a description"
The Exercise class pulls in information about a specific exercise. This class calls for an ID that it will set itself, A name that you will provide, A description, A workout type (Chest, Arm, Abs, Cardio, etc.), and a duration for the exercise. The Workout class will gather information from the exercise class and create a workout plan. The User class brings in information on who uses the software. It will connect with the exercise so you can know who created the exercises. The Exercise Controller class will gather the Exercises and ID them. The Workout Controller is what builds the workouts. It will pull from the Exercises and create a workout based on the type of workout you want to do.
This is what we plan to export to another app.
{
"type": "object",
"title": "Workout",
"properties": {
"date": {
"type": "string",
"format": "date-time",
},
"id": {
"type": "integer",
},
"workout_type": {
"type": "string",
},
"exercises": {
"type": "array",
"items": {
"type": "object",
"properties": {
// todo: Define properties for the Exercise object here
}
},
},
"user": {
"type": "object",
"properties": {
// todo: Define properties for the User object here
},
}
},
"required": ["date", "id", "workout_type", "exercises", "user"]
}
UI Specialist: Alex Balogh, Steele Shreve
Business Logic/Persistence: Charles Hayes, Adam Tulloss
DevOps/Product Owner/Scrum Master/GitHub Admin: Adam Tulloss