Mythra — Uganda Myths for Children. A fully offline, kid-friendly Flutter app scaffold to read and explore Ugandan traditional stories by tribe. No login, all assets bundled locally.
# Mythra — Uganda Myths for Children (Offline)
Mythra is a fully offline, kid-friendly Flutter app concept and scaffold for sharing Uganda's traditional stories, myths, heroes and creatures with children aged 7–14. This repository contains a minimal working scaffold that loads stories from a local JSON asset and displays them in a searchable list with basic tribe browsing and settings (theme + font-size).
## Features (implemented in this scaffold)
- Fully offline: stories and images are loaded from bundled assets.
- No login or internet required.
- Search stories by title, tribe or keywords (local search).
- Tribe browser (basic listing of tribes present in data).
- Story detail screen with image, tribe tag and full text.
- Settings with Light/Dark theme toggle and font-size options (persisted via SharedPreferences).
## Project structure (important files)
- `assets/stories/stories.json` — sample stories JSON (3 example stories).
- `assets/images/` — put your tribe images and thumbnails here. (Placeholders are used when an image is missing.)
- `lib/models/story.dart` — Story model.
- `lib/services/local_data_service.dart` — loads `stories.json` and provides search/tribe helpers.
- `lib/providers/theme_provider.dart` — theme and font-size persistence.
- `lib/screens/` — contains `stories_screen.dart`, `tribes_screen.dart`, `settings_screen.dart`, `story_detail_screen.dart`.
- `lib/app.dart` and `lib/main.dart` — app entry and theme wiring.
## How to run
1. Get dependencies:
```bash
flutter pub get
```
2. Run the app on an emulator or device:
```bash
flutter run
```
Or run on Linux desktop (if configured):
```bash
flutter run -d linux
```
If you see asset warnings about missing images, add image files to `assets/images/ /` (see `stories.json` for expected filenames) or place a placeholder image at `assets/images/common/placeholder_cover.png`.
## Adding stories & images
To add a story, edit `assets/stories/stories.json` and append a new object with the fi …