Part of #617.
What to build
modules/State.lua and modules/Render.lua.
State lives in <workspace>/.progress/State.json, written with import("core.base.json"): per exercise {attempts, hintsUsed, secondsSpent, completedAt}, plus current and a day streak. It must survive restarts and never be required for the checker to work.
Terminal rendering only, no HTML, no colours that break on a plain terminal:
Ch0 Setup ###### 2/2 done
Ch1 The C++ you need ##.... 1/4
Ch2 The first loop ...... 0/4
Ch3 Systems ...... 0/4
----------------
3/14 streak 2 days
next: 01-02 a function that takes a reference
Done when
- xmake learn --list shows every exercise as done, current or locked
- xmake learn --progress renders the bars, totals, streak and next exercise
- state survives a restart and a curriculum update
- --json exposes the same data for tooling
Depends on
#621
Reactions are currently unavailable
Part of #617.
What to build
modules/State.lua and modules/Render.lua.
State lives in <workspace>/.progress/State.json, written with import("core.base.json"): per exercise {attempts, hintsUsed, secondsSpent, completedAt}, plus current and a day streak. It must survive restarts and never be required for the checker to work.
Terminal rendering only, no HTML, no colours that break on a plain terminal:
Ch0 Setup ###### 2/2 done Ch1 The C++ you need ##.... 1/4 Ch2 The first loop ...... 0/4 Ch3 Systems ...... 0/4 ---------------- 3/14 streak 2 days next: 01-02 a function that takes a referenceDone when
Depends on
#621