How olmps/memo works
Memo is a Flutter spaced-repetition app for programming-oriented learning. Its principal user workflow is to browse collections, inspect or edit their memos, run an execution, and review progress. The tree identifies separate application, domain, and persistence layers, plus bundled learning content. Source excerpts are limited to platform bootstrapping, so the graph uses module responsibilities and the README’s product description; internal call wiring is not verified.
Main entry points: services Domain services · repositories Repositories · execution Study execution · main.dart App entry
Components 17
Application
- App entry
lib/main.dart - Navigation
lib/application/coordinator - Collections
lib/application/pages/home/collections - Collection details
lib/application/pages/details - Collection editing
lib/application/pages/home/collections/update - Study execution
lib/application/pages/execution - Progress view
lib/application/pages/home/progress - Settings
lib/application/pages/settings
Learning Domain
- Domain services
lib/domain/services - Learning models
lib/domain/models - Recall services
lib/domain/isolated_services/memory_recall_services.dart
Data Access
- Repositories
lib/data/repositories - Local database
lib/data/gateways/sembast_database.dart - Serializers
lib/data/serializers
Bundled Content
- Collection content
assets/collections - Resource catalog
assets/resources.json
Other components
- Learner
Connections 19
- Learner → App entry: opens app
- App entry → Navigation: starts navigation
- Learner → Collections: browses
- Learner → Collection details: views
- Learner → Collection editing: edits
- Learner → Study execution: studies
- Learner → Progress view: reviews
- Collections → Domain services: requests collections
- Collection details → Domain services: requests details
- Collection editing → Domain services: updates collection
- Study execution → Domain services: runs session
- Progress view → Domain services: requests progress
- Domain services → Repositories: uses data access
- Repositories → Local database: persists data
- Repositories → Serializers: serializes data
- Domain services → Learning models: operates on
- Study execution → Recall services: supports recall
- Repositories → Collection content: loads bundled collections
- Repositories → Resource catalog: loads resources