# widisatritama7-design/siix-portal architecture

> Architecture diagram of the GitHub repository widisatritama7-design/siix-portal, 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/widisatritama7-design/siix-portal
- Repository: https://github.com/widisatritama7-design/siix-portal

## Overview

This is a Laravel/Livewire internal operations portal, not merely a starter kit: its modules cover ESD equipment and lockers, production workflows, quality checks, HR, document submissions, tickets and notifications. Users interact through Livewire screens or HTTP/API endpoints; those handlers produce operational records, reports, status changes and notifications. The clearest sampled flow is ticket management and inbox aggregation, alongside ESD locker transactions, device status reporting and PCB scanning. The README is empty, and source excerpts are partial, so other domain links are represented as capabilities without assumed call chains.

Main entry points: [`app/Livewire/Ticket/TicketManager.php`](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Livewire/Ticket/TicketManager.php) (Ticket Management), [`app/Http/Controllers/ESD/Locker/LockerInfoController.php`](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/ESD/Locker/LockerInfoController.php) (Locker Information), [`app/Http/Controllers/InboxController.php`](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/InboxController.php) (Inbox Aggregation), [`app/Http/Controllers/ESD/LockerController.php`](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/ESD/LockerController.php) (Locker Transactions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_collaboration["Tickets and Inbox"]
  node_ticket_ui["Ticket Management<br/>[TicketManager.php]"]
  node_ticket_data[("Ticket Records<br/>[Ticket.php]")]
  node_ticket_email["Ticket Email<br/>[TicketCreated.php]"]
  node_inbox["Inbox Aggregation"]
  node_submission_data[("DCC Submissions<br/>[Submission.php]")]
  node_notification_ui["Site Notifications"]
  node_notification_data[("Notification Records")]
end

subgraph group_esd["ESD Operations"]
  node_locker_api["Locker Transactions"]
  node_locker_info["Locker Information"]
  node_locker_data[("Locker Records<br/>[Locker.php]")]
  node_uniform_tx[("Uniform Transactions")]
  node_locker_mail["Locker Email"]
  node_device_api["ESP Device API<br/>[EspController.php]"]
  node_device_data[("ESP Device Records<br/>[EspDevice.php]")]
  node_device_logs[("Device Logs<br/>[EspDeviceLog.php]")]
  node_esd_management["ESD Equipment Management"]
end

subgraph group_production["Production Operations"]
  node_production_ui["Production Workflows"]
  node_pcb_scan["PCB Scan Control"]
  node_pcb_data[("PCB Scan Records<br/>[PCB.php]")]
  node_ng_data[("NG Box Records<br/>[NGBox.php]")]
end

subgraph group_quality["Quality Control"]
  node_quality_ui["QAQC Workflows"]
  node_blind_test_data[("Blind Test Records<br/>[BlindTest.php]")]
end

subgraph group_workforce["Workforce and Admin"]
  node_hr_ui["HR Workflows"]
  node_employee_data[("Employee Records<br/>[Employee.php]")]
end

node_staff(("Staff User"))

node_staff -->|"manages tickets"| node_ticket_ui
node_ticket_ui -->|"reads and writes"| node_ticket_data
node_ticket_ui -->|"sends mail"| node_ticket_email
node_ticket_ui -->|"checks queues"| node_inbox
node_staff -->|"views pending work"| node_inbox
node_inbox -->|"queries tickets"| node_ticket_data
node_inbox -->|"queries submissions"| node_submission_data
node_staff -->|"manages notices"| node_notification_ui
node_notification_ui -->|"creates and updates"| node_notification_data
node_staff -->|"uses locker service"| node_locker_api
node_locker_api -->|"reads and updates"| node_locker_data
node_locker_api -->|"creates transactions"| node_uniform_tx
node_staff -->|"requests uniform"| node_locker_info
node_locker_info -->|"selects and updates"| node_locker_data
node_locker_info -->|"creates transactions"| node_uniform_tx
node_locker_info -->|"sends notification"| node_locker_mail
node_device_api -->|"upserts and reads"| node_device_data
node_device_api -->|"records status changes"| node_device_logs
node_staff -->|"manages equipment"| node_esd_management
node_staff -->|"uses production tools"| node_production_ui
node_staff -->|"scans boards"| node_pcb_scan
node_pcb_scan -->|"checks and records"| node_pcb_data
node_pcb_scan -->|"locks failed scans"| node_ng_data
node_staff -->|"runs quality workflows"| node_quality_ui
node_staff -->|"uses HR tools"| node_hr_ui

click node_ticket_ui "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Livewire/Ticket/TicketManager.php"
click node_ticket_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/Ticket/Ticket.php"
click node_ticket_email "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Mail/Ticket/TicketCreated.php"
click node_inbox "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/InboxController.php"
click node_submission_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/DCC/Submission.php"
click node_notification_ui "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Livewire/NotificationManager.php"
click node_notification_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/SiteNotification.php"
click node_locker_api "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/ESD/LockerController.php"
click node_locker_info "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/ESD/Locker/LockerInfoController.php"
click node_locker_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/ESD/Locker/Locker.php"
click node_uniform_tx "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/ESD/Locker/UniformTransaction.php"
click node_locker_mail "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Mail/ESD/LockerNotificationMail.php"
click node_device_api "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/Api/EspController.php"
click node_device_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/EspDevice.php"
click node_device_logs "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/EspDeviceLog.php"
click node_esd_management "https://github.com/widisatritama7-design/siix-portal/tree/main/app/Livewire/ESD"
click node_production_ui "https://github.com/widisatritama7-design/siix-portal/tree/main/app/Livewire/PROD"
click node_pcb_scan "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/PROD/FCT/ScanPcbController.php"
click node_pcb_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/PROD/FCT/PCB.php"
click node_ng_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/PROD/FCT/NGBox.php"
click node_quality_ui "https://github.com/widisatritama7-design/siix-portal/tree/main/app/Livewire/QAQC"
click node_blind_test_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/QAQC/BlindTest/BlindTest.php"
click node_hr_ui "https://github.com/widisatritama7-design/siix-portal/tree/main/app/Livewire/HR"
click node_employee_data "https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/HR/Employee.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_ticket_ui,node_ticket_data,node_ticket_email,node_inbox,node_submission_data,node_notification_ui,node_notification_data,node_staff toneBlue
class node_locker_api,node_locker_info,node_locker_data,node_uniform_tx,node_locker_mail,node_device_api,node_device_data,node_device_logs,node_esd_management toneAmber
class node_production_ui,node_pcb_scan,node_pcb_data,node_ng_data toneMint
class node_quality_ui,node_blind_test_data toneRose
class node_hr_ui,node_employee_data toneIndigo
```

## Components

### Tickets and Inbox

- [Ticket Management](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Livewire/Ticket/TicketManager.php): `app/Livewire/Ticket/TicketManager.php`
- [Ticket Records](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/Ticket/Ticket.php): `app/Models/Ticket/Ticket.php`
- [Ticket Email](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Mail/Ticket/TicketCreated.php): `app/Mail/Ticket/TicketCreated.php`
- [Inbox Aggregation](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/InboxController.php): `app/Http/Controllers/InboxController.php`
- [DCC Submissions](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/DCC/Submission.php): `app/Models/DCC/Submission.php`
- [Site Notifications](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Livewire/NotificationManager.php): `app/Livewire/NotificationManager.php`
- [Notification Records](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/SiteNotification.php): `app/Models/SiteNotification.php`

### ESD Operations

- [Locker Transactions](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/ESD/LockerController.php): `app/Http/Controllers/ESD/LockerController.php`
- [Locker Information](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/ESD/Locker/LockerInfoController.php): `app/Http/Controllers/ESD/Locker/LockerInfoController.php`
- [Locker Records](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/ESD/Locker/Locker.php): `app/Models/ESD/Locker/Locker.php`
- [Uniform Transactions](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/ESD/Locker/UniformTransaction.php): `app/Models/ESD/Locker/UniformTransaction.php`
- [Locker Email](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Mail/ESD/LockerNotificationMail.php): `app/Mail/ESD/LockerNotificationMail.php`
- [ESP Device API](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/Api/EspController.php): `app/Http/Controllers/Api/EspController.php`
- [ESP Device Records](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/EspDevice.php): `app/Models/EspDevice.php`
- [Device Logs](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/EspDeviceLog.php): `app/Models/EspDeviceLog.php`
- [ESD Equipment Management](https://github.com/widisatritama7-design/siix-portal/tree/main/app/Livewire/ESD): `app/Livewire/ESD`

### Production Operations

- [Production Workflows](https://github.com/widisatritama7-design/siix-portal/tree/main/app/Livewire/PROD): `app/Livewire/PROD`
- [PCB Scan Control](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Http/Controllers/PROD/FCT/ScanPcbController.php): `app/Http/Controllers/PROD/FCT/ScanPcbController.php`
- [PCB Scan Records](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/PROD/FCT/PCB.php): `app/Models/PROD/FCT/PCB.php`
- [NG Box Records](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/PROD/FCT/NGBox.php): `app/Models/PROD/FCT/NGBox.php`

### Quality Control

- [QAQC Workflows](https://github.com/widisatritama7-design/siix-portal/tree/main/app/Livewire/QAQC): `app/Livewire/QAQC`
- [Blind Test Records](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/QAQC/BlindTest/BlindTest.php): `app/Models/QAQC/BlindTest/BlindTest.php`

### Workforce and Admin

- [HR Workflows](https://github.com/widisatritama7-design/siix-portal/tree/main/app/Livewire/HR): `app/Livewire/HR`
- [Employee Records](https://github.com/widisatritama7-design/siix-portal/blob/main/app/Models/HR/Employee.php): `app/Models/HR/Employee.php`

### Other components

- **Staff User**

## Connections

- Staff User → Ticket Management: manages tickets
- Ticket Management → Ticket Records: reads and writes
- Ticket Management → Ticket Email: sends mail
- Ticket Management → Inbox Aggregation: checks queues
- Staff User → Inbox Aggregation: views pending work
- Inbox Aggregation → Ticket Records: queries tickets
- Inbox Aggregation → DCC Submissions: queries submissions
- Staff User → Site Notifications: manages notices
- Site Notifications → Notification Records: creates and updates
- Staff User → Locker Transactions: uses locker service
- Locker Transactions → Locker Records: reads and updates
- Locker Transactions → Uniform Transactions: creates transactions
- Staff User → Locker Information: requests uniform
- Locker Information → Locker Records: selects and updates
- Locker Information → Uniform Transactions: creates transactions
- Locker Information → Locker Email: sends notification
- ESP Device API → ESP Device Records: upserts and reads
- ESP Device API → Device Logs: records status changes
- Staff User → ESD Equipment Management: manages equipment
- Staff User → Production Workflows: uses production tools
- Staff User → PCB Scan Control: scans boards
- PCB Scan Control → PCB Scan Records: checks and records
- PCB Scan Control → NG Box Records: locks failed scans
- Staff User → QAQC Workflows: runs quality workflows
- Staff User → HR Workflows: uses HR tools
