Overview
The Learning Record Store is the backend component of the Japanese Language Lab, an educational game for learning the Japanese language. Its purpose is to receive learning events through a stable API so exercises can share progress data without being tightly coupled to one application.
A record store can capture events such as practicing kana, answering a vocabulary prompt, or completing a lesson. Keeping those events in a common format creates a basis for progress views, recommendations, and learner-model experiments later on.
Current Scope
The repository is in an early active stage. It provides the FastAPI application, SQLAlchemy persistence layer, local development setup, and automated API tests.
This deliberately small foundation establishes:
- A typed API built with FastAPI
- Database persistence with SQLAlchemy
- Reproducible dependency and environment management with
uv - HTTP-level testing with pytest
- A source layout that can grow as record types and integrations are introduced
Planned Direction
The intended architecture separates learning activities from analysis. Practice tools submit records; the service validates and stores them; dashboards or learner models consume the resulting history. This allows the Japanese Language Lab to add experiments without giving every client its own incompatible progress model.