Machine Learning Foundations - Browser-Local Progress Behaviour
Status: Draft standard Applies to: the account-free public course shell
Purpose
The first release should not require learner accounts. Progress can be remembered in the learner's browser only, while all course content remains usable without stored progress.
Progress model
The course shell may track:
- visited lessons;
- completed checkpoints;
- downloaded resources;
- last opened module;
- learner-selected resume point; and
- local completion percentage.
The course shell must not track:
- name;
- email;
- phone number;
- payment information;
- private notes;
- uploaded files;
- code content;
- model outputs;
- personal datasets; or
- cross-site identifiers.
Storage rule
If browser storage is used, store only small non-sensitive progress flags in local storage. The learner should be able to clear progress from the course interface.
Suggested key pattern:
aabhaai.ml-foundations.progress.v1
The value should be versioned JSON with module and lesson identifiers, not personal information.
No-account fallback
If local storage is blocked or cleared:
- all pages must still open;
- all downloads must still work;
- lessons must remain in normal order;
- notebooks must still run; and
- the learner can manually continue from the module list.
Reset behaviour
The course shell should offer:
- reset current module progress;
- reset full course progress;
- confirmation before clearing progress; and
- a short note that this affects only the current browser.
Export behaviour
For the first release, progress export is optional. If added, export only a simple text or JSON progress summary. Do not include learner code, notes, datasets, or model outputs.
Privacy copy
Use simple copy near the progress control:
Progress is saved only in this browser. No account is required.
Acceptance checks
Before publication:
- complete a lesson and refresh the page;
- confirm progress is remembered;
- reset progress and confirm it clears;
- block local storage and confirm content still works;
- open in a private window and confirm no account is required;
- check keyboard access for progress controls; and
- confirm no progress data is sent to the server.
