mirror of
https://github.com/DocNR/POWR.git
synced 2025-04-23 01:01:27 +00:00
4.3 KiB
4.3 KiB
Progress Tracking
Last Updated: 2025-03-25
Status: Active
Related To: Profile Features, Analytics, Workout History
Purpose
This document describes the progress tracking features in the POWR app's profile tab. It outlines how users can track their exercise progress, view trends over time, and analyze their workout performance.
Overview
The progress tracking feature allows users to:
- View exercise-specific progress over time
- Track key performance metrics (weight, volume, frequency)
- Identify personal records and milestones
- Analyze workout trends and patterns
The progress tracking is designed with the following principles:
- Exercise-focused rather than workout-focused
- Clear visual representation of progress
- Focus on actionable insights
- Privacy-first with user control over data sharing
Component Architecture
High-Level Components
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ UI Layer │ │ Service Layer │ │ Data Layer │
│ │ │ │ │ │
│ Progress Charts │ │ Analytics │ │ Workout History │
│ Exercise List │◄───►│ Services │◄───►│ Data │
│ Metrics Display │ │ Aggregation │ │ Calculation │
└─────────────────┘ └─────────────────┘ └─────────────────┘
UI Components
ProgressCharts
: Visual representations of key metrics over timeExerciseList
: Selectable list of exercises with progress indicatorsMetricsDisplay
: Numerical representation of key performance indicatorsPRBadges
: Visual indicators of personal records
Service Layer
AnalyticsService
: Processes raw workout data into progress metricsWorkoutAggregator
: Combines data from multiple workouts for a given exerciseMetricsCalculator
: Computes derived metrics from raw workout data
Data Layer
- Relies on
WorkoutHistoryService
for source data - Cached calculations for performance
- Local-only analytics (no server processing)
Implementation Details
Key Metrics Tracked
Progress tracking focuses on these primary metrics:
-
Weight Progression
- One-rep max (calculated or actual)
- Working weight used for similar rep ranges
- Weight increases over time periods (week, month, year)
-
Volume Metrics
- Total weight moved per exercise
- Sets × reps × weight calculations
- Volume trends over time
-
Frequency Analysis
- Exercise frequency per time period
- Body part/movement pattern frequency
- Rest periods between similar workouts
-
Personal Records
- Weight PRs at various rep ranges
- Volume PRs per session
- Streak and consistency records
Data Visualization
Progress is visualized through:
- Line charts for weight/volume progression
- Bar charts for frequency analysis
- Milestone markers for personal records
- Heat maps for workout frequency
Exercise Selection
Users can track progress for:
- Individual exercises (e.g., Barbell Bench Press)
- Exercise categories (e.g., all bench press variations)
- Movement patterns (e.g., all pushing movements)
- Body parts (e.g., all chest exercises)
Implementation Considerations
Progress tracking presents several challenges addressed in the implementation:
-
Data Normalization
- Handling similar exercises with different names
- Accounting for different equipment types
- Normalizing units (kg/lbs)
-
Valid Comparison
- Comparing similar set/rep schemes
- Accounting for RPE/intensity differences
- Filtering anomalous data points
-
Performance Optimization
- Pre-calculating common metrics
- Caching results for frequently viewed exercises
- Progressive loading of historical data
Related Documentation
- Workout History Features - Source data for progress tracking
- MVP and Targeted Rebuild - Overall MVP strategy
- Profile Tab Architecture - Overall profile tab design