# uzaam07/food-donation-application architecture

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

- Interactive diagram: https://gitdiagram.com/uzaam07/food-donation-application
- Repository: https://github.com/uzaam07/food-donation-application

## Overview

This Android food-donation app connects donors listing surplus food with receivers seeking nearby donations. Its documented workflow moves from sign-in to a dashboard, then into donation, browsing, mapping, history, profile, and settings features. The sampled MainActivity verifies the signed-in user, checks a Firebase donation-pin mapping, and launches several feature activities. Other feature implementations are not present in the supplied tree, so their paths point only to the existing app directory and their links rely on README documentation.

Main entry points: [`MAIN ACTIVITY.java`](https://github.com/uzaam07/food-donation-application/blob/main/MAIN%20ACTIVITY.java) (Dashboard), [`app`](https://github.com/uzaam07/food-donation-application/tree/main/app) (Food map)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["App workflow"]
  node_main["Dashboard<br/>[MAIN ACTIVITY.java]"]
  node_auth["Sign-in"]
  node_donate["Donate food"]
  node_receive["Browse and request"]
  node_map["Food map"]
  node_history["Donation history"]
  node_profile["User profile"]
  node_settings["Settings"]
  node_pin["Pin management<br/>[MAIN ACTIVITY.java]"]
  node_layout["Main layout<br/>[MAIN_ACTIVITY.xml]"]
end

subgraph group_backend["Backend services"]
  node_firebase_auth["Firebase Authentication"]
  node_realtime_db[("Firebase Realtime Database")]
end

subgraph group_integrations["External integrations"]
  node_maps["Google Maps"]
  node_geofire["GeoFire search"]
end

node_user(("App user"))

node_user -->|"signs in"| node_auth
node_auth -->|"opens dashboard"| node_main
node_main -->|"checks user"| node_firebase_auth
node_main -->|"checks pin mapping"| node_realtime_db
node_user -->|"uses dashboard"| node_main
node_main -->|"opens donation"| node_donate
node_main -->|"opens browsing"| node_receive
node_main -->|"opens map"| node_map
node_main -->|"opens history"| node_history
node_main -->|"opens profile"| node_profile
node_main -->|"opens settings"| node_settings
node_main -->|"checks and manages"| node_pin
node_donate -.->|"stores donations"| node_realtime_db
node_receive -.->|"loads requests"| node_realtime_db
node_map -.->|"displays locations"| node_maps
node_map -.->|"searches nearby"| node_geofire

click node_main "https://github.com/uzaam07/food-donation-application/blob/main/MAIN%20ACTIVITY.java"
click node_auth "https://github.com/uzaam07/food-donation-application/tree/main/app"
click node_donate "https://github.com/uzaam07/food-donation-application/tree/main/app"
click node_receive "https://github.com/uzaam07/food-donation-application/tree/main/app"
click node_map "https://github.com/uzaam07/food-donation-application/tree/main/app"
click node_history "https://github.com/uzaam07/food-donation-application/tree/main/app"
click node_profile "https://github.com/uzaam07/food-donation-application/tree/main/app"
click node_settings "https://github.com/uzaam07/food-donation-application/tree/main/app"
click node_pin "https://github.com/uzaam07/food-donation-application/blob/main/MAIN%20ACTIVITY.java"
click node_layout "https://github.com/uzaam07/food-donation-application/blob/main/app/MAIN_ACTIVITY.xml"

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_main,node_auth,node_donate,node_receive,node_map,node_history,node_profile,node_settings,node_pin,node_layout,node_user toneBlue
class node_firebase_auth,node_realtime_db toneAmber
class node_maps,node_geofire toneMint
```

## Components

### App workflow

- [Dashboard](https://github.com/uzaam07/food-donation-application/blob/main/MAIN%20ACTIVITY.java): `MAIN ACTIVITY.java`
- [Sign-in](https://github.com/uzaam07/food-donation-application/tree/main/app): `app`
- [Donate food](https://github.com/uzaam07/food-donation-application/tree/main/app): `app`
- [Browse and request](https://github.com/uzaam07/food-donation-application/tree/main/app): `app`
- [Food map](https://github.com/uzaam07/food-donation-application/tree/main/app): `app`
- [Donation history](https://github.com/uzaam07/food-donation-application/tree/main/app): `app`
- [User profile](https://github.com/uzaam07/food-donation-application/tree/main/app): `app`
- [Settings](https://github.com/uzaam07/food-donation-application/tree/main/app): `app`
- [Pin management](https://github.com/uzaam07/food-donation-application/blob/main/MAIN%20ACTIVITY.java): `MAIN ACTIVITY.java`
- [Main layout](https://github.com/uzaam07/food-donation-application/blob/main/app/MAIN_ACTIVITY.xml): `app/MAIN_ACTIVITY.xml`

### Backend services

- **Firebase Authentication**
- **Firebase Realtime Database**

### External integrations

- **Google Maps**
- **GeoFire search**

### Other components

- **App user**

## Connections

- App user → Sign-in: signs in (evidence: `README.md`)
- Sign-in → Dashboard: opens dashboard (evidence: `README.md`)
- Dashboard → Firebase Authentication: checks user (evidence: `MAIN ACTIVITY.java`)
- Dashboard → Firebase Realtime Database: checks pin mapping (evidence: `MAIN ACTIVITY.java`)
- App user → Dashboard: uses dashboard (evidence: `README.md`)
- Dashboard → Donate food: opens donation (evidence: `MAIN ACTIVITY.java`)
- Dashboard → Browse and request: opens browsing (evidence: `README.md`)
- Dashboard → Food map: opens map (evidence: `MAIN ACTIVITY.java`)
- Dashboard → Donation history: opens history (evidence: `MAIN ACTIVITY.java`)
- Dashboard → User profile: opens profile (evidence: `MAIN ACTIVITY.java`)
- Dashboard → Settings: opens settings (evidence: `MAIN ACTIVITY.java`)
- Dashboard → Pin management: checks and manages (evidence: `MAIN ACTIVITY.java`)
- Donate food → Firebase Realtime Database: stores donations (evidence: `README.md`)
- Browse and request → Firebase Realtime Database: loads requests (evidence: `README.md`)
- Food map → Google Maps: displays locations (evidence: `README.md`)
- Food map → GeoFire search: searches nearby (evidence: `README.md`)
