# zed-mp3/barangaylink architecture

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

- Interactive diagram: https://gitdiagram.com/zed-mp3/barangaylink
- Repository: https://github.com/zed-mp3/barangaylink

## Overview

BarangayLink is a PHP/MySQL barangay management system for residents and administrators. The main resident journey is account access, submitting a service request, and tracking its status; administrators manage requests and residents, publish announcements, and produce reports and exports. The graph also includes announcements, profiles, registration codes, and push notifications. Source excerpts support the database/authentication layer and push sender; other feature relationships are based on README documentation, so unsampled internal call paths are not inferred.

Main entry points: [`includes/database.php`](https://github.com/zed-mp3/barangaylink/blob/main/includes/database.php) (Database access), [`public/index.php`](https://github.com/zed-mp3/barangaylink/blob/main/public/index.php) (Login), [`includes/auth.php`](https://github.com/zed-mp3/barangaylink/blob/main/includes/auth.php) (Authentication), [`public/register.php`](https://github.com/zed-mp3/barangaylink/blob/main/public/register.php) (Registration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and Core"]
  node_login["Login<br/>[index.php]"]
  node_registration["Registration<br/>[register.php]"]
  node_auth["Authentication<br/>[auth.php]"]
  node_database_api["Database access<br/>[database.php]"]
  node_mysql[("MySQL database")]
end

subgraph group_resident["Resident Services"]
  node_resident_dashboard["Resident dashboard<br/>[dashboard.php]"]
  node_announcements["Announcements<br/>[announcements.php]"]
  node_request_submit["Submit service request"]
  node_request_tracking["Request tracking<br/>[request_status.php]"]
  node_resident_profile["Resident profile<br/>[profile.php]"]
end

subgraph group_admin["Administration"]
  node_admin_dashboard["Admin dashboard<br/>[dashboard.php]"]
  node_announcement_admin["Announcement management<br/>[announcements.php]"]
  node_request_admin["Request management"]
  node_resident_admin["Resident management<br/>[residents.php]"]
  node_registration_codes["Registration codes"]
  node_reports["Reports and exports<br/>[reports.php]"]
end

subgraph group_notify["Notifications"]
  node_push_sender["Push sender<br/>[send-push.php]"]
  node_firebase["Firebase messaging"]
end

node_resident_actor(("Resident"))
node_admin_actor(("Administrator"))

node_resident_actor -->|"signs in"| node_login
node_resident_actor -->|"registers"| node_registration
node_admin_actor -->|"signs in"| node_login
node_login -->|"uses authentication"| node_auth
node_registration -->|"registers account"| node_auth
node_auth -->|"queries"| node_database_api
node_database_api -->|"connects to"| node_mysql
node_resident_actor -->|"views"| node_resident_dashboard
node_resident_actor -->|"views"| node_announcements
node_resident_actor -->|"submits request"| node_request_submit
node_request_submit -->|"writes request"| node_database_api
node_resident_actor -->|"tracks request"| node_request_tracking
node_resident_actor -->|"manages profile"| node_resident_profile
node_admin_actor -->|"views"| node_admin_dashboard
node_admin_actor -->|"manages announcements"| node_announcement_admin
node_admin_actor -->|"manages requests"| node_request_admin
node_admin_actor -->|"manages residents"| node_resident_admin
node_admin_actor -->|"manages codes"| node_registration_codes
node_admin_actor -->|"generates reports"| node_reports
node_request_admin -->|"stores updates"| node_database_api
node_admin_actor -.->|"sends push"| node_push_sender
node_push_sender -->|"sends messages"| node_firebase

click node_login "https://github.com/zed-mp3/barangaylink/blob/main/public/index.php"
click node_registration "https://github.com/zed-mp3/barangaylink/blob/main/public/register.php"
click node_auth "https://github.com/zed-mp3/barangaylink/blob/main/includes/auth.php"
click node_database_api "https://github.com/zed-mp3/barangaylink/blob/main/includes/database.php"
click node_resident_dashboard "https://github.com/zed-mp3/barangaylink/blob/main/public/user/dashboard.php"
click node_announcements "https://github.com/zed-mp3/barangaylink/blob/main/public/user/announcements.php"
click node_request_submit "https://github.com/zed-mp3/barangaylink/blob/main/public/user/service_request.php"
click node_request_tracking "https://github.com/zed-mp3/barangaylink/blob/main/public/user/request_status.php"
click node_resident_profile "https://github.com/zed-mp3/barangaylink/blob/main/public/user/profile.php"
click node_admin_dashboard "https://github.com/zed-mp3/barangaylink/blob/main/public/admin/dashboard.php"
click node_announcement_admin "https://github.com/zed-mp3/barangaylink/blob/main/public/admin/announcements.php"
click node_request_admin "https://github.com/zed-mp3/barangaylink/blob/main/public/admin/service_requests.php"
click node_resident_admin "https://github.com/zed-mp3/barangaylink/blob/main/public/admin/residents.php"
click node_registration_codes "https://github.com/zed-mp3/barangaylink/blob/main/public/admin/registration_codes.php"
click node_reports "https://github.com/zed-mp3/barangaylink/blob/main/public/admin/reports.php"
click node_push_sender "https://github.com/zed-mp3/barangaylink/blob/main/public/api/send-push.php"

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_login,node_registration,node_auth,node_database_api,node_mysql toneBlue
class node_resident_dashboard,node_announcements,node_request_submit,node_request_tracking,node_resident_profile toneAmber
class node_admin_dashboard,node_announcement_admin,node_request_admin,node_resident_admin,node_registration_codes,node_reports toneMint
class node_push_sender,node_firebase toneRose
class node_resident_actor,node_admin_actor toneIndigo
```

## Components

### Access and Core

- [Login](https://github.com/zed-mp3/barangaylink/blob/main/public/index.php): `public/index.php`
- [Registration](https://github.com/zed-mp3/barangaylink/blob/main/public/register.php): `public/register.php`
- [Authentication](https://github.com/zed-mp3/barangaylink/blob/main/includes/auth.php): `includes/auth.php`
- [Database access](https://github.com/zed-mp3/barangaylink/blob/main/includes/database.php): `includes/database.php`
- **MySQL database**

### Resident Services

- [Resident dashboard](https://github.com/zed-mp3/barangaylink/blob/main/public/user/dashboard.php): `public/user/dashboard.php`
- [Announcements](https://github.com/zed-mp3/barangaylink/blob/main/public/user/announcements.php): `public/user/announcements.php`
- [Submit service request](https://github.com/zed-mp3/barangaylink/blob/main/public/user/service_request.php): `public/user/service_request.php`
- [Request tracking](https://github.com/zed-mp3/barangaylink/blob/main/public/user/request_status.php): `public/user/request_status.php`
- [Resident profile](https://github.com/zed-mp3/barangaylink/blob/main/public/user/profile.php): `public/user/profile.php`

### Administration

- [Admin dashboard](https://github.com/zed-mp3/barangaylink/blob/main/public/admin/dashboard.php): `public/admin/dashboard.php`
- [Announcement management](https://github.com/zed-mp3/barangaylink/blob/main/public/admin/announcements.php): `public/admin/announcements.php`
- [Request management](https://github.com/zed-mp3/barangaylink/blob/main/public/admin/service_requests.php): `public/admin/service_requests.php`
- [Resident management](https://github.com/zed-mp3/barangaylink/blob/main/public/admin/residents.php): `public/admin/residents.php`
- [Registration codes](https://github.com/zed-mp3/barangaylink/blob/main/public/admin/registration_codes.php): `public/admin/registration_codes.php`
- [Reports and exports](https://github.com/zed-mp3/barangaylink/blob/main/public/admin/reports.php): `public/admin/reports.php`

### Notifications

- [Push sender](https://github.com/zed-mp3/barangaylink/blob/main/public/api/send-push.php): `public/api/send-push.php`
- **Firebase messaging**

### Other components

- **Resident**
- **Administrator**

## Connections

- Resident → Login: signs in
- Resident → Registration: registers
- Administrator → Login: signs in
- Login → Authentication: uses authentication (evidence: `public/index.php`)
- Registration → Authentication: registers account (evidence: `public/register.php`)
- Authentication → Database access: queries (evidence: `includes/auth.php`)
- Database access → MySQL database: connects to (evidence: `includes/database.php`)
- Resident → Resident dashboard: views
- Resident → Announcements: views
- Resident → Submit service request: submits request
- Submit service request → Database access: writes request (evidence: `public/user/service_request.php`)
- Resident → Request tracking: tracks request
- Resident → Resident profile: manages profile
- Administrator → Admin dashboard: views
- Administrator → Announcement management: manages announcements
- Administrator → Request management: manages requests
- Administrator → Resident management: manages residents
- Administrator → Registration codes: manages codes
- Administrator → Reports and exports: generates reports
- Request management → Database access: stores updates (evidence: `public/admin/service_requests.php`)
- Administrator → Push sender: sends push
- Push sender → Firebase messaging: sends messages (evidence: `public/api/send-push.php`)
