# useripx/capstoneproject architecture

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

## Overview

SITOKA is a Laravel office-inventory application. Users log in and are routed by role; admins manage accounts, inventory and stock transactions, while employees can browse inventory and record stock withdrawals. Management and leadership dashboards summarize stock activity, and period-based reports can be exported as PDFs. The graph reflects the README’s documented capabilities; source excerpts were not provided for several controllers and route definitions, so uncertain internal wiring is omitted.

Main entry points: [`routes/web.php`](https://github.com/useripx/capstoneproject/blob/master/routes/web.php) (Web routes), [`app/Models/Barang.php`](https://github.com/useripx/capstoneproject/blob/master/app/Models/Barang.php) (Inventory records), [`app/Http/Controllers/Admin/DashboardController.php`](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/DashboardController.php) (Admin dashboard), [`app/Http/Controllers/Pimpinan/DashboardController.php`](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Pimpinan/DashboardController.php) (Leadership dashboard)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and accounts"]
  node_login["Login and logout"]
  node_roles["Role gate<br/>[RoleMiddleware.php]"]
  node_users["Account management<br/>[UserController.php]"]
  node_user_model["User accounts<br/>[User.php]"]
end

subgraph group_inventory["Inventory and transactions"]
  node_admin_goods["Admin inventory"]
  node_employee_goods["Employee inventory"]
  node_goods_model["Inventory records<br/>[Barang.php]"]
  node_admin_transactions["Stock transactions"]
  node_transaction_model["Transaction history<br/>[Transaksi.php]"]
  node_database[("Relational database<br/>[database.php]")]
end

subgraph group_insights["Dashboards and reports"]
  node_admin_dashboard["Admin dashboard"]
  node_employee_dashboard["Employee dashboard"]
  node_leader_dashboard["Leadership dashboard"]
  node_chart_data["Dashboard chart data"]
  node_admin_reports["Admin reports"]
  node_leader_reports["Leadership reports"]
  node_report_data["Report data builder"]
end

subgraph group_presentation["Web presentation"]
  node_web["Web routes<br/>[web.php]"]
  node_pdf_view["PDF report view<br/>[pdf.blade.php]"]
  node_admin_views["Admin pages"]
  node_employee_views["Employee pages"]
  node_leader_views["Leadership pages"]
  node_login_view["Login page<br/>[Login.blade.php]"]
end

node_admin(("Admin"))
node_leader(("Pimpinan"))
node_employee(("Karyawan"))
node_pdf_service["DomPDF"]

node_admin -->|"requests"| node_web
node_leader -->|"requests"| node_web
node_employee -->|"requests"| node_web
node_web -->|"dispatches"| node_login
node_web -->|"guards"| node_roles
node_login -->|"authenticates"| node_user_model
node_users -->|"manages"| node_user_model
node_users -->|"renders"| node_admin_views
node_login -->|"renders"| node_login_view
node_web -->|"dispatches"| node_admin_goods
node_web -->|"dispatches"| node_employee_goods
node_web -->|"dispatches"| node_admin_transactions
node_admin_goods -->|"reads and manages"| node_goods_model
node_employee_goods -->|"reads and updates"| node_goods_model
node_employee_goods -->|"records withdrawals"| node_transaction_model
node_admin_transactions -->|"updates stock"| node_goods_model
node_admin_transactions -->|"records activity"| node_transaction_model
node_goods_model -->|"persists"| node_database
node_transaction_model -->|"persists"| node_database
node_user_model -->|"persists"| node_database
node_admin_goods -->|"renders"| node_admin_views
node_employee_goods -->|"renders"| node_employee_views
node_web -->|"dispatches"| node_admin_dashboard
node_web -->|"dispatches"| node_employee_dashboard
node_web -->|"dispatches"| node_leader_dashboard
node_admin_dashboard -->|"builds charts"| node_chart_data
node_leader_dashboard -->|"builds charts"| node_chart_data
node_admin_dashboard -->|"reads stock"| node_goods_model
node_admin_dashboard -->|"summarizes activity"| node_transaction_model
node_employee_dashboard -->|"reads stock"| node_goods_model
node_leader_dashboard -->|"reads stock"| node_goods_model
node_leader_dashboard -->|"summarizes activity"| node_transaction_model
node_admin_dashboard -->|"renders"| node_admin_views
node_employee_dashboard -->|"renders"| node_employee_views
node_leader_dashboard -->|"renders"| node_leader_views
node_web -->|"dispatches"| node_admin_reports
node_web -->|"dispatches"| node_leader_reports
node_admin_reports -->|"builds report data"| node_report_data
node_leader_reports -->|"builds report data"| node_report_data
node_admin_reports -->|"renders"| node_admin_views
node_leader_reports -->|"renders"| node_leader_views
node_admin_reports -.->|"generates PDF"| node_pdf_service
node_leader_reports -.->|"generates PDF"| node_pdf_service
node_pdf_service -.->|"renders"| node_pdf_view

click node_web "https://github.com/useripx/capstoneproject/blob/master/routes/web.php"
click node_login "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Auth/LoginController.php"
click node_roles "https://github.com/useripx/capstoneproject/blob/master/app/Http/Middleware/RoleMiddleware.php"
click node_users "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/UserController.php"
click node_user_model "https://github.com/useripx/capstoneproject/blob/master/app/Models/User.php"
click node_admin_goods "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/BarangController.php"
click node_employee_goods "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Karyawan/BarangController.php"
click node_goods_model "https://github.com/useripx/capstoneproject/blob/master/app/Models/Barang.php"
click node_admin_transactions "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/TransaksiController.php"
click node_transaction_model "https://github.com/useripx/capstoneproject/blob/master/app/Models/Transaksi.php"
click node_database "https://github.com/useripx/capstoneproject/blob/master/config/database.php"
click node_admin_dashboard "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/DashboardController.php"
click node_employee_dashboard "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Karyawan/DashboardController.php"
click node_leader_dashboard "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Pimpinan/DashboardController.php"
click node_chart_data "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Concerns/BuildsDashboardChartData.php"
click node_admin_reports "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/LaporanController.php"
click node_leader_reports "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Pimpinan/LaporanController.php"
click node_report_data "https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Concerns/BuildsLaporanData.php"
click node_pdf_view "https://github.com/useripx/capstoneproject/blob/master/resources/views/laporan/pdf.blade.php"
click node_admin_views "https://github.com/useripx/capstoneproject/tree/master/resources/views/admin"
click node_employee_views "https://github.com/useripx/capstoneproject/tree/master/resources/views/karyawan"
click node_leader_views "https://github.com/useripx/capstoneproject/tree/master/resources/views/pimpinan"
click node_login_view "https://github.com/useripx/capstoneproject/blob/master/resources/views/auth/Login.blade.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_login,node_roles,node_users,node_user_model toneBlue
class node_admin_goods,node_employee_goods,node_goods_model,node_admin_transactions,node_transaction_model,node_database toneAmber
class node_admin_dashboard,node_employee_dashboard,node_leader_dashboard,node_chart_data,node_admin_reports,node_leader_reports,node_report_data toneMint
class node_web,node_pdf_view,node_admin_views,node_employee_views,node_leader_views,node_login_view toneRose
class node_admin,node_leader,node_employee,node_pdf_service toneIndigo
```

## Components

### Access and accounts

- [Login and logout](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Auth/LoginController.php): `app/Http/Controllers/Auth/LoginController.php`
- [Role gate](https://github.com/useripx/capstoneproject/blob/master/app/Http/Middleware/RoleMiddleware.php): `app/Http/Middleware/RoleMiddleware.php`
- [Account management](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/UserController.php): `app/Http/Controllers/Admin/UserController.php`
- [User accounts](https://github.com/useripx/capstoneproject/blob/master/app/Models/User.php): `app/Models/User.php`

### Inventory and transactions

- [Admin inventory](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/BarangController.php): `app/Http/Controllers/Admin/BarangController.php`
- [Employee inventory](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Karyawan/BarangController.php): `app/Http/Controllers/Karyawan/BarangController.php`
- [Inventory records](https://github.com/useripx/capstoneproject/blob/master/app/Models/Barang.php): `app/Models/Barang.php`
- [Stock transactions](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/TransaksiController.php): `app/Http/Controllers/Admin/TransaksiController.php`
- [Transaction history](https://github.com/useripx/capstoneproject/blob/master/app/Models/Transaksi.php): `app/Models/Transaksi.php`
- [Relational database](https://github.com/useripx/capstoneproject/blob/master/config/database.php): `config/database.php`

### Dashboards and reports

- [Admin dashboard](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/DashboardController.php): `app/Http/Controllers/Admin/DashboardController.php`
- [Employee dashboard](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Karyawan/DashboardController.php): `app/Http/Controllers/Karyawan/DashboardController.php`
- [Leadership dashboard](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Pimpinan/DashboardController.php): `app/Http/Controllers/Pimpinan/DashboardController.php`
- [Dashboard chart data](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Concerns/BuildsDashboardChartData.php): `app/Http/Controllers/Concerns/BuildsDashboardChartData.php`
- [Admin reports](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Admin/LaporanController.php): `app/Http/Controllers/Admin/LaporanController.php`
- [Leadership reports](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Pimpinan/LaporanController.php): `app/Http/Controllers/Pimpinan/LaporanController.php`
- [Report data builder](https://github.com/useripx/capstoneproject/blob/master/app/Http/Controllers/Concerns/BuildsLaporanData.php): `app/Http/Controllers/Concerns/BuildsLaporanData.php`

### Web presentation

- [Web routes](https://github.com/useripx/capstoneproject/blob/master/routes/web.php): `routes/web.php`
- [PDF report view](https://github.com/useripx/capstoneproject/blob/master/resources/views/laporan/pdf.blade.php): `resources/views/laporan/pdf.blade.php`
- [Admin pages](https://github.com/useripx/capstoneproject/tree/master/resources/views/admin): `resources/views/admin`
- [Employee pages](https://github.com/useripx/capstoneproject/tree/master/resources/views/karyawan): `resources/views/karyawan`
- [Leadership pages](https://github.com/useripx/capstoneproject/tree/master/resources/views/pimpinan): `resources/views/pimpinan`
- [Login page](https://github.com/useripx/capstoneproject/blob/master/resources/views/auth/Login.blade.php): `resources/views/auth/Login.blade.php`

### Other components

- **Admin**
- **Pimpinan**
- **Karyawan**
- **DomPDF**

## Connections

- Admin → Web routes: requests
- Pimpinan → Web routes: requests
- Karyawan → Web routes: requests
- Web routes → Login and logout: dispatches
- Web routes → Role gate: guards
- Login and logout → User accounts: authenticates
- Account management → User accounts: manages
- Account management → Admin pages: renders
- Login and logout → Login page: renders
- Web routes → Admin inventory: dispatches
- Web routes → Employee inventory: dispatches
- Web routes → Stock transactions: dispatches
- Admin inventory → Inventory records: reads and manages
- Employee inventory → Inventory records: reads and updates
- Employee inventory → Transaction history: records withdrawals
- Stock transactions → Inventory records: updates stock
- Stock transactions → Transaction history: records activity
- Inventory records → Relational database: persists
- Transaction history → Relational database: persists
- User accounts → Relational database: persists
- Admin inventory → Admin pages: renders
- Employee inventory → Employee pages: renders
- Web routes → Admin dashboard: dispatches
- Web routes → Employee dashboard: dispatches
- Web routes → Leadership dashboard: dispatches
- Admin dashboard → Dashboard chart data: builds charts
- Leadership dashboard → Dashboard chart data: builds charts
- Admin dashboard → Inventory records: reads stock
- Admin dashboard → Transaction history: summarizes activity
- Employee dashboard → Inventory records: reads stock
- Leadership dashboard → Inventory records: reads stock
- Leadership dashboard → Transaction history: summarizes activity
- Admin dashboard → Admin pages: renders
- Employee dashboard → Employee pages: renders
- Leadership dashboard → Leadership pages: renders
- Web routes → Admin reports: dispatches
- Web routes → Leadership reports: dispatches
- Admin reports → Report data builder: builds report data
- Leadership reports → Report data builder: builds report data
- Admin reports → Admin pages: renders
- Leadership reports → Leadership pages: renders
- Admin reports → DomPDF: generates PDF
- Leadership reports → DomPDF: generates PDF
- DomPDF → PDF report view: renders
