A small C++20 terminal flashcard program with local persistence and adaptive review intervals.
cmake -S . -B build
cmake --build build./build/spaced_repetitionThe program stores cards in cards.db in the current working directory. Each card has a front, back, repetition count, ease factor, interval, and due date.
You can add, list, edit, and delete cards from the main menu. Editing a card keeps its review history; deleting requires typing delete to confirm.
1Again: reset the card and review it tomorrow2Hard: short interval increase3Good: normal interval increase4Easy: larger interval increase
The scheduler is based on the SM-2 algorithm, with a one-day minimum interval and a small initial ease-factor adjustment for hard/easy answers.