# enumeratas/enu architecture

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

- Interactive diagram: https://gitdiagram.com/enumeratas/enu
- Repository: https://github.com/enumeratas/enu

## Overview

This is a CodeIgniter barangay information system, not merely the framework starter described by its README. Its principal workflow is residents and officials entering through role-based routes and dashboards, then submitting or reviewing census and household records, service requests, and community-program activity. Controllers coordinate persistence and supporting services; additional branches cover authentication, notifications, chatbot assistance, search, and exports. Relationships below follow the route references and sampled-file index; unsampled capabilities are represented where the tree supports them, without assuming their internal calls.

Main entry points: [`app/Config/Routes.php`](https://github.com/enumeratas/enu/blob/main/app/Config/Routes.php) (Application routes), [`app/Config/Database.php`](https://github.com/enumeratas/enu/blob/main/app/Config/Database.php) (Application database), [`app/Controllers/CensusController.php`](https://github.com/enumeratas/enu/blob/main/app/Controllers/CensusController.php) (Census management), [`app/Controllers/ChatbotController.php`](https://github.com/enumeratas/enu/blob/main/app/Controllers/ChatbotController.php) (Chatbot assistance)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and dashboards"]
  node_routes["Application routes<br/>[Routes.php]"]
  node_auth["Authentication<br/>[AuthController.php]"]
  node_portal["Role dashboards<br/>[UIController.php]"]
  node_users["User accounts<br/>[UserModel.php]"]
end

subgraph group_records["Resident records"]
  node_census["Census management"]
  node_households["Household records<br/>[HouseholdModel.php]"]
  node_members["Household members"]
  node_upload["Household uploads"]
  node_uploadstore["Upload storage"]
end

subgraph group_services["Barangay services"]
  node_clearance["Clearance requests"]
  node_blotter["Blotter cases"]
  node_concerns["Resident concerns"]
  node_notifications["Notifications"]
  node_email["Email service<br/>[EmailService.php]"]
end

subgraph group_community["Community programs"]
  node_schedules["Schedules<br/>[ScheduleModel.php]"]
  node_activities["Barangay activities"]
  node_sk["Youth programs<br/>[SkController.php]"]
  node_chatbot["Chatbot assistance"]
end

node_residents(("Residents"))
node_officials(("Barangay officials"))
node_database[("Application database<br/>[Database.php]")]

node_residents -->|"open services"| node_routes
node_officials -->|"open services"| node_routes
node_routes -->|"dispatches"| node_auth
node_routes -->|"dispatches"| node_portal
node_routes -->|"dispatches"| node_census
node_routes -->|"dispatches"| node_clearance
node_routes -->|"dispatches"| node_blotter
node_routes -->|"dispatches"| node_concerns
node_routes -->|"dispatches"| node_upload
node_routes -->|"dispatches"| node_chatbot
node_auth -->|"validates accounts"| node_users
node_portal -->|"uses census actions"| node_census
node_census -->|"manages records"| node_households
node_census -->|"manages members"| node_members
node_census -->|"creates notices"| node_notifications
node_upload -->|"stores uploads"| node_uploadstore
node_clearance -->|"creates notices"| node_notifications
node_clearance -->|"sends email"| node_email
node_blotter -->|"creates notices"| node_notifications
node_blotter -->|"sends email"| node_email
node_chatbot -->|"reads records"| node_households
node_chatbot -->|"reads schedules"| node_schedules
node_chatbot -->|"reads activities"| node_activities
node_sk -->|"uses activities"| node_activities
node_sk -->|"uses schedules"| node_schedules
node_users -.->|"persists accounts"| node_database
node_households -.->|"persists records"| node_database
node_members -.->|"persists members"| node_database
node_notifications -.->|"persists notices"| node_database
node_schedules -.->|"persists schedules"| node_database
node_activities -.->|"persists activities"| node_database

click node_routes "https://github.com/enumeratas/enu/blob/main/app/Config/Routes.php"
click node_auth "https://github.com/enumeratas/enu/blob/main/app/Controllers/AuthController.php"
click node_portal "https://github.com/enumeratas/enu/blob/main/app/Controllers/UIController.php"
click node_users "https://github.com/enumeratas/enu/blob/main/app/Models/UserModel.php"
click node_census "https://github.com/enumeratas/enu/blob/main/app/Controllers/CensusController.php"
click node_households "https://github.com/enumeratas/enu/blob/main/app/Models/HouseholdModel.php"
click node_members "https://github.com/enumeratas/enu/blob/main/app/Models/HouseholdMemberModel.php"
click node_upload "https://github.com/enumeratas/enu/blob/main/app/Controllers/HouseholdUploadController.php"
click node_uploadstore "https://github.com/enumeratas/enu/blob/main/app/Libraries/HouseholdUploadStorage.php"
click node_clearance "https://github.com/enumeratas/enu/blob/main/app/Controllers/ClearanceController.php"
click node_blotter "https://github.com/enumeratas/enu/blob/main/app/Controllers/BlotterController.php"
click node_concerns "https://github.com/enumeratas/enu/blob/main/app/Controllers/ConcernController.php"
click node_notifications "https://github.com/enumeratas/enu/blob/main/app/Models/NotificationModel.php"
click node_email "https://github.com/enumeratas/enu/blob/main/app/Libraries/EmailService.php"
click node_schedules "https://github.com/enumeratas/enu/blob/main/app/Models/ScheduleModel.php"
click node_activities "https://github.com/enumeratas/enu/blob/main/app/Models/BarangayActivityModel.php"
click node_sk "https://github.com/enumeratas/enu/blob/main/app/Controllers/SkController.php"
click node_chatbot "https://github.com/enumeratas/enu/blob/main/app/Controllers/ChatbotController.php"
click node_database "https://github.com/enumeratas/enu/blob/main/app/Config/Database.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_routes,node_auth,node_portal,node_users toneBlue
class node_census,node_households,node_members,node_upload,node_uploadstore,node_database toneAmber
class node_clearance,node_blotter,node_concerns,node_notifications,node_email toneMint
class node_schedules,node_activities,node_sk,node_chatbot toneRose
class node_residents,node_officials toneIndigo
```

## Components

### Access and dashboards

- [Application routes](https://github.com/enumeratas/enu/blob/main/app/Config/Routes.php): `app/Config/Routes.php`
- [Authentication](https://github.com/enumeratas/enu/blob/main/app/Controllers/AuthController.php): `app/Controllers/AuthController.php`
- [Role dashboards](https://github.com/enumeratas/enu/blob/main/app/Controllers/UIController.php): `app/Controllers/UIController.php`
- [User accounts](https://github.com/enumeratas/enu/blob/main/app/Models/UserModel.php): `app/Models/UserModel.php`

### Resident records

- [Census management](https://github.com/enumeratas/enu/blob/main/app/Controllers/CensusController.php): `app/Controllers/CensusController.php`
- [Household records](https://github.com/enumeratas/enu/blob/main/app/Models/HouseholdModel.php): `app/Models/HouseholdModel.php`
- [Household members](https://github.com/enumeratas/enu/blob/main/app/Models/HouseholdMemberModel.php): `app/Models/HouseholdMemberModel.php`
- [Household uploads](https://github.com/enumeratas/enu/blob/main/app/Controllers/HouseholdUploadController.php): `app/Controllers/HouseholdUploadController.php`
- [Upload storage](https://github.com/enumeratas/enu/blob/main/app/Libraries/HouseholdUploadStorage.php): `app/Libraries/HouseholdUploadStorage.php`

### Barangay services

- [Clearance requests](https://github.com/enumeratas/enu/blob/main/app/Controllers/ClearanceController.php): `app/Controllers/ClearanceController.php`
- [Blotter cases](https://github.com/enumeratas/enu/blob/main/app/Controllers/BlotterController.php): `app/Controllers/BlotterController.php`
- [Resident concerns](https://github.com/enumeratas/enu/blob/main/app/Controllers/ConcernController.php): `app/Controllers/ConcernController.php`
- [Notifications](https://github.com/enumeratas/enu/blob/main/app/Models/NotificationModel.php): `app/Models/NotificationModel.php`
- [Email service](https://github.com/enumeratas/enu/blob/main/app/Libraries/EmailService.php): `app/Libraries/EmailService.php`

### Community programs

- [Schedules](https://github.com/enumeratas/enu/blob/main/app/Models/ScheduleModel.php): `app/Models/ScheduleModel.php`
- [Barangay activities](https://github.com/enumeratas/enu/blob/main/app/Models/BarangayActivityModel.php): `app/Models/BarangayActivityModel.php`
- [Youth programs](https://github.com/enumeratas/enu/blob/main/app/Controllers/SkController.php): `app/Controllers/SkController.php`
- [Chatbot assistance](https://github.com/enumeratas/enu/blob/main/app/Controllers/ChatbotController.php): `app/Controllers/ChatbotController.php`

### Other components

- **Residents**
- **Barangay officials**
- [Application database](https://github.com/enumeratas/enu/blob/main/app/Config/Database.php): `app/Config/Database.php`

## Connections

- Residents → Application routes: open services (evidence: `app/Config/Routes.php`)
- Barangay officials → Application routes: open services (evidence: `app/Config/Routes.php`)
- Application routes → Authentication: dispatches (evidence: `app/Config/Routes.php`)
- Application routes → Role dashboards: dispatches (evidence: `app/Config/Routes.php`)
- Application routes → Census management: dispatches (evidence: `app/Config/Routes.php`)
- Application routes → Clearance requests: dispatches (evidence: `app/Config/Routes.php`)
- Application routes → Blotter cases: dispatches (evidence: `app/Config/Routes.php`)
- Application routes → Resident concerns: dispatches (evidence: `app/Config/Routes.php`)
- Application routes → Household uploads: dispatches (evidence: `app/Config/Routes.php`)
- Application routes → Chatbot assistance: dispatches (evidence: `app/Config/Routes.php`)
- Authentication → User accounts: validates accounts (evidence: `app/Models/UserModel.php`)
- Role dashboards → Census management: uses census actions (evidence: `app/Controllers/UIController.php`)
- Census management → Household records: manages records (evidence: `app/Controllers/CensusController.php`)
- Census management → Household members: manages members (evidence: `app/Controllers/CensusController.php`)
- Census management → Notifications: creates notices (evidence: `app/Controllers/CensusController.php`)
- Household uploads → Upload storage: stores uploads (evidence: `app/Controllers/HouseholdUploadController.php`)
- Clearance requests → Notifications: creates notices (evidence: `app/Controllers/ClearanceController.php`)
- Clearance requests → Email service: sends email (evidence: `app/Controllers/ClearanceController.php`)
- Blotter cases → Notifications: creates notices (evidence: `app/Controllers/BlotterController.php`)
- Blotter cases → Email service: sends email (evidence: `app/Controllers/BlotterController.php`)
- Chatbot assistance → Household records: reads records (evidence: `app/Controllers/ChatbotController.php`)
- Chatbot assistance → Schedules: reads schedules (evidence: `app/Controllers/ChatbotController.php`)
- Chatbot assistance → Barangay activities: reads activities (evidence: `app/Controllers/ChatbotController.php`)
- Youth programs → Barangay activities: uses activities (evidence: `app/Controllers/SkController.php`)
- Youth programs → Schedules: uses schedules (evidence: `app/Controllers/SkController.php`)
- User accounts → Application database: persists accounts
- Household records → Application database: persists records
- Household members → Application database: persists members
- Notifications → Application database: persists notices (evidence: `app/Models/NotificationModel.php`)
- Schedules → Application database: persists schedules (evidence: `app/Models/ScheduleModel.php`)
- Barangay activities → Application database: persists activities
