How sethan8r/grammar8r works
Grammar8r is an Android grammar-learning app: users browse a theory topic and microtopic, study cards, start exercises, and reach a completion summary; the app also exposes practice, statistics, theory search, and AI clarification/usage-limit screens. Theory and exercise content is packaged locally, while mutable learning progress is stored separately. The sampled theory repository explicitly combines content and progress for theory views. README content was empty, and several runtime modules were not sampled, so their internal wiring is not inferred.
Main entry points: MainActivity.kt Main activity · ExerciseSessionScreen.kt Exercise session · TheoryRepositoryImpl.kt Theory repository · MicrotopicScreen.kt Microtopic cards
Components 19
App navigation
- Main activity
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/MainActivity.kt
Learning experience
- Theory browser
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/theory/TheoryScreen.kt - Topic view
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/theory/TopicScreen.kt - Microtopic cards
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/theory/MicrotopicScreen.kt - Exercise session
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/exercise/ExerciseSessionScreen.kt - Completion summary
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/exercise/MicrotopicSummaryScreen.kt - Practice
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/practice/PracticeScreen.kt - Statistics
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/statistics/StatisticsScreen.kt - AI clarification
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/clarify/ClarifyScreen.kt - AI limits
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/ui/screens/subscription/AiLimitScreen.kt
Content and progress
- Theory repository
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/data/repository/TheoryRepositoryImpl.kt - Exercise repository
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/data/repository/ExerciseRepositoryImpl.kt - Progress repository
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/data/repository/ProgressRepositoryImpl.kt - Packaged content
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/data/local/content/ContentDatabase.kt - User data
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/data/local/user/UserDatabase.kt - Course vocabulary
grammar-app-android/src/main/java/dev/sethan8r/grammar/app/data/local/content/dao/CourseWordDao.kt
Domain logic
- Answer evaluator
grammar-core/src/main/kotlin/dev/sethan8r/grammar/core/usecase/ExerciseEvaluator.kt - Theory search
grammar-core/src/main/kotlin/dev/sethan8r/grammar/core/usecase/search/SearchTheoryUseCase.kt
Other components
- Learner
Connections 28
- Learner → Main activity: uses
- Main activity → Theory browser: starts at
- Main activity → Topic view: navigates
- Main activity → Microtopic cards: navigates
- Main activity → Exercise session: starts exercises
- Main activity → Completion summary: shows completion
- Main activity → AI clarification: opens clarification
- Main activity → AI limits: opens limits
- Theory browser → Topic view: opens topic
- Topic view → Microtopic cards: opens microtopic
- Microtopic cards → Exercise session: starts exercises
- Exercise session → Completion summary: finishes at
- Theory browser → Theory repository: observes theory
- Topic view → Theory repository: observes microtopics
- Microtopic cards → Theory repository: observes cards
- Theory repository → Packaged content: reads content
- Theory repository → User data: reads progress
- Exercise session → Exercise repository: loads exercises
- Exercise repository → Packaged content: reads exercises
- Exercise session → Answer evaluator: checks answers
- Exercise session → Progress repository: records results
- Progress repository → User data: writes progress
- Statistics → Progress repository: reads statistics
- Theory browser → Theory search: searches theory
- Theory search → Theory repository: uses search index
- Practice → Exercise repository: loads practice
- Microtopic cards → AI clarification: requests clarification
- Course vocabulary → Packaged content: reads vocabulary