# nixon-dev/registrar-project architecture

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

- Interactive diagram: https://gitdiagram.com/nixon-dev/registrar-project
- Repository: https://github.com/nixon-dev/registrar-project

## Overview

This Laravel application tracks registrar document requests: a student submits an ID to check unreleased request statuses, while administrators authenticate to manage requests, users, and activity history. Admin dashboards provide request counts and chart data, with DataTables supporting interactive listings. Controllers coordinate the request workflow and persistence through Eloquent models; Blade views render results and admin screens. The excerpts show guest lookup, admin request operations, authentication, and history recording. Some capabilities and view wiring are documented or routed but their implementations were not sampled, so uncertain links are omitted.

Main entry points: [`app/Http/Controllers/AdminController.php`](https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/AdminController.php) (Admin operations), [`routes/web.php`](https://github.com/nixon-dev/registrar-project/blob/main/routes/web.php) (Web routes), [`resources/views/admin/document.blade.php`](https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/document.blade.php) (Admin screens), [`routes/admin.php`](https://github.com/nixon-dev/registrar-project/blob/main/routes/admin.php) (Admin routes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_web_routes["Web routes<br/>[web.php]"]
  node_admin_routes["Admin routes<br/>[admin.php]"]
  node_role_gate["Role gate<br/>[RoleMiddleware.php]"]
  node_guest_lookup["Status lookup"]
  node_auth["Admin authentication"]
  node_registration["Registration"]
  node_logout["Logout"]
end

subgraph group_admin["Admin operations"]
  node_admin_controller["Admin operations"]
  node_dashboard["Reports dashboard"]
  node_history_trait["History recorder<br/>[RecordHistory.php]"]
end

subgraph group_domain["Request and identity data"]
  node_document[("Document requests<br/>[Document.php]")]
  node_user[("User accounts<br/>[User.php]")]
  node_activity[("Activity records<br/>[ActivityLog.php]")]
end

subgraph group_presentation["User interface"]
  node_guest_views["Lookup screens<br/>[result.blade.php]"]
  node_admin_views["Admin screens<br/>[document.blade.php]"]
  node_dashboard_view["Dashboard view<br/>[index.blade.php]"]
  node_history_view["History view<br/>[history.blade.php]"]
  node_user_settings["User settings screens<br/>[users.blade.php]"]
  node_datatable["Interactive tables<br/>[datatable.js]"]
  node_personal_js["Page interactions<br/>[personal.js]"]
  node_script_js["UI behavior<br/>[script.js]"]
end

node_visitor(("Student / visitor"))
node_admin_user(("Administrator"))

node_visitor -->|"requests status"| node_web_routes
node_web_routes -->|"routes lookup"| node_guest_lookup
node_guest_lookup -->|"queries requests"| node_document
node_guest_lookup -->|"renders results"| node_guest_views
node_admin_user -->|"signs in"| node_web_routes
node_web_routes -->|"routes login"| node_auth
node_web_routes -->|"routes registration"| node_registration
node_web_routes -->|"routes logout"| node_logout
node_web_routes -->|"includes routes"| node_admin_routes
node_admin_routes -->|"checks role"| node_role_gate
node_admin_routes -->|"dispatches actions"| node_admin_controller
node_admin_controller -->|"manages requests"| node_document
node_admin_controller -->|"manages accounts"| node_user
node_admin_controller -->|"reads history"| node_activity
node_admin_controller -->|"records changes"| node_history_trait
node_history_trait -->|"writes activity"| node_activity
node_admin_controller -->|"renders admin pages"| node_admin_views
node_admin_controller -->|"renders dashboard"| node_dashboard_view
node_admin_controller -->|"renders history"| node_history_view
node_admin_controller -->|"renders user list"| node_user_settings
node_admin_controller -->|"builds report data"| node_dashboard
node_dashboard_view -.->|"displays report"| node_dashboard
node_admin_views -.->|"uses tables"| node_datatable
node_admin_views -.->|"page interaction"| node_personal_js
node_admin_views -.->|"UI behavior"| node_script_js

click node_web_routes "https://github.com/nixon-dev/registrar-project/blob/main/routes/web.php"
click node_admin_routes "https://github.com/nixon-dev/registrar-project/blob/main/routes/admin.php"
click node_role_gate "https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Middleware/RoleMiddleware.php"
click node_guest_lookup "https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/GuestController.php"
click node_auth "https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/Auth/LoginController.php"
click node_registration "https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/Auth/RegisterController.php"
click node_logout "https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/Auth/LogoutController.php"
click node_admin_controller "https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/AdminController.php"
click node_dashboard "https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/AdminController.php"
click node_history_trait "https://github.com/nixon-dev/registrar-project/blob/main/app/Traits/RecordHistory.php"
click node_document "https://github.com/nixon-dev/registrar-project/blob/main/app/Models/Document.php"
click node_user "https://github.com/nixon-dev/registrar-project/blob/main/app/Models/User.php"
click node_activity "https://github.com/nixon-dev/registrar-project/blob/main/app/Models/ActivityLog.php"
click node_guest_views "https://github.com/nixon-dev/registrar-project/blob/main/resources/views/guest/result.blade.php"
click node_admin_views "https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/document.blade.php"
click node_dashboard_view "https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/index.blade.php"
click node_history_view "https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/history.blade.php"
click node_user_settings "https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/settings/users.blade.php"
click node_datatable "https://github.com/nixon-dev/registrar-project/blob/main/resources/js/datatable.js"
click node_personal_js "https://github.com/nixon-dev/registrar-project/blob/main/resources/js/personal.js"
click node_script_js "https://github.com/nixon-dev/registrar-project/blob/main/resources/js/script.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_web_routes,node_admin_routes,node_role_gate,node_guest_lookup,node_auth,node_registration,node_logout toneBlue
class node_admin_controller,node_dashboard,node_history_trait toneAmber
class node_document,node_user,node_activity toneMint
class node_guest_views,node_admin_views,node_dashboard_view,node_history_view,node_user_settings,node_datatable,node_personal_js,node_script_js toneRose
class node_visitor,node_admin_user toneIndigo
```

## Components

### Web entry

- [Web routes](https://github.com/nixon-dev/registrar-project/blob/main/routes/web.php): `routes/web.php`
- [Admin routes](https://github.com/nixon-dev/registrar-project/blob/main/routes/admin.php): `routes/admin.php`
- [Role gate](https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Middleware/RoleMiddleware.php): `app/Http/Middleware/RoleMiddleware.php`
- [Status lookup](https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/GuestController.php): `app/Http/Controllers/GuestController.php`
- [Admin authentication](https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/Auth/LoginController.php): `app/Http/Controllers/Auth/LoginController.php`
- [Registration](https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/Auth/RegisterController.php): `app/Http/Controllers/Auth/RegisterController.php`
- [Logout](https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/Auth/LogoutController.php): `app/Http/Controllers/Auth/LogoutController.php`

### Admin operations

- [Admin operations](https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/AdminController.php): `app/Http/Controllers/AdminController.php`
- [Reports dashboard](https://github.com/nixon-dev/registrar-project/blob/main/app/Http/Controllers/AdminController.php): `app/Http/Controllers/AdminController.php`
- [History recorder](https://github.com/nixon-dev/registrar-project/blob/main/app/Traits/RecordHistory.php): `app/Traits/RecordHistory.php`

### Request and identity data

- [Document requests](https://github.com/nixon-dev/registrar-project/blob/main/app/Models/Document.php): `app/Models/Document.php`
- [User accounts](https://github.com/nixon-dev/registrar-project/blob/main/app/Models/User.php): `app/Models/User.php`
- [Activity records](https://github.com/nixon-dev/registrar-project/blob/main/app/Models/ActivityLog.php): `app/Models/ActivityLog.php`

### User interface

- [Lookup screens](https://github.com/nixon-dev/registrar-project/blob/main/resources/views/guest/result.blade.php): `resources/views/guest/result.blade.php`
- [Admin screens](https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/document.blade.php): `resources/views/admin/document.blade.php`
- [Dashboard view](https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/index.blade.php): `resources/views/admin/index.blade.php`
- [History view](https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/history.blade.php): `resources/views/admin/history.blade.php`
- [User settings screens](https://github.com/nixon-dev/registrar-project/blob/main/resources/views/admin/settings/users.blade.php): `resources/views/admin/settings/users.blade.php`
- [Interactive tables](https://github.com/nixon-dev/registrar-project/blob/main/resources/js/datatable.js): `resources/js/datatable.js`
- [Page interactions](https://github.com/nixon-dev/registrar-project/blob/main/resources/js/personal.js): `resources/js/personal.js`
- [UI behavior](https://github.com/nixon-dev/registrar-project/blob/main/resources/js/script.js): `resources/js/script.js`

### Other components

- **Student / visitor**
- **Administrator**

## Connections

- Student / visitor → Web routes: requests status (evidence: `routes/web.php`)
- Web routes → Status lookup: routes lookup (evidence: `routes/web.php`)
- Status lookup → Document requests: queries requests (evidence: `app/Http/Controllers/GuestController.php`)
- Status lookup → Lookup screens: renders results (evidence: `app/Http/Controllers/GuestController.php`)
- Administrator → Web routes: signs in (evidence: `routes/web.php`)
- Web routes → Admin authentication: routes login (evidence: `routes/web.php`)
- Web routes → Registration: routes registration (evidence: `routes/web.php`)
- Web routes → Logout: routes logout (evidence: `routes/web.php`)
- Web routes → Admin routes: includes routes (evidence: `routes/web.php`)
- Admin routes → Role gate: checks role (evidence: `routes/admin.php`)
- Admin routes → Admin operations: dispatches actions (evidence: `routes/admin.php`)
- Admin operations → Document requests: manages requests (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → User accounts: manages accounts (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → Activity records: reads history (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → History recorder: records changes (evidence: `app/Http/Controllers/AdminController.php`)
- History recorder → Activity records: writes activity (evidence: `app/Traits/RecordHistory.php`)
- Admin operations → Admin screens: renders admin pages (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → Dashboard view: renders dashboard (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → History view: renders history (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → User settings screens: renders user list (evidence: `app/Http/Controllers/AdminController.php`)
- Admin operations → Reports dashboard: builds report data (evidence: `app/Http/Controllers/AdminController.php`)
- Dashboard view → Reports dashboard: displays report
- Admin screens → Interactive tables: uses tables
- Admin screens → Page interactions: page interaction
- Admin screens → UI behavior: UI behavior
