EPIC 1: Training Program Management

E01-F01: Browsing Workout Programs

User Story: As a user, I want to browse the list of available workout programs with their difficulty level and estimated duration, so that I can choose a program that matches my fitness level and time availability.

Scenarios

Scenario: E01-F01-S01 - Viewing all available workout programs
  Given I am on the main screen of the application
  When I navigate to the "Workout Programs" section
  Then I should see a list of available programs
  And each program should display its difficulty level
  And each program should display its estimated duration
Scenario: E01-F01-S02 - Filtering programs by difficulty level
  Given I am on the "Workout Programs" screen
  When I select the filter option
  And I choose "Beginner" difficulty
  Then I should only see programs with "Beginner" difficulty level
  And the program count should update to reflect filtered results
Scenario: E01-F01-S03 - Sorting programs by duration
  Given I am on the "Workout Programs" screen
  When I select the sort option
  And I choose "Duration (shortest first)"
  Then the programs should be displayed in ascending order of duration
  And the first program should have the shortest duration

Acceptance Tests

# Test d'acceptation
Scenario: E01-F01-TA01 - Viewing programs with no internet connection
  Given I have previously loaded the "Workout Programs" section
  And I have cached workout programs
  When I turn off my internet connection
  And I navigate to the "Workout Programs" section
  Then I should see my cached list of available programs
  And I should see an indicator that I'm viewing offline content
# Test d'acceptation
Scenario: E01-F01-TA02 - Handling empty search results
  Given I am on the "Workout Programs" screen
  When I search for "underwater basket weaving"
  And no programs match this search term
  Then I should see a message "No programs match your search"
  And I should see suggestions for alternative search terms

E01-F02: Viewing Workout Program Details

User Story: As a user, I want to see the details of a workout program with all its exercises, sets/reps count and targeted muscles, so that I can understand what I’ll be doing before starting the program.

Scenarios

Scenario: E01-F02-S01 - Viewing complete program details
  Given I am on the "Workout Programs" screen
  When I select a specific program called "Full Body Strength"
  Then I should see a detailed view of the program
  And I should see a list of all exercises included in the program
  And each exercise should display its sets and repetitions count
  And each exercise should show which muscle groups it targets
Scenario: E01-F02-S02 - Viewing exercise demonstration within program details
  Given I am viewing details of the "Full Body Strength" program
  When I tap on the exercise "Barbell Squat"
  Then I should see a demonstration of the exercise
  And I should see proper form instructions
  And I should see safety precautions for the exercise

Acceptance Tests

# Test d'acceptation
Scenario: E01-F02-TA01 - Accessing program details without internet connection
  Given I have previously viewed the "Full Body Strength" program
  When I turn off my internet connection
  And I navigate to the "Full Body Strength" program details
  Then I should see the cached program details
  But the exercise videos should show an offline indicator
  And I should see an option to download content for offline use

E01-F03: Starting and Following a Workout Session

User Story: As a user, I want to start a workout session from a program and receive step-by-step instructions, so that I can follow the program correctly without having to memorize all the details.

Scenarios

Scenario: E01-F03-S01 - Starting a workout session
  Given I am viewing the details of "Full Body Strength" program
  When I tap the "Start Workout" button
  Then a new workout session should begin
  And I should see the first exercise in the program
  And I should see instructions for completing the first set
Scenario: E01-F03-S02 - Progressing through exercises in a workout
  Given I am in an active workout session of "Full Body Strength"
  When I complete all sets of the current exercise "Barbell Squat"
  And I tap "Next Exercise"
  Then I should see the next exercise "Bench Press" in the program
  And the progress indicator should update to show my position in the workout
  And my completed sets should be saved to my workout history

Acceptance Tests

# Test d'acceptation
Scenario: E01-F03-TA01 - Attempting to start a workout with low battery
  Given I am viewing the details of "Full Body Strength" program
  And my device battery is below 10%
  When I tap the "Start Workout" button
  Then I should see a warning about low battery
  And I should be asked to confirm starting the workout
  And I should be advised to connect a charger

E01-F04: Managing Workout Session State

User Story: As a user, I want to be able to interrupt, pause and resume my workout session, so that I can adapt to unexpected interruptions and still complete my workouts.

Scenarios

Scenario: E01-F04-S01 - Pausing an active workout
  Given I am in the middle of a "Full Body Strength" workout session
  When I tap the "Pause" button
  Then the workout timer should stop
  And the application should display "Workout Paused"
  And I should see options to "Resume" or "End Workout"
Scenario: E01-F04-S02 - Resuming a paused workout
  Given I have a paused "Full Body Strength" workout session
  When I tap the "Resume" button
  Then the workout should continue from where I left off
  And the workout timer should resume counting
Scenario: E01-F04-S03 - Resuming a workout after application restart
  Given I have a paused workout session
  When I close the application
  And I reopen the application
  Then I should see a notification about my paused workout
  When I tap on the notification
  Then I should be taken directly to my paused workout
  And all my previous progress should be intact

Acceptance Tests

# Test d'acceptation
Scenario: E01-F04-TA01 - Recovering from app crash during workout
  Given I am in the middle of a "Full Body Strength" workout session
  When the application unexpectedly crashes
  And I relaunch the application
  Then I should be prompted to resume my interrupted workout
  And all my previously completed sets should be preserved
  And the workout should continue from the exercise I was performing

E01-F05: Program Structure Management

User Story: As a fitness enthusiast, I want to create and follow structured training programs spanning multiple weeks, so that I can progress systematically toward specific goals with properly sequenced workouts.

Scenarios

Scenario: E01-F05-S01 - Creating a new multi-week training program
  Given I am on the "Programs" screen
  When I tap "Create New Program"
  And I name it "12-Week Strength Builder"
  And I set the duration to "12 weeks"
  And I set the frequency to "4 workouts per week"
  Then my program structure should be created
  And I should see a 12-week calendar with 4 workout slots per week
  And I should be prompted to assign specific workouts to each slot
Scenario: E01-F05-S02 - Assigning workout types to program days
  Given I am editing my "12-Week Strength Builder" program
  When I tap on Week 1, Day 1
  And I select "Upper Body" as the workout type
  And I tap on Week 1, Day 2
  And I select "Lower Body" as the workout type
  And I tap on Week 1, Day 4
  And I select "Full Body" as the workout type
  And I tap on Week 1, Day 6
  And I select "Mobility" as the workout type
  Then my Week 1 should have these four workouts assigned
  And the calendar should visually indicate each workout type
Scenario: E01-F05-S03 - Setting up progressive overload in a program
  Given I am editing my "12-Week Strength Builder" program
  When I tap "Progressive Overload Settings"
  And I select "Weekly weight increase"
  And I set "2.5%" as the increment rate
  Then the program should calculate weight progressions across weeks
  And workout intensity should increase according to the specified rate
  And I should see a visual progression chart for key exercises

Acceptance Tests

# Test d'acceptation
Scenario: E01-F05-TA01 - Handling deload weeks in a program
  Given I am editing my "12-Week Strength Builder" program
  When I tap on Week 4
  And I select "Set as Deload Week"
  Then Week 4 should be marked as a deload week
  And the intensity for all Week 4 workouts should be reduced by 30%
  And Week 4 should be visually distinct in the program calendar
  And the progression calculation should account for this deload

E01-F06: Program Templates and Methodologies

User Story: As a user, I want to select from established training methodologies to build my program, so that I can follow proven systems without having to design everything from scratch.

Scenarios

Scenario: E01-F06-S01 - Creating a program from methodology templates
  Given I am on the "Create Program" screen
  When I select "Use Methodology Template"
  And I choose "5/3/1 Program"
  Then I should see a pre-configured 4-week cycle
  And I should be prompted to enter my one-rep maxes for main lifts
  And the program should calculate all weights based on percentages
  And accessory work templates should be suggested
Scenario: E01-F06-S02 - Customizing a methodology program template
  Given I am setting up a "5/3/1" program
  When I complete entering my one-rep maxes
  And I select "BBB (Boring But Big)" as the accessory template
  And I modify the default 5x10 to 5x8 for accessory work
  Then my customized 5/3/1 program should be created
  And the weights should follow the 5/3/1 progression
  And the accessory work should follow my modified scheme

Acceptance Tests

# Test d'acceptation
Scenario: E01-F06-TA01 - Adapting a program template to available equipment
  Given I am setting up a "StrongLifts 5x5" program template
  And I have indicated I don't have access to a squat rack
  When the program is being generated
  Then I should see alternative exercises suggested for barbell squats
  And I should be asked if I want to substitute all rack-dependent exercises
  And the program should be adapted while maintaining the core methodology

E01-F07: Program Progress Tracking

User Story: As a user following a multi-week program, I want to track my adherence and progress through the program, so that I can ensure I’m staying on track and see my development over time.

Scenarios

Scenario: E01-F07-S01 - Viewing program progress overview
  Given I am following the "12-Week Strength Builder" program
  And I have completed 4 weeks
  When I go to "My Programs"
  And I select "12-Week Strength Builder"
  Then I should see I am "33% complete" with the program
  And I should see a progress bar indicating completion
  And I should see a calendar view with completed and upcoming workouts
  And I should see performance metrics comparing initial and current strength
Scenario: E01-F07-S02 - Getting reminders for scheduled program workouts
  Given I am in Week 3 of my "12-Week Strength Builder" program
  And today is scheduled for "Lower Body" workout
  When I open the app
  Then I should see a reminder that I have a scheduled workout today
  And I should see quick access to start today's "Lower Body" workout
  And I should see how this workout fits into my overall program

Acceptance Tests

# Test d'acceptation
Scenario: E01-F07-TA01 - Handling missed workouts in a program
  Given I am following the "12-Week Strength Builder" program
  And I have missed the Day 2 workout in Week 3
  When I open the program calendar
  Then I should see the missed workout marked accordingly
  When I tap on the missed workout
  Then I should see options to "Skip", "Reschedule", or "Modify Program"
  When I select "Reschedule"
  Then I should be able to select a new date for this workout
  And the program should adjust subsequent workouts if needed

E01-F08: Program Analytics and Results

User Story: As a user, I want to see detailed analytics about my completed program, so that I can evaluate its effectiveness and make informed decisions about my next training cycle.

Scenarios

Scenario: E01-F08-S01 - Viewing end-of-program analytics
  Given I have completed all 12 weeks of my "12-Week Strength Builder" program
  When I tap on "Program Results"
  Then I should see before/after comparisons for key metrics
  And I should see my strength increases for main lifts
  And I should see my adherence rate to the schedule
  And I should see volume progression charts across the program
Scenario: E01-F08-S02 - Comparing results across multiple program cycles
  Given I have completed two cycles of the "12-Week Strength Builder" program
  When I tap on "Program History"
  And I select both completed cycles
  Then I should see a side-by-side comparison of results
  And I should see which cycle produced better strength gains
  And I should see which cycle had better adherence
  And I should receive suggestions for my next program based on the analysis

Acceptance Tests

# Test d'acceptation
Scenario: E01-F08-TA01 - Exporting program results for external analysis
  Given I have completed my "12-Week Strength Builder" program
  When I view the program results
  And I tap "Export Data"
  Then I should see options for export format
  When I select "CSV"
  Then a comprehensive dataset of my program should be exported
  And it should include all workouts, exercises, sets, reps, and weights
  And it should include progression metrics and adherence data
  And I should be able to share or save this export