Skip to content

feat: progress overview with key figures, trends and next steps (UX-08) - #212

Merged
bri-b-dev merged 1 commit into
mainfrom
b/progress-v2
Oct 10, 2026
Merged

bri-b-dev merged 1 commit into
mainfrom
b/progress-v2

Conversation

@bri-b-dev

Copy link
Copy Markdown
Owner

Summary

  • Header: period as a segmented control (7 / 30 / 90 days / Alles; starts at 30 days, falls back to "Alles" when nothing happened lately) and category chips instead of selects
  • Key figures, all labeled: Sessions ("Ø 2,3 pro Woche · 4 Drills"), Trainingszeit (timer; otherwise the planned time, marked "geschätzt, wo kein Timer lief"), Neue Bestwerte (judged against the full history), Handicap with its change ("−0,8 ggü. vor 30 Tagen") and a trend line
  • Skills: the chart stays; below it a table with the trend per category against the equally long period before ("▲ +12 Pkt ggü. dem Zeitraum davor", "keine Sessions im Zeitraum", "kein Vergleich möglich"). It is also the accessible alternative to the chart. For "Alles" a note explains why there is no comparison
  • Als Nächstes replaces the three lists: one sentence per drill ("Putt: zuletzt 5, Ziel für HCP 12 ist 12.") plus Drill starten (opens the drill with the session running) / Details. Läuft gut lists improvements with their baseline ("Ø der letzten 5 Sessions +0,4 gegenüber den 5 davor") - no bare "Δ 0.43" anymore
  • Empty states name the next step: filter without data (show all periods / all categories / random drill), no handicap, nothing below target
  • Drill detail, tab "Verlauf": result chart with dashed ★/★★/★★★ threshold lines for the player's handicap, zoom 30 days / 90 days / Alles, "up is better" for every drill (mirrored for "smaller is better"), text summary for screen readers
  • Pure logic in src/stats/progress.ts and series.ts; generic SegmentedControl (radio group with arrow keys)

Notes

  • The goal card and the Aktuell/Historisch switch are unchanged
  • Start chunk 145.2 KB; Fortschritt chunk 20.8 KB (lazy); tests 310 -> 338, lint 0 errors

Test plan

  • npm test, npm run lint, npm run typecheck, npm run build (local)
  • CI
  • Manual (phone): header controls wrap well; key figure cards; trend table readability next to the chart; next-step buttons; drill "Verlauf" chart with few and many results, zoom, light/dark; VoiceOver/TalkBack on the table and chart summary

🤖 Generated with Claude Code

- period switch (7/30/90/all) and category chips; labeled key figures (sessions per week,
  training time, new personal bests, handicap with change)
- trend per category against the previous period, as a table that doubles as the screen reader alternative
- "Als Nächstes" with one sentence and an action per drill replaces the three lists; "Läuft gut"
  names the comparison behind every number; empty states point to the next step
- per-drill result chart with level threshold lines and 30/90/all zoom in the history tab
- shared SegmentedControl; pure logic in src/stats/progress.ts and series.ts; tests (338)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@bri-b-dev
bri-b-dev merged commit c76b9a9 into main Oct 10, 2026
1 check passed
@bri-b-dev
bri-b-dev deleted the b/progress-v2 branch October 10, 2026 20:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant