UML Use Case Diagrams in PlantUML

Here are the UML use case diagrams for your fitness tracker application, converted from Mermaid to PlantUML format.

Epic 1: Training Program Management

@startuml "Training Program Management"

skinparam actorStyle awesome
skinparam packageStyle rectangle
skinparam usecaseBorderColor #33A5FF
skinparam usecaseBackgroundColor #F5F7F9
skinparam actorBorderColor #33A5FF
skinparam actorBackgroundColor #F5F7F9

title "EPIC 1: TRAINING PROGRAM MANAGEMENT"

actor User

rectangle "Fitness Tracker System" {
  usecase "Browse Workout Programs" as BrowsePrograms
  usecase "Filter & Sort Programs" as FilterPrograms
  usecase "View Program Details" as ViewProgramDetails
  usecase "View Exercise Demonstrations" as ViewExerciseDemos
  usecase "Start Workout Session" as StartWorkout
  usecase "Follow Step-by-Step Instructions" as FollowWorkoutInstructions
  usecase "Track Workout Progress" as TrackWorkoutProgress
  usecase "Pause/Resume Workout" as PauseWorkout
  usecase "Save Workout State" as SaveWorkoutState
}

User --> BrowsePrograms
User --> FilterPrograms
User --> ViewProgramDetails
User --> StartWorkout
User --> PauseWorkout

FilterPrograms ..> BrowsePrograms : <<extends>>
ViewExerciseDemos ..> ViewProgramDetails : <<extends>>
ViewProgramDetails ..> BrowsePrograms : <<extends>>
FollowWorkoutInstructions ..> StartWorkout : <<extends>>
TrackWorkoutProgress ..> FollowWorkoutInstructions : <<extends>>
SaveWorkoutState ..> PauseWorkout : <<extends>>
TrackWorkoutProgress ..> SaveWorkoutState : <<includes>>

@enduml

Epic 2: Progress Tracking and Analysis

@startuml "Progress Tracking and Analysis"

skinparam actorStyle awesome
skinparam packageStyle rectangle
skinparam usecaseBorderColor #33A5FF
skinparam usecaseBackgroundColor #F5F7F9
skinparam actorBorderColor #33A5FF
skinparam actorBackgroundColor #F5F7F9

title "EPIC 2: PROGRESS TRACKING AND ANALYSIS"

actor User

rectangle "Fitness Tracker System" {
  usecase "Record Exercise Performance" as RecordPerformance
  usecase "View Workout History" as ViewWorkoutHistory
  usecase "View Training Statistics" as ViewStatistics
  usecase "Visualize Performance Progress" as VisualizeProgress
  usecase "Compare with Previous Performance" as CompareWithPrevious
  usecase "Set Fitness Goals" as SetGoals
  usecase "Track Goal Progress" as TrackGoalProgress
  usecase "Receive Feedback & Insights" as ReceiveFeedback
}

User --> RecordPerformance
User --> ViewWorkoutHistory
User --> VisualizeProgress
User --> SetGoals
User --> TrackGoalProgress

ViewStatistics ..> ViewWorkoutHistory : <<extends>>
CompareWithPrevious ..> RecordPerformance : <<extends>>
ReceiveFeedback ..> VisualizeProgress : <<extends>>
ReceiveFeedback ..> TrackGoalProgress : <<extends>>

@enduml

Epic 3: Creation and Management of Free-Form Workouts

@startuml "Free-Form Workouts"

skinparam actorStyle awesome
skinparam packageStyle rectangle
skinparam usecaseBorderColor #33A5FF
skinparam usecaseBackgroundColor #F5F7F9
skinparam actorBorderColor #33A5FF
skinparam actorBackgroundColor #F5F7F9

title "EPIC 3: CREATION AND MANAGEMENT OF FREE-FORM WORKOUTS"

actor User

rectangle "Fitness Tracker System" {
  usecase "Create Custom Workout" as CreateCustomWorkout
  usecase "Search Exercise Library" as SearchExercises
  usecase "Configure Exercise Parameters" as ConfigureExercises
  usecase "Receive Exercise Suggestions" as ReceiveSuggestions
  usecase "Modify Active Workout" as ModifyActiveWorkout
  usecase "Add Exercises During Workout" as AddExercises
  usecase "Remove Exercises During Workout" as RemoveExercises
  usecase "Save as Custom Template" as SaveCustomTemplate
}

User --> CreateCustomWorkout
User --> SearchExercises
User --> ConfigureExercises
User --> ModifyActiveWorkout
User --> SaveCustomTemplate

SearchExercises <.. CreateCustomWorkout : <<includes>>
ConfigureExercises <.. CreateCustomWorkout : <<includes>>
ReceiveSuggestions ..> CreateCustomWorkout : <<extends>>
AddExercises ..> ModifyActiveWorkout : <<extends>>
RemoveExercises ..> ModifyActiveWorkout : <<extends>>

@enduml

Epic 4: Customization of Workout Programs

@startuml "Customization of Workout Programs"

skinparam actorStyle awesome
skinparam packageStyle rectangle
skinparam usecaseBorderColor #33A5FF
skinparam usecaseBackgroundColor #F5F7F9
skinparam actorBorderColor #33A5FF
skinparam actorBackgroundColor #F5F7F9

title "EPIC 4: CUSTOMIZATION OF WORKOUT PROGRAMS"

actor User

rectangle "Fitness Tracker System" {
  usecase "Modify Existing Program" as ModifyProgram
  usecase "Change Exercise Order" as ChangeExerciseOrder
  usecase "Adjust Sets & Repetitions" as AdjustSetsReps
  usecase "Replace Exercises" as ReplaceExercises
  usecase "Find Alternative Exercises" as FindAlternatives
  usecase "Filter by Available Equipment" as FilterByEquipment
  usecase "Duplicate Program" as DuplicateProgram
  usecase "Share Custom Program" as ShareProgram
  usecase "Merge Programs" as MergePrograms
}

User --> ModifyProgram
User --> ReplaceExercises
User --> DuplicateProgram
User --> ShareProgram
User --> MergePrograms

ChangeExerciseOrder ..> ModifyProgram : <<extends>>
AdjustSetsReps ..> ModifyProgram : <<extends>>
FindAlternatives <.. ReplaceExercises : <<includes>>
FilterByEquipment ..> FindAlternatives : <<extends>>

@enduml

Epic 5: Exercise Library and Management

@startuml "Exercise Library and Management"

skinparam actorStyle awesome
skinparam packageStyle rectangle
skinparam usecaseBorderColor #33A5FF
skinparam usecaseBackgroundColor #F5F7F9
skinparam actorBorderColor #33A5FF
skinparam actorBackgroundColor #F5F7F9

title "EPIC 5: EXERCISE LIBRARY AND MANAGEMENT"

actor User

rectangle "Fitness Tracker System" {
  usecase "Browse Exercise Library" as BrowseExercises
  usecase "Filter Exercises" as FilterExercises
  usecase "Mark Favorite Exercises" as MarkFavorites
  usecase "Create Custom Collections" as CreateCollection
  usecase "View Exercise Tutorials" as ViewTutorials
  usecase "Access Safety Guidelines" as AccessSafetyInfo
  usecase "Suggest New Exercise" as SuggestNewExercise
  usecase "View Muscle Visualizations" as ViewMuscleVisualizations
  usecase "Save Search Filters" as SaveSearchFilters
}

User --> BrowseExercises
User --> FilterExercises
User --> MarkFavorites
User --> CreateCollection
User --> ViewTutorials
User --> AccessSafetyInfo
User --> SuggestNewExercise
User --> ViewMuscleVisualizations

SaveSearchFilters ..> FilterExercises : <<extends>>
ViewTutorials ..> BrowseExercises : <<extends>>
AccessSafetyInfo ..> ViewTutorials : <<extends>>

@enduml

Comprehensive System Overview

@startuml "Fitness Tracker App - Main Use Cases"

skinparam actorStyle awesome
skinparam packageStyle rectangle
skinparam usecaseBorderColor #33A5FF
skinparam usecaseBackgroundColor #F5F7F9
skinparam actorBorderColor #33A5FF
skinparam actorBackgroundColor #F5F7F9

title "FITNESS TRACKER APP - MAIN USE CASES"

actor User

rectangle "Program Management" {
  usecase "Browse Programs" as BrowsePrograms
  usecase "Start Workout" as StartWorkout
  usecase "Pause/Resume Workout" as PauseWorkout
}

rectangle "Progress Tracking" {
  usecase "Record Performance" as RecordPerformance
  usecase "View Statistics" as ViewStats
  usecase "Set Goals" as SetGoals
}

rectangle "Custom Workouts" {
  usecase "Create Custom Workout" as CreateWorkout
  usecase "Modify Active Workout" as ModifyWorkout
}

rectangle "Customization" {
  usecase "Edit Program" as EditProgram
  usecase "Replace Exercises" as ReplaceExercises
  usecase "Share Program" as ShareProgram
}

rectangle "Exercise Library" {
  usecase "Browse Exercises" as BrowseExercises
  usecase "View Tutorials" as ViewTutorials
  usecase "Manage Favorites" as ManageFavorites
}

User --> BrowsePrograms
User --> StartWorkout
User --> PauseWorkout
User --> RecordPerformance
User --> ViewStats
User --> SetGoals
User --> CreateWorkout
User --> ModifyWorkout
User --> EditProgram
User --> ReplaceExercises
User --> ShareProgram
User --> BrowseExercises
User --> ViewTutorials
User --> ManageFavorites

BrowseExercises <.. CreateWorkout : <<used by>>
BrowseExercises <.. ReplaceExercises : <<uses>>
StartWorkout <.. RecordPerformance : <<follows>>

@enduml

Sequence Diagrams in PlantUML

Here’s an example of converting one of your key sequence diagrams to PlantUML:

@startuml "Starting and Completing a Workout"

skinparam sequenceArrowThickness 2
skinparam roundcorner 20
skinparam maxmessagesize 100
skinparam sequenceParticipant underline

actor User
participant "User Interface" as UI
participant "Workout Manager" as WM
participant "Database" as DB
participant "Workout Timer" as Timer

User -> UI : Select workout program
UI -> WM : getWorkoutDetails(programId)
WM -> DB : fetchWorkoutProgram(programId)
DB --> WM : return program details
WM --> UI : display program overview

User -> UI : Tap "Start Workout"
UI -> WM : startWorkout(programId)
WM -> DB : createWorkoutSession(programId, timestamp)
DB --> WM : return sessionId
WM -> Timer : startWorkoutTimer()
Timer --> UI : update timer display
UI --> User : display first exercise

loop For each exercise
    UI --> User : show exercise details
    User -> UI : Perform exercise and record sets
    UI -> WM : logExerciseSet(weight, reps, rpe)
    WM -> DB : saveSetData(exerciseId, weight, reps, rpe)
    UI --> User : show rest timer
    note over User, UI : Wait for rest period
    User -> UI : Tap "Next Exercise"
    UI -> WM : advanceToNextExercise()
    WM --> UI : return next exercise
end

User -> UI : Tap "Complete Workout"
UI -> WM : finishWorkout(sessionId)
WM -> Timer : stopWorkoutTimer()
WM -> DB : updateSessionStatus(sessionId, "completed")
WM -> DB : saveWorkoutDuration(sessionId, duration)
DB --> WM : confirm save
WM --> UI : display workout summary
UI --> User : show completion stats and achievements

@enduml