# jkcamarador/miers-realtime-location-tracking architecture

> Architecture diagram of the GitHub repository jkcamarador/miers-realtime-location-tracking, 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/jkcamarador/miers-realtime-location-tracking
- Repository: https://github.com/jkcamarador/miers-realtime-location-tracking

## Overview

MIERS is a pair of Android apps for emergency response: residents sign in, view nearby ambulance locations and proceed to the response home screen, while ambulance operators can share their live location and service status. The resident app also provides one-tap contacts, emergency hotlines, first-aid guidance, feedback and donations. Source excerpts confirm key navigation and Firebase operations; unsampled modules are included where the index or README establishes their product role, but their internal links are omitted when not evidenced.

Main entry points: [`app/src/main/java/com/umak/miers/HomeActivity.java`](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/HomeActivity.java) (Response home), [`app/src/main/java/com/umak/miers/LoginActivity.java`](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/LoginActivity.java) (Sign in), [`app/src/main/java/com/umak/miers/MapActivity.java`](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/MapActivity.java) (Location map), [`MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Login.java`](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Login.java) (Operator sign in)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Accounts and access"]
  node_main["App entry<br/>[MainActivity.java]"]
  node_login["Sign in<br/>[LoginActivity.java]"]
  node_registration["Registration"]
  node_firebase_auth["Firebase Authentication"]
end

subgraph group_tracking["Location response"]
  node_map_gate["Location map<br/>[MapActivity.java]"]
end

subgraph group_resources["Emergency resources"]
  node_home["Response home<br/>[HomeActivity.java]"]
  node_one_tap["One-tap contacts"]
  node_call_adapter["Contact list<br/>[CallAdapter.java]"]
  node_emergency["Emergency hotlines"]
  node_emergency_adapter["Hotline list"]
  node_first_aid["First-aid guide"]
  node_first_aid_adapter["Guide list"]
  node_first_aid_image["Guide detail"]
  node_feedback["Feedback"]
  node_donation["Donations"]
  node_hotline_model["Hotline record<br/>[Hotline.java]"]
end

subgraph group_ambulance["Ambulance operator"]
  node_ambulance_login["Operator sign in<br/>[Login.java]"]
  node_ambulance_registration["Operator registration<br/>[Register.java]"]
  node_ambulance_map["Ambulance tracking"]
  node_location_model["Location model<br/>[MyLocation.java]"]
end

node_resident(("Resident"))
node_operator(("Ambulance operator"))
node_firebase_db[("Firebase Realtime Database")]
node_maps["Google Maps"]

node_resident -->|"opens"| node_main
node_main -->|"routes to"| node_login
node_login -->|"authenticates with"| node_firebase_auth
node_login -->|"routes to"| node_registration
node_login -->|"starts after sign-in"| node_map_gate
node_registration -->|"creates account"| node_firebase_auth
node_registration -->|"writes profile"| node_firebase_db
node_map_gate -->|"reads ambulance data"| node_firebase_db
node_map_gate -->|"renders locations"| node_maps
node_map_gate -->|"continues to"| node_home
node_home -->|"opens contacts"| node_one_tap
node_home -->|"opens hotlines"| node_emergency
node_home -->|"opens guide"| node_first_aid
node_home -->|"opens feedback"| node_feedback
node_home -->|"opens donations"| node_donation
node_one_tap -->|"reads contacts"| node_firebase_db
node_one_tap -->|"displays with"| node_call_adapter
node_call_adapter -->|"uses records"| node_hotline_model
node_emergency -->|"reads hotlines"| node_firebase_db
node_emergency -->|"displays with"| node_emergency_adapter
node_emergency_adapter -->|"uses records"| node_hotline_model
node_first_aid -->|"reads guides"| node_firebase_db
node_first_aid -->|"displays with"| node_first_aid_adapter
node_first_aid_adapter -->|"uses records"| node_hotline_model
node_first_aid_adapter -->|"opens detail"| node_first_aid_image
node_feedback -->|"writes feedback"| node_firebase_db
node_operator -.->|"opens"| node_ambulance_login
node_ambulance_login -.->|"authenticates with"| node_firebase_auth
node_ambulance_login -->|"routes to"| node_ambulance_registration
node_ambulance_login -->|"starts after sign-in"| node_ambulance_map
node_ambulance_map -->|"publishes status and location"| node_firebase_db
node_ambulance_map -->|"renders position"| node_maps
node_ambulance_map -->|"uses location"| node_location_model

click node_main "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/MainActivity.java"
click node_login "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/LoginActivity.java"
click node_registration "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/RegisterActivity.java"
click node_ambulance_login "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Login.java"
click node_ambulance_registration "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Register.java"
click node_map_gate "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/MapActivity.java"
click node_home "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/HomeActivity.java"
click node_ambulance_map "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/AmbuMapActivity.java"
click node_location_model "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/MyLocation.java"
click node_one_tap "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/OneTapActivity.java"
click node_call_adapter "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/CallAdapter.java"
click node_emergency "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/EmergencyActivity.java"
click node_emergency_adapter "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/EmergencyAdapter.java"
click node_first_aid "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/FirstAidActivity.java"
click node_first_aid_adapter "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/FirstAidAdapter.java"
click node_first_aid_image "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/FirstAidImageActivity.java"
click node_feedback "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/FeedBackActivity.java"
click node_donation "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/DonationActivity.java"
click node_hotline_model "https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/Hotline.java"

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_login,node_registration,node_firebase_auth toneBlue
class node_map_gate,node_firebase_db toneAmber
class node_home,node_one_tap,node_call_adapter,node_emergency,node_emergency_adapter,node_first_aid,node_first_aid_adapter,node_first_aid_image,node_feedback,node_donation,node_hotline_model toneMint
class node_ambulance_login,node_ambulance_registration,node_ambulance_map,node_location_model toneRose
class node_resident,node_operator,node_maps toneIndigo
```

## Components

### Accounts and access

- [App entry](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/MainActivity.java): `app/src/main/java/com/umak/miers/MainActivity.java`
- [Sign in](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/LoginActivity.java): `app/src/main/java/com/umak/miers/LoginActivity.java`
- [Registration](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/RegisterActivity.java): `app/src/main/java/com/umak/miers/RegisterActivity.java`
- **Firebase Authentication**

### Location response

- [Location map](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/MapActivity.java): `app/src/main/java/com/umak/miers/MapActivity.java`

### Emergency resources

- [Response home](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/HomeActivity.java): `app/src/main/java/com/umak/miers/HomeActivity.java`
- [One-tap contacts](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/OneTapActivity.java): `app/src/main/java/com/umak/miers/OneTapActivity.java`
- [Contact list](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/CallAdapter.java): `app/src/main/java/com/umak/miers/CallAdapter.java`
- [Emergency hotlines](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/EmergencyActivity.java): `app/src/main/java/com/umak/miers/EmergencyActivity.java`
- [Hotline list](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/EmergencyAdapter.java): `app/src/main/java/com/umak/miers/EmergencyAdapter.java`
- [First-aid guide](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/FirstAidActivity.java): `app/src/main/java/com/umak/miers/FirstAidActivity.java`
- [Guide list](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/FirstAidAdapter.java): `app/src/main/java/com/umak/miers/FirstAidAdapter.java`
- [Guide detail](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/FirstAidImageActivity.java): `app/src/main/java/com/umak/miers/FirstAidImageActivity.java`
- [Feedback](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/FeedBackActivity.java): `app/src/main/java/com/umak/miers/FeedBackActivity.java`
- [Donations](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/DonationActivity.java): `app/src/main/java/com/umak/miers/DonationActivity.java`
- [Hotline record](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/app/src/main/java/com/umak/miers/Hotline.java): `app/src/main/java/com/umak/miers/Hotline.java`

### Ambulance operator

- [Operator sign in](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Login.java): `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Login.java`
- [Operator registration](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Register.java): `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Register.java`
- [Ambulance tracking](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/AmbuMapActivity.java): `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/AmbuMapActivity.java`
- [Location model](https://github.com/jkcamarador/miers-realtime-location-tracking/blob/master/MIERSAmbulance/app/src/main/java/com/umak/miersambulance/MyLocation.java): `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/MyLocation.java`

### Other components

- **Resident**
- **Ambulance operator**
- **Firebase Realtime Database**
- **Google Maps**

## Connections

- Resident → App entry: opens
- App entry → Sign in: routes to (evidence: `app/src/main/java/com/umak/miers/MainActivity.java`)
- Sign in → Firebase Authentication: authenticates with (evidence: `app/src/main/java/com/umak/miers/LoginActivity.java`)
- Sign in → Registration: routes to (evidence: `app/src/main/java/com/umak/miers/LoginActivity.java`)
- Sign in → Location map: starts after sign-in (evidence: `app/src/main/java/com/umak/miers/LoginActivity.java`)
- Registration → Firebase Authentication: creates account (evidence: `app/src/main/java/com/umak/miers/RegisterActivity.java`)
- Registration → Firebase Realtime Database: writes profile (evidence: `app/src/main/java/com/umak/miers/RegisterActivity.java`)
- Location map → Firebase Realtime Database: reads ambulance data (evidence: `app/src/main/java/com/umak/miers/MapActivity.java`)
- Location map → Google Maps: renders locations (evidence: `app/src/main/java/com/umak/miers/MapActivity.java`)
- Location map → Response home: continues to (evidence: `app/src/main/java/com/umak/miers/MapActivity.java`)
- Response home → One-tap contacts: opens contacts (evidence: `app/src/main/java/com/umak/miers/HomeActivity.java`)
- Response home → Emergency hotlines: opens hotlines (evidence: `app/src/main/java/com/umak/miers/HomeActivity.java`)
- Response home → First-aid guide: opens guide (evidence: `app/src/main/java/com/umak/miers/HomeActivity.java`)
- Response home → Feedback: opens feedback (evidence: `app/src/main/java/com/umak/miers/HomeActivity.java`)
- Response home → Donations: opens donations (evidence: `app/src/main/java/com/umak/miers/HomeActivity.java`)
- One-tap contacts → Firebase Realtime Database: reads contacts (evidence: `app/src/main/java/com/umak/miers/OneTapActivity.java`)
- One-tap contacts → Contact list: displays with (evidence: `app/src/main/java/com/umak/miers/OneTapActivity.java`)
- Contact list → Hotline record: uses records (evidence: `app/src/main/java/com/umak/miers/CallAdapter.java`)
- Emergency hotlines → Firebase Realtime Database: reads hotlines (evidence: `app/src/main/java/com/umak/miers/EmergencyActivity.java`)
- Emergency hotlines → Hotline list: displays with (evidence: `app/src/main/java/com/umak/miers/EmergencyActivity.java`)
- Hotline list → Hotline record: uses records (evidence: `app/src/main/java/com/umak/miers/EmergencyAdapter.java`)
- First-aid guide → Firebase Realtime Database: reads guides (evidence: `app/src/main/java/com/umak/miers/FirstAidActivity.java`)
- First-aid guide → Guide list: displays with (evidence: `app/src/main/java/com/umak/miers/FirstAidActivity.java`)
- Guide list → Hotline record: uses records (evidence: `app/src/main/java/com/umak/miers/FirstAidAdapter.java`)
- Guide list → Guide detail: opens detail (evidence: `app/src/main/java/com/umak/miers/FirstAidAdapter.java`)
- Feedback → Firebase Realtime Database: writes feedback (evidence: `app/src/main/java/com/umak/miers/FeedBackActivity.java`)
- Ambulance operator → Operator sign in: opens
- Operator sign in → Firebase Authentication: authenticates with
- Operator sign in → Operator registration: routes to (evidence: `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Login.java`)
- Operator sign in → Ambulance tracking: starts after sign-in (evidence: `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/Login.java`)
- Ambulance tracking → Firebase Realtime Database: publishes status and location (evidence: `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/AmbuMapActivity.java`)
- Ambulance tracking → Google Maps: renders position (evidence: `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/AmbuMapActivity.java`)
- Ambulance tracking → Location model: uses location (evidence: `MIERSAmbulance/app/src/main/java/com/umak/miersambulance/AmbuMapActivity.java`)
