# alphaqbit/ligtasalert_laravel2 architecture

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

- Interactive diagram: https://gitdiagram.com/alphaqbit/ligtasalert_laravel2
- Repository: https://github.com/alphaqbit/ligtasalert_laravel2

## Overview

LigtasAlert is a Laravel backend for facility emergency alerts, with a JSON API and web admin dashboard. A request enters through Laravel’s front controller and is dispatched to API or web routes. Alert endpoints create, list/filter, update, and record responders; facility endpoints return configured facilities; statistics summarize alert state for dashboard use. Alert and facility data use JSON-backed models rather than a required database. The README documents dashboard availability, but sampled sources do not establish how its view or JavaScript obtains data.

Main entry points: [`routes/api.php`](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/routes/api.php) (API Routes), [`bootstrap/app.php`](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/bootstrap/app.php) (App Routing), [`resources/views/admin.blade.php`](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/resources/views/admin.blade.php) (Admin Dashboard), [`app/Models/Alert.php`](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Models/Alert.php) (Alert Storage)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_http["HTTP Dispatch"]
  node_front["Laravel Entry<br/>[index.php]"]
  node_bootstrap["App Routing<br/>[app.php]"]
  node_api_routes["API Routes<br/>[api.php]"]
  node_web_routes["Web Routes<br/>[web.php]"]
end

subgraph group_alerts["Alert Management"]
  node_alert_api["Alert Endpoints"]
  node_alert_model["Alert Storage<br/>[Alert.php]"]
  node_alert_json[("Alert JSON<br/>[alerts.json]")]
end

subgraph group_facility_stats["Facilities and Stats"]
  node_facility_api["Facility Endpoint"]
  node_facility_model["Facility Data<br/>[Facility.php]"]
  node_facility_json[("Facility JSON")]
  node_stats_api["Statistics Endpoint"]
end

subgraph group_dashboard["Admin Dashboard"]
  node_admin_view["Admin Dashboard<br/>[admin.blade.php]"]
  node_admin_layout["Dashboard Layout<br/>[admin.blade.php]"]
  node_admin_js["Admin JavaScript<br/>[admin.js]"]
end

node_browser(("API Client / Admin"))

node_browser -->|"sends request"| node_front
node_front -->|"handles request"| node_bootstrap
node_bootstrap -->|"registers API"| node_api_routes
node_bootstrap -->|"registers web"| node_web_routes
node_api_routes -->|"dispatches alerts"| node_alert_api
node_api_routes -->|"dispatches facilities"| node_facility_api
node_api_routes -->|"dispatches stats"| node_stats_api
node_alert_api -->|"reads and writes"| node_alert_model
node_alert_model -->|"reads and writes"| node_alert_json
node_facility_api -->|"requests facilities"| node_facility_model
node_facility_model -->|"reads or defaults"| node_facility_json
node_stats_api -->|"reads alerts"| node_alert_model
node_web_routes -->|"serves dashboard"| node_admin_view
node_admin_view -->|"uses layout"| node_admin_layout
node_admin_view -->|"loads script"| node_admin_js

click node_front "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/public/index.php"
click node_bootstrap "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/bootstrap/app.php"
click node_api_routes "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/routes/api.php"
click node_web_routes "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/routes/web.php"
click node_alert_api "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Http/Controllers/AlertController.php"
click node_alert_model "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Models/Alert.php"
click node_alert_json "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/storage/data/alerts.json"
click node_facility_api "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Http/Controllers/FacilityController.php"
click node_facility_model "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Models/Facility.php"
click node_facility_json "https://github.com/alphaqbit/ligtasalert_laravel2/tree/main/storage/data"
click node_stats_api "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Http/Controllers/StatsController.php"
click node_admin_view "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/resources/views/admin.blade.php"
click node_admin_layout "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/resources/views/layouts/admin.blade.php"
click node_admin_js "https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/public/js/admin.js"

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_front,node_bootstrap,node_api_routes,node_web_routes,node_browser toneBlue
class node_alert_api,node_alert_model,node_alert_json toneAmber
class node_facility_api,node_facility_model,node_facility_json,node_stats_api toneMint
class node_admin_view,node_admin_layout,node_admin_js toneRose
```

## Components

### HTTP Dispatch

- [Laravel Entry](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/public/index.php): `public/index.php`
- [App Routing](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/bootstrap/app.php): `bootstrap/app.php`
- [API Routes](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/routes/api.php): `routes/api.php`
- [Web Routes](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/routes/web.php): `routes/web.php`

### Alert Management

- [Alert Endpoints](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Http/Controllers/AlertController.php): `app/Http/Controllers/AlertController.php`
- [Alert Storage](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Models/Alert.php): `app/Models/Alert.php`
- [Alert JSON](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/storage/data/alerts.json): `storage/data/alerts.json`

### Facilities and Stats

- [Facility Endpoint](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Http/Controllers/FacilityController.php): `app/Http/Controllers/FacilityController.php`
- [Facility Data](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Models/Facility.php): `app/Models/Facility.php`
- [Facility JSON](https://github.com/alphaqbit/ligtasalert_laravel2/tree/main/storage/data): `storage/data`
- [Statistics Endpoint](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/app/Http/Controllers/StatsController.php): `app/Http/Controllers/StatsController.php`

### Admin Dashboard

- [Admin Dashboard](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/resources/views/admin.blade.php): `resources/views/admin.blade.php`
- [Dashboard Layout](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/resources/views/layouts/admin.blade.php): `resources/views/layouts/admin.blade.php`
- [Admin JavaScript](https://github.com/alphaqbit/ligtasalert_laravel2/blob/main/public/js/admin.js): `public/js/admin.js`

### Other components

- **API Client / Admin**

## Connections

- API Client / Admin → Laravel Entry: sends request
- Laravel Entry → App Routing: handles request
- App Routing → API Routes: registers API
- App Routing → Web Routes: registers web
- API Routes → Alert Endpoints: dispatches alerts
- API Routes → Facility Endpoint: dispatches facilities
- API Routes → Statistics Endpoint: dispatches stats
- Alert Endpoints → Alert Storage: reads and writes
- Alert Storage → Alert JSON: reads and writes
- Facility Endpoint → Facility Data: requests facilities
- Facility Data → Facility JSON: reads or defaults
- Statistics Endpoint → Alert Storage: reads alerts
- Web Routes → Admin Dashboard: serves dashboard
- Admin Dashboard → Dashboard Layout: uses layout
- Admin Dashboard → Admin JavaScript: loads script
