Flashcard decks, spaced repetition scheduling, and daily practice sessions.
Flashcards are defined in content/flashcards/flashcards.yaml. The file is a YAML document where keys are module IDs (as strings) and values are arrays of cards.
"1":
- topic: Topic Name
q: The question shown on the front of the card.
a: The answer revealed when the card is flipped.
Users access flashcards from the sidebar or dashboard. They can study by module or shuffle across all modules.
Each flashcard session works like this:
These ratings feed the same SRS system as exercises, so flashcards are scheduled for review at optimal intervals.
The SRS algorithm is based on SM-2 (the algorithm behind Anki). Key concepts:
Tip: The SRS data is stored in localStorage under a key like
your-course-srs. Each course has its own namespace so progress doesn't collide.
The dashboard tracks:
| Stat | Description |
|---|---|
| Day Streak | Consecutive days with at least one exercise or flashcard rated |
| Best Streak | Longest streak ever achieved |
| Today | Number of items completed today |
| Activity Heatmap | GitHub-style grid showing activity over the past 3 months |
Streaks reset at midnight local time.
All data stays in the browser:
Warning: Clearing browser data will erase all progress. Encourage users to use the export feature for backup.