Skip to content

feat: Training plan adherence and progress tracking #157

@MaximumTrainer

Description

@MaximumTrainer

Summary

Track and visualise progress and adherence for structured training plans, showing which planned workouts have been completed, skipped, or substituted, and displaying a running completion percentage for the active plan.

Motivation

PlanObject exists in the model layer and plan data is loaded from the server, but there is no tracking of which plan workouts have been completed. Users following multi-week plans have no way to see their progress or know which session is next.

Acceptance Criteria

  • The Training Plans tab shows an adherence indicator next to each week: ''X / Y workouts completed'' with a progress bar
  • Each planned workout in the calendar is marked as: Completed (green), Skipped (grey), Substituted (amber), or Upcoming (default)
  • A workout is automatically marked Completed when a FIT file with a matching workout name and date is found in the history folder
  • The user can manually mark a workout as Skipped or Substituted with an optional note
  • A plan summary card shows overall plan completion %, remaining weeks, and projected completion date
  • Plan adherence data is persisted locally in the SQLite database (new table plan_adherence)
  • The adherence view is read-only in WASM (displays synced data; local marking deferred to desktop)
  • Unit tests cover automatic completion matching logic, edge cases (duplicate names, same-day workouts), and adherence percentage calculation

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions