Logo Lanfrica

akrai37/mozambique-app-269

Domain:

educationnatural language processing

Record type:

software
Creator:
akr
Host:
# DIFF EDUCATION Language Literacy App This offline-first mobile app teaches Portuguese to non-literate mothers in rural Mozambique through visual and auditory learning, accommodating users with no reading or technology experience. ### Lib File Hierarchy This offline-first Flutter application uses Hive to store its data locally, and Firestore to sync updates. `lib/model/`: The blueprints for Hive objects (ie. category, vocab, q&a, quiz, conversation) - To generate the *.g.dart files, run ```dart run build_runner build --delete-conflicting-outputs``` in terminal in root directory (if fields not updating in generated files, mark each field as required in constructor) `lib/repositories/`: The functions that update/retrieve the Hive data directly `lib/scripts/`: The scripts used to easily perform tasks at once (Check **Scripts** section for instructions) - `convertToBase64inJSON.js`: Converts the media files to base64 strings and adds them to the JSON files - `JSON2Firestore.js`: Uploads the JSON files to Firestore - `mozambique-fy.js`: Converts the spreadsheet to JSON files - `uploadAssetsToStorage.js`: Uploads the media files to Firebase Storage - `vocab2audio.js`: Converts the vocab words to audio files using tts2mp3.com API `lib/services/`: The functions that retrieve from the Firestore data and sync with the Hive data `lib/view/`: The UI of the app `lib/view_model`: The bridge between model & view: functions that use the repositories to update the views ### Firebase Firestore & Firebase Storage: There are 2 important steps that are needed to allow the app to fetch from Firestore and Storage as you debug: - Place the Firebase Admin SDK private key (`mozambique-app-firebase-adminsdk-fbsvc-434948f8b5.json`) in the root of the folder - Place the Google Services SDK (`google-services.json`) in `android/app` ## Mobile App Deployment ### Building APK (Production) 1. In terminal, navigate to the root of the folder 2. Run `flutter build apk --release --dart-defin …