This directory contains the complete technical documentation of the project.
The documentation is divided into two main parts:
Provides a high-level view of the application’s architecture and the dependency rules between the different layers.
Describes the application’s screens, their responsibilities, and the controllers they interact with.
Explains the role of the controllers and how they coordinate the UI, Domain, and Persistence layers.
Introduces the core business model of the application, including sessions, exercises, content, and progression.
Details the lifecycle of a learning session and how it orchestrates exercises.
Describes runtime exercises, their responsibilities, state transitions, and interactions with the SRS.
Explains how the spaced repetition system integrates into the Domain and how progression is managed.
Documents the Persistence layer, repositories, database mapping, and storage responsibilities.
Lists the cognitive assumptions, product choices, and scope of the SRS model.
Presents the mathematical model, formulas, variables, and update equations used by the SRS.
Defines the formal invariants that every valid SRSConfig and SRSState must satisfy.
Each document focuses on a single aspect of the project to minimise duplication and keep the documentation easy to maintain.
Some parts of this documentation were written with the assistance of AI. All generated content has been reviewed and verified by the project author to ensure consistency and accuracy.