# ictudevs/usisa architecture

> Architecture diagram of the GitHub repository ictudevs/usisa, 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/ictudevs/usisa
- Repository: https://github.com/ictudevs/usisa

## Overview

This is a Laravel/Vue campus student-record and identity-card management application. Users authenticate, manage campus-scoped student records, import or export CSV data, create and print ID cards, and verify student identities; administrators also manage campuses, roles, tokens, and audit records. The sampled controllers support the student import dispatch and ID-card template, photo, and print-log workflows. Other listed capabilities are represented at their tree-supported module paths; their internal wiring was not sampled, so uncertain links are omitted.

Main entry points: [`routes/web.php`](https://github.com/ictudevs/usisa/blob/master/routes/web.php) (Web routes), [`app/Http/Controllers/StudentController.php`](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/StudentController.php) (Student management), [`app/Http/Controllers/IdCardController.php`](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/IdCardController.php) (ID card workflow), [`app/Models/Student.php`](https://github.com/ictudevs/usisa/blob/master/app/Models/Student.php) (Student data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and setup"]
  node_web["Web routes<br/>[web.php]"]
  node_auth["Authentication"]
  node_accessctl["Access controls"]
  node_setup["Campus and roles"]
  node_token["API tokens"]
end

subgraph group_records["Student records"]
  node_studentctl["Student management"]
  node_import["CSV import"]
  node_csvservice["CSV services"]
  node_approvals["Approval requests"]
  node_recordsdb[("Student data<br/>[Student.php]")]
end

subgraph group_identity["ID and verification"]
  node_idcards["ID card workflow"]
  node_templates[("ID templates<br/>[IdTemplate.php]")]
  node_verification["Identity verification"]
  node_verifier["Verifier"]
end

subgraph group_operations["Operations and insight"]
  node_analytics["Analytics"]
  node_audit["Audit logs"]
  node_notifications["Notifications"]
  node_events["Live updates"]
  node_google["Google Drive photos"]
end

subgraph group_interface["Web interface"]
  node_ui["Vue application<br/>[app.ts]"]
  node_pages["Feature pages"]
end

node_user(("Staff user"))
node_db[("Application database<br/>[database.php]")]
node_drive["Google Drive"]

node_user -->|"requests pages"| node_web
node_web -->|"dispatches auth"| node_auth
node_web -->|"dispatches records"| node_studentctl
node_web -->|"dispatches ID tasks"| node_idcards
node_web -->|"dispatches setup"| node_setup
node_web -->|"dispatches analytics"| node_analytics
node_web -->|"dispatches verification"| node_verification
node_web -->|"dispatches verifier"| node_verifier
node_web -->|"dispatches approvals"| node_approvals
node_web -->|"applies middleware"| node_accessctl
node_auth -->|"authenticates"| node_user
node_studentctl -->|"reads and writes"| node_recordsdb
node_studentctl -->|"dispatches import"| node_import
node_studentctl -->|"uses CSV service"| node_csvservice
node_studentctl -->|"records actions"| node_audit
node_studentctl -->|"broadcasts updates"| node_events
node_import -->|"imports records"| node_recordsdb
node_approvals -->|"manages requests"| node_recordsdb
node_idcards -->|"looks up students"| node_recordsdb
node_idcards -->|"manages templates"| node_templates
node_idcards -->|"uploads photos"| node_google
node_google -.->|"stores photos"| node_drive
node_analytics -->|"queries records"| node_recordsdb
node_audit -->|"persists audit logs"| node_db
node_setup -->|"persists setup data"| node_db
node_token -->|"manages access tokens"| node_db
node_ui -->|"loads pages"| node_pages
node_pages -->|"calls application routes"| node_web
node_pages -->|"requests ID actions"| node_idcards
node_pages -->|"requests student actions"| node_studentctl

click node_web "https://github.com/ictudevs/usisa/blob/master/routes/web.php"
click node_auth "https://github.com/ictudevs/usisa/tree/master/app/Http/Controllers/Auth"
click node_accessctl "https://github.com/ictudevs/usisa/tree/master/app/Http/Middleware"
click node_setup "https://github.com/ictudevs/usisa/tree/master/app/Http/Controllers/Setup"
click node_token "https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/Setup/TokenController.php"
click node_studentctl "https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/StudentController.php"
click node_import "https://github.com/ictudevs/usisa/blob/master/app/Jobs/ImportStudentsJob.php"
click node_csvservice "https://github.com/ictudevs/usisa/blob/master/app/Services/StudentCsvService.php"
click node_approvals "https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/StudentApprovalRequestController.php"
click node_recordsdb "https://github.com/ictudevs/usisa/blob/master/app/Models/Student.php"
click node_idcards "https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/IdCardController.php"
click node_templates "https://github.com/ictudevs/usisa/blob/master/app/Models/IdTemplate.php"
click node_verification "https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/VerifyQRCodeController.php"
click node_verifier "https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/VerifierController.php"
click node_analytics "https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/AnalyticsController.php"
click node_audit "https://github.com/ictudevs/usisa/blob/master/app/Services/AuditLogService.php"
click node_notifications "https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/NotificationController.php"
click node_events "https://github.com/ictudevs/usisa/tree/master/app/Events"
click node_google "https://github.com/ictudevs/usisa/blob/master/app/Services/GoogleDrivePhotos.php"
click node_ui "https://github.com/ictudevs/usisa/blob/master/resources/js/app.ts"
click node_pages "https://github.com/ictudevs/usisa/tree/master/resources/js/pages"
click node_db "https://github.com/ictudevs/usisa/blob/master/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_web,node_auth,node_accessctl,node_setup,node_token,node_user toneBlue
class node_studentctl,node_import,node_csvservice,node_approvals,node_recordsdb,node_db toneAmber
class node_idcards,node_templates,node_verification,node_verifier toneMint
class node_analytics,node_audit,node_notifications,node_events,node_google toneRose
class node_ui,node_pages,node_drive toneIndigo
```

## Components

### Access and setup

- [Web routes](https://github.com/ictudevs/usisa/blob/master/routes/web.php): `routes/web.php`
- [Authentication](https://github.com/ictudevs/usisa/tree/master/app/Http/Controllers/Auth): `app/Http/Controllers/Auth`
- [Access controls](https://github.com/ictudevs/usisa/tree/master/app/Http/Middleware): `app/Http/Middleware`
- [Campus and roles](https://github.com/ictudevs/usisa/tree/master/app/Http/Controllers/Setup): `app/Http/Controllers/Setup`
- [API tokens](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/Setup/TokenController.php): `app/Http/Controllers/Setup/TokenController.php`

### Student records

- [Student management](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/StudentController.php): `app/Http/Controllers/StudentController.php`
- [CSV import](https://github.com/ictudevs/usisa/blob/master/app/Jobs/ImportStudentsJob.php): `app/Jobs/ImportStudentsJob.php`
- [CSV services](https://github.com/ictudevs/usisa/blob/master/app/Services/StudentCsvService.php): `app/Services/StudentCsvService.php`
- [Approval requests](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/StudentApprovalRequestController.php): `app/Http/Controllers/StudentApprovalRequestController.php`
- [Student data](https://github.com/ictudevs/usisa/blob/master/app/Models/Student.php): `app/Models/Student.php`

### ID and verification

- [ID card workflow](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/IdCardController.php): `app/Http/Controllers/IdCardController.php`
- [ID templates](https://github.com/ictudevs/usisa/blob/master/app/Models/IdTemplate.php): `app/Models/IdTemplate.php`
- [Identity verification](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/VerifyQRCodeController.php): `app/Http/Controllers/VerifyQRCodeController.php`
- [Verifier](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/VerifierController.php): `app/Http/Controllers/VerifierController.php`

### Operations and insight

- [Analytics](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/AnalyticsController.php): `app/Http/Controllers/AnalyticsController.php`
- [Audit logs](https://github.com/ictudevs/usisa/blob/master/app/Services/AuditLogService.php): `app/Services/AuditLogService.php`
- [Notifications](https://github.com/ictudevs/usisa/blob/master/app/Http/Controllers/NotificationController.php): `app/Http/Controllers/NotificationController.php`
- [Live updates](https://github.com/ictudevs/usisa/tree/master/app/Events): `app/Events`
- [Google Drive photos](https://github.com/ictudevs/usisa/blob/master/app/Services/GoogleDrivePhotos.php): `app/Services/GoogleDrivePhotos.php`

### Web interface

- [Vue application](https://github.com/ictudevs/usisa/blob/master/resources/js/app.ts): `resources/js/app.ts`
- [Feature pages](https://github.com/ictudevs/usisa/tree/master/resources/js/pages): `resources/js/pages`

### Other components

- **Staff user**
- [Application database](https://github.com/ictudevs/usisa/blob/master/config/database.php): `config/database.php`
- **Google Drive**

## Connections

- Staff user → Web routes: requests pages
- Web routes → Authentication: dispatches auth
- Web routes → Student management: dispatches records
- Web routes → ID card workflow: dispatches ID tasks
- Web routes → Campus and roles: dispatches setup
- Web routes → Analytics: dispatches analytics
- Web routes → Identity verification: dispatches verification
- Web routes → Verifier: dispatches verifier
- Web routes → Approval requests: dispatches approvals
- Web routes → Access controls: applies middleware
- Authentication → Staff user: authenticates
- Student management → Student data: reads and writes
- Student management → CSV import: dispatches import
- Student management → CSV services: uses CSV service
- Student management → Audit logs: records actions
- Student management → Live updates: broadcasts updates
- CSV import → Student data: imports records
- Approval requests → Student data: manages requests
- ID card workflow → Student data: looks up students
- ID card workflow → ID templates: manages templates
- ID card workflow → Google Drive photos: uploads photos
- Google Drive photos → Google Drive: stores photos
- Analytics → Student data: queries records
- Audit logs → Application database: persists audit logs
- Campus and roles → Application database: persists setup data
- API tokens → Application database: manages access tokens
- Vue application → Feature pages: loads pages
- Feature pages → Web routes: calls application routes
- Feature pages → ID card workflow: requests ID actions
- Feature pages → Student management: requests student actions
