UX: reset progress, per module and all
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 2
- Forks
- 1
- Avg merge
- 1d 2h
- Merged PRs (30d)
- 7
Description
Part of the UX backlog. Raised on 2026-06-11, where it was noted as "pending API storage" — that blocker is gone, since progress is local.
There is currently no way to reset progress. A reader who wants to start over, or who clicked through a module without reading it, is stuck with the state.
Scope
- Reset a single module's progress
- Reset everything
Progress lives entirely in localStorage under the course_progress key (lib/progress.ts), so this is a small, self-contained change — add reset functions there and expose them in the UI.
Where
lib/progress.ts, plus an entry point in components/ModulePlayerClient.tsx (per module) and somewhere on the catalog (reset all).
Watch out
Resetting everything is destructive and unrecoverable — there is no server copy. It needs a confirmation step.
Done when
Both resets work, survive a reload, and the destructive one asks first.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in lib/progress.ts and trace how the course_progress localStorage key is read and written. Then inspect components/ModulePlayerClient.tsx for the per-module entry point and the catalog for the reset-all entry point. Done means both resets persist after reload, with confirmation before the destructive reset.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 78/100