63dfc5e41a31f4f0753fc2050849d62b7b22ac90
Major changes: - Textbook UI: chapter list, reader, and interactive exercise view (keyboard + Apple Pencil) surfaced under the Course tab. 30 chapters, 251 exercises. - Stem-change conjugation toggle on Week 4 flashcard decks (E-IE, E-I, O-UE). Uses existing VerbForm + IrregularSpan data to render highlighted present tense conjugations inline. - Deterministic on-device answer grader with partial credit (correct / close for accent-stripped or single-char-typo / wrong). 11 unit tests cover it. - SharedModels: TextbookChapter (local), TextbookExerciseAttempt (cloud- synced), AnswerGrader helpers. Bumped schema. - DataLoader: textbook seeder (version 8) + refresh helpers that preserve LanGo course decks when textbook data is re-seeded. - Local extraction pipeline in Conjuga/Scripts/textbook/ — XHTML chapter parser, answer-key parser, macOS Vision image OCR + PDF page OCR, merger, NSSpellChecker validator, language-aware auto-fixer, and repair pass that re-pairs quarantined vocab rows using bounding-box coordinates. - UI test target (ConjugaUITests) with three tests: end-to-end textbook flow, all-chapters screenshot audit, and stem-change toggle verification. Generated textbook content (textbook_data.json, textbook_vocab.json) and third-party source files are gitignored — re-run Scripts/textbook/run_pipeline.sh locally to regenerate. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Conjuga
A Spanish verb conjugation learning app for iOS. Practice all 20 tenses with spaced repetition, handwriting recognition, and vocabulary courses.
Features
- Conjugation Practice — Flashcards, typing, multiple choice, handwriting, sentence building, and full table modes
- Spaced Repetition — SM-2 algorithm tracks what you know and surfaces what you don't
- 1,750 Verbs — From basic to expert, with irregular form highlighting
- 20 Tenses — Every indicative, subjunctive, conditional, and imperative tense
- Grammar Guide — 20 tense guides with conjugation tables + 20 grammar topic notes (Ser vs Estar, Por vs Para, etc.)
- Vocabulary Courses — Weekly decks with example sentences
- Progress Tracking — Streaks, daily goals, accuracy stats, and achievement badges
- CloudKit Sync — Review progress syncs across devices
- Widgets — Daily progress, word of the day, and weekly stats
- Text-to-Speech — Hear any verb pronounced in Spanish
Architecture
- SwiftUI + SwiftData with a dual-store configuration:
- Local store — Reference data (verbs, forms, guides) seeded from JSON on first launch
- Cloud store — User data (review cards, progress, streaks) synced via CloudKit
- SharedModels package shared between the app and widget extension
Requirements
- iOS 18+
- Xcode 16+
Building
Open Conjuga/Conjuga.xcodeproj in Xcode and run on a simulator or device. Data seeds automatically on first launch.
Description
Languages
Swift
85.4%
Python
12%
HTML
2.4%
Shell
0.2%