# English-Somali Phrasebook
An offline-first Flutter mobile app for Somali-speaking learners who need practical English for everyday life. It is a separate sibling project from WordQuest and has its own Flutter project, database, source, tests, and documentation.
## Difference From WordQuest
WordQuest is a lesson and quiz app. This app is a reference-first phrasebook with bilingual dialogues, expressions, signs, practical vocabulary, English-Somali browsing, Somali-English browsing, local search, favorites, recents, lightweight practice, and progress tracking.
No WordQuest files, database, dependencies, assets, or configuration are used by this app.
## Setup
```bash
flutter pub get
dart format .
flutter analyze
flutter test
dart run tool/audit_content.dart
flutter run
```
## Database Initialization
The app uses SQLite through `sqflite`. On first launch, `PhrasebookDatabase` creates the normalized schema and inserts deterministic original seed content. The database stores a schema version and seed version in `app_metadata`.
Seed upgrades replace only authored seed tables and preserve user tables such as favorites, recent items, bookmarks, search history, and practice history. Existing installs check the seed version on open, so seed version 2 safely replaces the old generated content without clearing user progress.
## Seed Organization
Seed content lives in `lib/data/seed/seed_factory.dart` as explicit authored records with stable IDs and validation-friendly structure:
- 19 categories
- category-specific subcategories
- authored expressions with real examples
- unique bilingual dialogues
- practical question-answer pairs
- normalized vocabulary entries with Somali explanations and examples
- signs and units of measure
## Offline Behavior
All learning content and user state live locally in SQLite. The app has no backend, accounts, ads, analytics, API keys, runtime AI generation, or mandatory network access.
## Copyright and Original Content
The project …