Skip to content

[Feature]: Spaced Repetition Algorithm Engine #2279

Description

@Vachhani-Tapan

Feature/Project Proposal

I would like to propose the integration of a scientifically backed spaced repetition algorithm (such as SuperMemo-2 or FSRS) to dynamically manage user flashcard and question review schedules.

Problem Statement

Currently, the study material and flashcard review sessions rely on simple random selection or linear progression. This leads to inefficient studying; users over-study concepts they already know while forgetting difficult concepts because they aren't surfaced at the optimal time for memory retention.

Proposed Solution

The project could create a RepetitionState entity linked to user profiles to track the history of specific questions. By implementing the SM-2 algorithm, the system will calculate the easiness_factor, interval, and repetitions based on user feedback grades (1-5) after each attempt. A daily CRON job will then aggregate and flag "due" cards to construct personalized daily review queues.

Alternatives Considered

Another possible solution is a simpler Leitner system (using physical-style spaced "boxes" with fixed day intervals), but this is less adaptive to individual learning curves than mathematical algorithms like SM-2.

Benefits

This would significantly improve long-term retention and user success rates. Users will trust the platform more as an efficient study planner that optimizes their time, directly increasing daily active user (DAU) retention.

Priority

None

Additional Context

No response

Checklist

  • I have searched existing issues and discussions before creating this request.
  • I am willing to work on this feature if it is approved.

Metadata

Metadata

Labels

claimedThis issue has been claimed by a contributorenhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions