# ziponamberwan/directory-app architecture

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

- Interactive diagram: https://gitdiagram.com/ziponamberwan/directory-app
- Repository: https://github.com/ziponamberwan/directory-app

## Overview

Ken Dedes is a Laravel application for managing and updating business directories, with administrative workflows for assignments, imports, reporting, anomaly repair, and market/supplement records, plus mobile-facing APIs. Users access web workflows through the application’s controllers; API clients browse and tag business data. The sampled source confirms anomaly queries and repairs, spatial/business API queries, and regional database selection. Other capabilities are represented from the file tree; their detailed wiring was not sampled.

Main entry points: [`routes/web.php`](https://github.com/ziponamberwan/directory-app/blob/main/routes/web.php) (Web routes), [`app/Models`](https://github.com/ziponamberwan/directory-app/tree/main/app/Models) (Business records), [`app/Http/Controllers/HomeController.php`](https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/HomeController.php) (Dashboards), [`routes/api.php`](https://github.com/ziponamberwan/directory-app/blob/main/routes/api.php) (API routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Application entry"]
  node_web["Web routes<br/>[web.php]"]
  node_api["API routes<br/>[api.php]"]
end

subgraph group_admin["Directory operations"]
  node_home["Dashboards<br/>[HomeController.php]"]
  node_anomaly["Anomaly repair"]
  node_assignment["Assignments"]
  node_market["Market management"]
  node_supplement["Supplement records"]
end

subgraph group_mobile["Mobile APIs"]
  node_browse["Business browsing"]
  node_tagging["Business tagging"]
end

subgraph group_processing["Data processing"]
  node_imports["Import workflows"]
  node_jobs["Queued processing"]
  node_exports["Exports"]
end

subgraph group_records["Domain records"]
  node_regionaldb["Regional selection"]
  node_businessdata[("Business records")]
  node_assignments[("Assignment status")]
  node_anomalydata[("Anomaly records<br/>[AnomalyRepair.php]")]
  node_projectdata[("Projects<br/>[Project.php]")]
end

node_staff(("Staff users"))
node_mobileclients(("Mobile clients"))

node_staff -->|"opens workflows"| node_web
node_mobileclients -->|"calls endpoints"| node_api
node_web -->|"dispatches"| node_home
node_web -->|"dispatches"| node_anomaly
node_web -->|"dispatches"| node_assignment
node_web -->|"dispatches"| node_market
node_web -->|"dispatches"| node_supplement
node_api -->|"dispatches"| node_browse
node_api -->|"dispatches"| node_tagging
node_home -->|"selects connection"| node_regionaldb
node_home -->|"reads"| node_assignments
node_home -->|"reads and updates"| node_businessdata
node_anomaly -->|"reads and repairs"| node_anomalydata
node_anomaly -->|"queries and updates"| node_businessdata
node_browse -->|"queries spatial records"| node_businessdata
node_tagging -->|"queries and tags"| node_businessdata
node_tagging -->|"reads project"| node_projectdata
node_supplement -->|"dispatches exports"| node_jobs
node_imports -.->|"imports records"| node_businessdata
node_jobs -.->|"processes records"| node_businessdata
node_exports -.->|"exports records"| node_businessdata

click node_web "https://github.com/ziponamberwan/directory-app/blob/main/routes/web.php"
click node_api "https://github.com/ziponamberwan/directory-app/blob/main/routes/api.php"
click node_home "https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/HomeController.php"
click node_anomaly "https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/AnomalyController.php"
click node_assignment "https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/AdminKabController.php"
click node_market "https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/MarketManagementController.php"
click node_supplement "https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/SupplementController.php"
click node_browse "https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/Api/BrowseControllerV2.php"
click node_tagging "https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/Api/TaggingController.php"
click node_imports "https://github.com/ziponamberwan/directory-app/tree/main/app/Imports"
click node_jobs "https://github.com/ziponamberwan/directory-app/tree/main/app/Jobs"
click node_exports "https://github.com/ziponamberwan/directory-app/tree/main/app/Exports"
click node_regionaldb "https://github.com/ziponamberwan/directory-app/blob/main/app/Helpers/DatabaseSelector.php"
click node_businessdata "https://github.com/ziponamberwan/directory-app/tree/main/app/Models"
click node_assignments "https://github.com/ziponamberwan/directory-app/blob/main/app/Models/AssignmentStatus.php"
click node_anomalydata "https://github.com/ziponamberwan/directory-app/blob/main/app/Models/AnomalyRepair.php"
click node_projectdata "https://github.com/ziponamberwan/directory-app/blob/main/app/Models/Project.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_web,node_api,node_staff,node_mobileclients toneBlue
class node_home,node_anomaly,node_assignment,node_market,node_supplement toneAmber
class node_browse,node_tagging toneMint
class node_imports,node_jobs,node_exports toneRose
class node_regionaldb,node_businessdata,node_assignments,node_anomalydata,node_projectdata toneIndigo
```

## Components

### Application entry

- [Web routes](https://github.com/ziponamberwan/directory-app/blob/main/routes/web.php): `routes/web.php`
- [API routes](https://github.com/ziponamberwan/directory-app/blob/main/routes/api.php): `routes/api.php`

### Directory operations

- [Dashboards](https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/HomeController.php): `app/Http/Controllers/HomeController.php`
- [Anomaly repair](https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/AnomalyController.php): `app/Http/Controllers/AnomalyController.php`
- [Assignments](https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/AdminKabController.php): `app/Http/Controllers/AdminKabController.php`
- [Market management](https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/MarketManagementController.php): `app/Http/Controllers/MarketManagementController.php`
- [Supplement records](https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/SupplementController.php): `app/Http/Controllers/SupplementController.php`

### Mobile APIs

- [Business browsing](https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/Api/BrowseControllerV2.php): `app/Http/Controllers/Api/BrowseControllerV2.php`
- [Business tagging](https://github.com/ziponamberwan/directory-app/blob/main/app/Http/Controllers/Api/TaggingController.php): `app/Http/Controllers/Api/TaggingController.php`

### Data processing

- [Import workflows](https://github.com/ziponamberwan/directory-app/tree/main/app/Imports): `app/Imports`
- [Queued processing](https://github.com/ziponamberwan/directory-app/tree/main/app/Jobs): `app/Jobs`
- [Exports](https://github.com/ziponamberwan/directory-app/tree/main/app/Exports): `app/Exports`

### Domain records

- [Regional selection](https://github.com/ziponamberwan/directory-app/blob/main/app/Helpers/DatabaseSelector.php): `app/Helpers/DatabaseSelector.php`
- [Business records](https://github.com/ziponamberwan/directory-app/tree/main/app/Models): `app/Models`
- [Assignment status](https://github.com/ziponamberwan/directory-app/blob/main/app/Models/AssignmentStatus.php): `app/Models/AssignmentStatus.php`
- [Anomaly records](https://github.com/ziponamberwan/directory-app/blob/main/app/Models/AnomalyRepair.php): `app/Models/AnomalyRepair.php`
- [Projects](https://github.com/ziponamberwan/directory-app/blob/main/app/Models/Project.php): `app/Models/Project.php`

### Other components

- **Staff users**
- **Mobile clients**

## Connections

- Staff users → Web routes: opens workflows
- Mobile clients → API routes: calls endpoints
- Web routes → Dashboards: dispatches
- Web routes → Anomaly repair: dispatches
- Web routes → Assignments: dispatches
- Web routes → Market management: dispatches
- Web routes → Supplement records: dispatches
- API routes → Business browsing: dispatches
- API routes → Business tagging: dispatches
- Dashboards → Regional selection: selects connection
- Dashboards → Assignment status: reads
- Dashboards → Business records: reads and updates
- Anomaly repair → Anomaly records: reads and repairs
- Anomaly repair → Business records: queries and updates
- Business browsing → Business records: queries spatial records
- Business tagging → Business records: queries and tags
- Business tagging → Projects: reads project
- Supplement records → Queued processing: dispatches exports
- Import workflows → Business records: imports records
- Queued processing → Business records: processes records
- Exports → Business records: exports records
