psitta

📚 Documentation

This directory contains the complete technical documentation of the project.

The documentation is divided into two main parts:


Architecture

Overview

Provides a high-level view of the application’s architecture and the dependency rules between the different layers.

UI

Describes the application’s screens, their responsibilities, and the controllers they interact with.

Application

Explains the role of the controllers and how they coordinate the UI, Domain, and Persistence layers.

Domain

Introduces the core business model of the application, including sessions, exercises, content, and progression.

Sessions

Details the lifecycle of a learning session and how it orchestrates exercises.

Exercises

Describes runtime exercises, their responsibilities, state transitions, and interactions with the SRS.

SRS

Explains how the spaced repetition system integrates into the Domain and how progression is managed.

Persistence

Documents the Persistence layer, repositories, database mapping, and storage responsibilities.


Mathematics & SRS

SRS Hypotheses

Lists the cognitive assumptions, product choices, and scope of the SRS model.

SRS Mathematics

Presents the mathematical model, formulas, variables, and update equations used by the SRS.

SRS Invariants

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.