# dr5t/food-aid architecture

> Architecture diagram of the GitHub repository dr5t/food-aid, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-15). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/dr5t/food-aid
- Repository: https://github.com/dr5t/food-aid

## Overview

Food Aid connects donors, NGOs, logistics partners, and administrators through a Flutter app backed by Firebase. The main workflow is donation listing, NGO acceptance, pickup and delivery, with status tracking; emergency SOS requests and administration are distinct supporting capabilities. The README documents these capabilities, but no Dart application source was excerpted, so implementation-level calls and data paths cannot be verified; edges below reflect documented product interactions only.

Main entry points: [`lib/screens/auth`](https://github.com/dr5t/food-aid/tree/main/lib/screens/auth) (Authentication), [`lib/screens/ngo/ngo_dashboard.dart`](https://github.com/dr5t/food-aid/blob/main/lib/screens/ngo/ngo_dashboard.dart) (Browse donations), [`lib/screens/notifications/notifications_screen.dart`](https://github.com/dr5t/food-aid/blob/main/lib/screens/notifications/notifications_screen.dart) (Notifications), [`lib/screens/donor/donor_dashboard.dart`](https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/donor_dashboard.dart) (Donor dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and roles"]
  node_authentication["Authentication"]
  node_donor_dashboard["Donor dashboard"]
  node_ngo_dashboard["NGO dashboard<br/>[ngo_dashboard.dart]"]
  node_logistics_dashboard["Logistics dashboards"]
  node_admin_dashboard["Admin dashboard"]
end

subgraph group_distribution["Food distribution"]
  node_donation_creation["Create donation"]
  node_donation_history["Donation history"]
  node_donation_tracking["Donation tracking"]
  node_donation_browsing["Browse donations<br/>[ngo_dashboard.dart]"]
  node_location_mapping["Maps and location"]
  node_logistics_jobs["Transport jobs"]
  node_delivery_confirmation["Delivery confirmation"]
end

subgraph group_coordination["Coordination and support"]
  node_emergency_requests["Emergency SOS"]
  node_notifications["Notifications"]
end

subgraph group_platform["App and services"]
  node_auth_service["Auth service<br/>[auth_service.dart]"]
  node_firestore_service["Firestore service"]
  node_firestore[("Cloud Firestore")]
end

node_donors(("Donors"))
node_ngos(("NGOs"))
node_logistics_users(("Logistics partners"))
node_admins(("Administrators"))

node_donors -->|"sign in"| node_authentication
node_ngos -->|"sign in"| node_authentication
node_logistics_users -->|"sign in"| node_authentication
node_admins -->|"sign in"| node_authentication
node_donors -->|"manage donations"| node_donor_dashboard
node_ngos -->|"manage needs"| node_ngo_dashboard
node_logistics_users -->|"manage transport"| node_logistics_dashboard
node_admins -->|"oversee activity"| node_admin_dashboard
node_donor_dashboard -->|"create listing"| node_donation_creation
node_donors -->|"view impact"| node_donation_history
node_donors -->|"track status"| node_donation_tracking
node_ngo_dashboard -->|"browse listings"| node_donation_browsing
node_donation_browsing -->|"view nearby"| node_location_mapping
node_ngos -->|"accept donations"| node_donation_browsing
node_logistics_dashboard -->|"manage jobs"| node_logistics_jobs
node_logistics_jobs -->|"confirm delivery"| node_delivery_confirmation
node_logistics_users -->|"share location"| node_location_mapping
node_ngos -->|"request supplies"| node_emergency_requests
node_emergency_requests -->|"broadcast SOS"| node_notifications
node_donors -->|"receive updates"| node_notifications
node_logistics_users -->|"receive updates"| node_notifications
node_authentication -->|"authenticate"| node_auth_service
node_firestore_service -->|"use database"| node_firestore

click node_authentication "https://github.com/dr5t/food-aid/tree/main/lib/screens/auth"
click node_donor_dashboard "https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/donor_dashboard.dart"
click node_ngo_dashboard "https://github.com/dr5t/food-aid/blob/main/lib/screens/ngo/ngo_dashboard.dart"
click node_logistics_dashboard "https://github.com/dr5t/food-aid/tree/main/lib/screens/logistics"
click node_admin_dashboard "https://github.com/dr5t/food-aid/blob/main/lib/screens/admin/admin_dashboard.dart"
click node_donation_creation "https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/create_donation_screen.dart"
click node_donation_history "https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/donation_history_screen.dart"
click node_donation_tracking "https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/donation_tracking_screen.dart"
click node_donation_browsing "https://github.com/dr5t/food-aid/blob/main/lib/screens/ngo/ngo_dashboard.dart"
click node_location_mapping "https://github.com/dr5t/food-aid/blob/main/lib/services/location_service.dart"
click node_logistics_jobs "https://github.com/dr5t/food-aid/tree/main/lib/screens/logistics"
click node_delivery_confirmation "https://github.com/dr5t/food-aid/tree/main/lib/screens/logistics"
click node_emergency_requests "https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/sos_requests_screen.dart"
click node_notifications "https://github.com/dr5t/food-aid/blob/main/lib/screens/notifications/notifications_screen.dart"
click node_auth_service "https://github.com/dr5t/food-aid/blob/main/lib/services/auth_service.dart"
click node_firestore_service "https://github.com/dr5t/food-aid/blob/main/lib/services/firestore_service.dart"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_authentication,node_donor_dashboard,node_ngo_dashboard,node_logistics_dashboard,node_admin_dashboard toneBlue
class node_donation_creation,node_donation_history,node_donation_tracking,node_donation_browsing,node_location_mapping,node_logistics_jobs,node_delivery_confirmation toneAmber
class node_emergency_requests,node_notifications toneMint
class node_auth_service,node_firestore_service,node_firestore toneRose
class node_donors,node_ngos,node_logistics_users,node_admins toneIndigo
```

## Components

### Access and roles

- [Authentication](https://github.com/dr5t/food-aid/tree/main/lib/screens/auth): `lib/screens/auth`
- [Donor dashboard](https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/donor_dashboard.dart): `lib/screens/donor/donor_dashboard.dart`
- [NGO dashboard](https://github.com/dr5t/food-aid/blob/main/lib/screens/ngo/ngo_dashboard.dart): `lib/screens/ngo/ngo_dashboard.dart`
- [Logistics dashboards](https://github.com/dr5t/food-aid/tree/main/lib/screens/logistics): `lib/screens/logistics`
- [Admin dashboard](https://github.com/dr5t/food-aid/blob/main/lib/screens/admin/admin_dashboard.dart): `lib/screens/admin/admin_dashboard.dart`

### Food distribution

- [Create donation](https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/create_donation_screen.dart): `lib/screens/donor/create_donation_screen.dart`
- [Donation history](https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/donation_history_screen.dart): `lib/screens/donor/donation_history_screen.dart`
- [Donation tracking](https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/donation_tracking_screen.dart): `lib/screens/donor/donation_tracking_screen.dart`
- [Browse donations](https://github.com/dr5t/food-aid/blob/main/lib/screens/ngo/ngo_dashboard.dart): `lib/screens/ngo/ngo_dashboard.dart`
- [Maps and location](https://github.com/dr5t/food-aid/blob/main/lib/services/location_service.dart): `lib/services/location_service.dart`
- [Transport jobs](https://github.com/dr5t/food-aid/tree/main/lib/screens/logistics): `lib/screens/logistics`
- [Delivery confirmation](https://github.com/dr5t/food-aid/tree/main/lib/screens/logistics): `lib/screens/logistics`

### Coordination and support

- [Emergency SOS](https://github.com/dr5t/food-aid/blob/main/lib/screens/donor/sos_requests_screen.dart): `lib/screens/donor/sos_requests_screen.dart`
- [Notifications](https://github.com/dr5t/food-aid/blob/main/lib/screens/notifications/notifications_screen.dart): `lib/screens/notifications/notifications_screen.dart`

### App and services

- [Auth service](https://github.com/dr5t/food-aid/blob/main/lib/services/auth_service.dart): `lib/services/auth_service.dart`
- [Firestore service](https://github.com/dr5t/food-aid/blob/main/lib/services/firestore_service.dart): `lib/services/firestore_service.dart`
- **Cloud Firestore**

### Other components

- **Donors**
- **NGOs**
- **Logistics partners**
- **Administrators**

## Connections

- Donors → Authentication: sign in (evidence: `README.md`)
- NGOs → Authentication: sign in (evidence: `README.md`)
- Logistics partners → Authentication: sign in (evidence: `README.md`)
- Administrators → Authentication: sign in (evidence: `README.md`)
- Donors → Donor dashboard: manage donations (evidence: `README.md`)
- NGOs → NGO dashboard: manage needs (evidence: `README.md`)
- Logistics partners → Logistics dashboards: manage transport (evidence: `README.md`)
- Administrators → Admin dashboard: oversee activity (evidence: `README.md`)
- Donor dashboard → Create donation: create listing (evidence: `README.md`)
- Donors → Donation history: view impact (evidence: `README.md`)
- Donors → Donation tracking: track status (evidence: `README.md`)
- NGO dashboard → Browse donations: browse listings (evidence: `README.md`)
- Browse donations → Maps and location: view nearby (evidence: `README.md`)
- NGOs → Browse donations: accept donations (evidence: `README.md`)
- Logistics dashboards → Transport jobs: manage jobs (evidence: `README.md`)
- Transport jobs → Delivery confirmation: confirm delivery (evidence: `README.md`)
- Logistics partners → Maps and location: share location (evidence: `README.md`)
- NGOs → Emergency SOS: request supplies (evidence: `README.md`)
- Emergency SOS → Notifications: broadcast SOS (evidence: `README.md`)
- Donors → Notifications: receive updates (evidence: `README.md`)
- Logistics partners → Notifications: receive updates (evidence: `README.md`)
- Authentication → Auth service: authenticate (evidence: `README.md`)
- Firestore service → Cloud Firestore: use database (evidence: `README.md`)
