SafeMom — maternal health app for East African mothers. Final project for Mobile Application Development, African Leadership University.
# SafeMom — Maternal Health Companion
SafeMom is a cross-platform mobile application that supports expectant mothers through pregnancy tracking, symptom logging, danger-sign screening, emergency dispatch, and a moderated peer community. It is built with **Flutter** and **Google Firebase**, structured around **Clean Architecture** with the **BLoC** state-management pattern.
**Repository:**
github.com
**Firebase project:** `safemom-bd26b` (region: `africa-south1`)
**Platform target:** Android (physical device or emulator). This is a mobile application; web/desktop builds are out of scope.
---
## Table of Contents
1. Overview
2. Features
3. Architecture
4. Project Structure
5. Prerequisites
6. Setup & Installation
7. Firebase Configuration
8. Running the App
9. Testing
10. Database & Security
11. Screenshots
12. Known Limitations & Future Work
13. Team
---
## Overview
SafeMom is designed for expectant mothers, with a focus on the East African context. The app combines routine pregnancy tracking with safety-critical features: a two-tier danger-sign checker and a one-tap emergency dispatch flow that routes high-risk screening results directly to help.
The application follows a strict separation of concerns — presentation, domain, and data layers — so that business logic never lives inside UI files. State is managed with BLoC, dependencies are injected via GetIt, and all persistent data is stored in Cloud Firestore behind authenticated, owner-scoped security rules.
---
## Features
| Feature | Description |
|---|---|
| **Authentication** | Email/password and Google Sign-In. Secure registration, login, logout, and password reset. Auth state persists across app restarts. |
| **Home Dashboard** | Personalised greeting, current pregnancy week and trimester, progress indicator, baby-size comparison, quick actions, and a weekly tip. |
| **Symptom Logging** | Log symptoms with a severity rating; view history. |
| **Safety Check (Danger …