Logo Lanfrica

NoorEldin-1/mazayada-app

Domaine:

digital infrastructure

Type de record:

software
Créateur:
Noo
Hôte:
Flutter Android client for Mazayada - the Algerian national digital platform for public auctions and leases # Mazayada — Android app Flutter client for **مزايدة**, the Algerian national digital platform for public auctions and leases. It consumes the existing Laravel mobile API (`/api/v1`, documented at ). Android only — the deliverable is an APK. ## Running ```bash flutter pub get # Against production (the default). flutter run # Against a local Laravel server. 10.0.2.2 is the host machine from inside the # Android emulator; use your LAN IP for a physical device. flutter run --dart-define=BASE_URL=10.0.2.2 ``` ## Building the APK ```bash flutter build apk --release # → build/app/outputs/flutter-apk/app-release.apk # Smaller per-architecture APKs. flutter build apk --release --split-per-abi ``` The release build is currently signed with the **debug** keystore (`android/app/build.gradle.kts`). Replace this with a real upload key before distributing. ## Tests ```bash flutter analyze # must be clean flutter test # envelope, money, i18n parity, token refresh ``` `test/i18n_parity_test.dart` is the client-side counterpart of the platform's `LocalizationTest`: it fails if the three locales drift out of parity. ## Architecture Feature-first, `Riverpod 3 + Dio + GoRouter`, no code generation. ``` lib/ core/ config · network · storage · router · theme · i18n · widgets features/ auth/ auctions/ payments/ kyc/ commercial_register/ dashboard/ my_auctions/ documents/ appeals/ reports/ notifications/ profile/ geo/ shell/ data/ models + repository (HTTP) domain/ Riverpod providers / controllers presentation/ screens + widgets ``` ### Things worth knowing before changing this code **The envelope.** Every API response is `{data, message, meta}`; lists put page info in `meta.pagination`. `core/network/envelope.dart` is the only place that knows this. The one exception is the geo reference endpoints (`/wilayas`, `/wilayas/{id}/communes`), which return a **bare array** with raw `name_ar`/`name_fr` — they are still declared i …