- add "Recovery", "Quick", and "Sprint" workout types
- order to follow (in activities page filter buttons, in analysis page combobox, in profile page workout kinds cards) is Recovery -> Easy -> Long -> Tempo -> 60' Threshold -> 30' Threshold -> Quick -> Intervals -> MAS Test -> Sprint -> Race
- adapt the color palette from blue to purple according to this order (starting with blue for recovery -> green -> yellow -> orange -> red until purple for race), put the color code in DB (UI shall not resolve it with kindColor based on workout kind name)
- first time setup page
- once connection is validated, add a step to ask user its best race results on 5k, 10k, half-marathon and marathon (at least one shall be provided) and store it in the profile. these values will be updated later during synchronization (as we can detect race kinds with their distance)
- add another step to enter latest known MAS (in mm:ss/km) and store it in the profile. this value will be updated later during synchronization (as we can assign an activity with "MAS test" kind)
- profile page
- move "Heart rate" card before "Activity analysis" card and rename it to "Characteristics"
- add genre (male/female) and age in "Characteristics"
- rename "Activity analysis" card to "Activities"
- in activity analysis, remove "rolling window" and consider the future AI-assisted activity kind analysis will be done on all the synced activities
- in activity analysis, remove the "warm-up" and "cool-down" as we'll detect them during activities synchronization and block identification
- add a personal records cards for 1k, 5k, 10k, half-marathon, marathon (we'll have at least one value coming from "first time setup page", or more after synchronization). show the date if it comes from an activity
- add a performance card showing latest know MAS (we'll have at least one value coming from "first time setup page", or a true one after synchronization). show the date if it comes from an activity
- rename "Training types" card to "Workouts"
- for each workout kind in "Workout kinds" card
- add a radio button to declare a warm-up or not (when checked, add a field to enter duration in minutes)
- add a radio button to declare a cool-down or not (when checked, add a field to enter duration in minutes)
- add a way to choose its primary objective (either "heart rate", either "% MAS")
- if "heart rate" is selected, make appear the "min heart rate", "max heart rate", "min pace", "max pace" fields like before (heart rate fields are mandatory, but not the pace ones)
- if "% MAS" is selected, make appear a "% MAS" field requiring a value between 0 and 150, and a "pace amplitude (s/km)" field requiring a number between 0 and 60
- add Claude API key (keep it optional, this will be for AI-assisted services)
- analysis page
- refactor /api/progress in /api/analysis
- there should now be history graphs per workout kind, like today (remove VO2max metric as we'll move it elsewhere) and general history graphs to monitor new metrics not linked to a workout kind
- general metrics are :
- VO2max
- (as soon as if we have a 5k race in the profile) "Endurance Index (5k)" which is (100-%MAS)/(ln(6/t)) where %MAS is 5k pace divided by MAS speed (get it from the profile) multiplied by 100, and t the duration of 5k race in minutes
- (as soon as if we have a 10k race in the profile) "Endurance Index (10k)" which is (100-%MAS)/(ln(6/t)) where %MAS is 10k pace divided by MAS speed (get it from the profile) multiplied by 100, and t the duration of 10k race in minutes
- (as soon as if we have a half-marathon race in the profile) "Endurance Index (HM)" which is (100-%MAS)/(ln(6/t)) where %MAS is half-marathon pace divided by MAS speed (get it from the profile) multiplied by 100, and t the duration of half-marathon race in minutes
- (as soon as if we have a marathon race in the profile) "Endurance Index (M)" which is (100-%MAS)/(ln(6/t)) where %MAS is marathon pace divided by MAS speed (get it from the profile) multiplied by 100, and t the duration of marathon race in minutes
- general metrics history policy is :
- VO2max, one history point for all activities (whatever their kind)
- Endurance Index metrics, one history point as soon as one formula value is changing (aka race time or MAS)
- create a "Status" card with following elements before the history graphs
- a line scale indicating current VO2max (declare and use application configuration vo2max.gxxyyy where g could be "m" for male or "f" for female, xx could be 20,30,40,50,60,70 and yyy could be "fair", "good", "excellent", "superior", get default values from https://www8.garmin.com/manuals/webhelp/venu/EN-US/GUID-1FBCCD9E-19E1-4E4C-BD60-1793B5B97EB3.html, for example vo2max.m40good=42.4)
- (as soon as if we have a 5k race in the profile) a line scale indicating current "Endurance Index (5k)" (declare and use application configuration ei.min with default value -15 and ei.max with default value 0)
- (as soon as if we have a 10k race in the profile) a line scale indicating current "Endurance Index (10k)" (declare and use application configuration ei.min with default value -15 and ei.max with default value 0)
- (as soon as if we have a half-marathon race in the profile) a line scale indicating current "Endurance Index (HM)" (declare and use application configuration ei.min with default value -15 and ei.max with default value 0)
- (as soon as if we have a marathon race in the profile) a line scale indicating current "Endurance Index (M)" (declare and use application configuration ei.min with default value -15 and ei.max with default value 0)
- training plan page
- we need to store our workouts and dedicated /api/workouts (these are not the garmin workouts)
- this page will list all the planned workouts of the plan, no consideration of schedule for now, just a list of workouts
- for each workout, we have to see
- kind (with same color policy as for the activities)
- objective (as given in workout type profile)
- min pace / max pace ()
- activities page
- add an indicator if a personal record has been beaten (with a cup icon)
- add an indicator for the maximum heart rate (just after the average heart rate)
- AI-assisted ranking button that will set workout kind on unlocked activities (based on workout kind description in profile page)
- discovery of warm-up, cool-down phases, so we can read activity per blocks (with detection of extension of a block compared to linked workout)
- discovery of additional blocks done but not requested by linked workout (for example, additional small sprints at the end of an easy run)
- add icon to indicate if an activity has an associated workout
-
- list layout with smaller graphs (no scale, no targets, no , detailed view with different graphs for each phase incl. delta with workout)