Logo Lanfrica

estifanosbereket1/mebrat

Domaine:

digital infrastructurenatural language processing

Type de record:

software
Créateur:
est
Hôte:
An Android-first Flutter app for browsing Ethiopian power outage announcements, in Amharic, backed by the mebrat-backend FastAPI service. Browsing is fully open with no account required; an optional free account lets you subscribe to specific locations and get a push notification. # መብራት (Mebrat) An Android-first Flutter app for browsing Ethiopian power outage announcements, in Amharic, backed by the mebrat-backend FastAPI service. Browsing is fully open with no account required; an optional free account lets you subscribe to specific locations and get a push notification when a newly-scraped post mentions one (see Known Limitations for what's still deferred). ## Prerequisites - Flutter 3.44.6 (stable) / Dart 3.12.2 or newer - The backend running locally (see `../mebrat-backend/README.md`) -- Postgres via Docker Compose, then `uvicorn app.main:app` - For a physical Android device: `adb` (ships with Android SDK platform-tools) ## Setup ```bash flutter pub get ``` Localization code is generated from `lib/l10n/app_am.arb` into `lib/l10n/gen/` automatically as part of `flutter pub get` / `flutter build` / `flutter test` (see `l10n.yaml`) -- it's gitignored, not checked in. ## Pointing at the backend The API base URL is compiled in via `--dart-define=API_BASE_URL=...` (see `lib/core/api/api_client.dart`), defaulting to `localhost` if omitted. **Which value you need depends on how you're running the app**, since "localhost" means something different on each target: | Target | `API_BASE_URL` | Why | |---|---|---| | `flutter run -d chrome` / desktop | `localhost` (or whatever port the backend is on) | Same machine, so `localhost` works directly. | | Android **emulator** | `10.0.2.2` | The emulator's own `localhost` refers to the emulator itself; `10.0.2.2` is the special alias Android emulators use for the host machine. | | Android **physical device, via USB** (recommended) | `localhost` | Run `adb reverse tcp:8001 tcp:8001` first -- this forwards that port from the phone back to your machine over the USB connection itself, so `localhost` on the phone reaches your backend. Works with no WiFi/network dependency, but needs re-running after every reconnect (unplug, `adb kill-server`, etc). | | And …