# hasyfizharfan/asic-web architecture

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

- Interactive diagram: https://gitdiagram.com/hasyfizharfan/asic-web
- Repository: https://github.com/hasyfizharfan/asic-web

## Overview

This is a Laravel seminar-management application, rather than the Laravel framework itself. The clearest implemented workflow is account registration and login: web routes dispatch to authentication handlers, which validate requests and create or authenticate accounts; registration also initializes a participant profile. Administrators can manage accounts and roles through a separate controller. Role descriptions document broader seminar capabilities—submission and review of abstracts, payment verification, attendance, and event materials—but their handlers were not sampled, so those branches are shown as documented, unverified areas rather than asserted execution paths.

Main entry points: [`app/Http/Controllers/AuthController.php`](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Controllers/AuthController.php) (Authentication), [`app/Http/Controllers/Admin/UserManagementController.php`](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Controllers/Admin/UserManagementController.php) (User management), [`routes/web.php`](https://github.com/hasyfizharfan/asic-web/blob/main/routes/web.php) (Web routes), [`database/seeders/RoleSeeder.php`](https://github.com/hasyfizharfan/asic-web/blob/main/database/seeders/RoleSeeder.php) (Role capability descriptions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_routes["Web routes<br/>[web.php]"]
end

subgraph group_identity["Identity and access"]
  node_auth["Authentication<br/>[AuthController.php]"]
  node_loginrequest["Login validation<br/>[LoginRequest.php]"]
  node_registerrequest["Registration validation"]
  node_accounts["User accounts<br/>[UserAccount.php]"]
  node_participants["Participant profiles<br/>[Participant.php]"]
  node_roles["Access roles<br/>[Role.php]"]
  node_db[("Application database")]
end

subgraph group_administration["Account administration"]
  node_adminroutes["Role middleware<br/>[CheckRole.php]"]
  node_management["User management"]
  node_storerequest["Create validation"]
  node_updaterequest["Update validation"]
end

subgraph group_seminar["Seminar operations"]
  node_abstracts["Abstract submission and review"]
  node_payments["Registration and payments"]
  node_attendance["Attendance and event materials"]
  node_rolecatalog["Role capability descriptions<br/>[RoleSeeder.php]"]
end

node_visitor(("User"))

node_visitor -->|"sends requests"| node_routes
node_routes -->|"dispatches auth"| node_auth
node_routes -->|"dispatches admin"| node_management
node_auth -->|"validates login"| node_loginrequest
node_auth -->|"validates signup"| node_registerrequest
node_auth -->|"creates and authenticates"| node_accounts
node_auth -->|"creates profile"| node_participants
node_auth -->|"assigns default role"| node_roles
node_management -->|"validates creation"| node_storerequest
node_management -->|"validates updates"| node_updaterequest
node_management -->|"manages accounts"| node_accounts
node_management -->|"manages profiles"| node_participants
node_management -->|"lists and assigns roles"| node_roles
node_accounts -.->|"persists account records"| node_db
node_participants -.->|"persists profile records"| node_db
node_roles -.->|"persists role records"| node_db
node_routes -.->|"applies role checks"| node_adminroutes
node_rolecatalog -.->|"documents capability"| node_abstracts
node_rolecatalog -.->|"documents capability"| node_payments
node_rolecatalog -.->|"documents capability"| node_attendance

click node_routes "https://github.com/hasyfizharfan/asic-web/blob/main/routes/web.php"
click node_auth "https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Controllers/AuthController.php"
click node_loginrequest "https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Requests/LoginRequest.php"
click node_registerrequest "https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Requests/RegisterRequest.php"
click node_accounts "https://github.com/hasyfizharfan/asic-web/blob/main/app/Models/UserAccount.php"
click node_participants "https://github.com/hasyfizharfan/asic-web/blob/main/app/Models/Participant.php"
click node_roles "https://github.com/hasyfizharfan/asic-web/blob/main/app/Models/Role.php"
click node_adminroutes "https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Middleware/CheckRole.php"
click node_management "https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Controllers/Admin/UserManagementController.php"
click node_storerequest "https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Requests/Admin/StoreUserRequest.php"
click node_updaterequest "https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Requests/Admin/UpdateUserRequest.php"
click node_db "https://github.com/hasyfizharfan/asic-web/tree/main/database/migrations"
click node_abstracts "https://github.com/hasyfizharfan/asic-web/tree/main/app/Http/Controllers"
click node_payments "https://github.com/hasyfizharfan/asic-web/tree/main/app/Http/Controllers"
click node_attendance "https://github.com/hasyfizharfan/asic-web/tree/main/app/Http/Controllers"
click node_rolecatalog "https://github.com/hasyfizharfan/asic-web/blob/main/database/seeders/RoleSeeder.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_visitor toneBlue
class node_auth,node_loginrequest,node_registerrequest,node_accounts,node_participants,node_roles,node_db toneAmber
class node_adminroutes,node_management,node_storerequest,node_updaterequest toneMint
class node_abstracts,node_payments,node_attendance,node_rolecatalog toneRose
```

## Components

### Web entry

- [Web routes](https://github.com/hasyfizharfan/asic-web/blob/main/routes/web.php): `routes/web.php`

### Identity and access

- [Authentication](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Controllers/AuthController.php): `app/Http/Controllers/AuthController.php`
- [Login validation](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Requests/LoginRequest.php): `app/Http/Requests/LoginRequest.php`
- [Registration validation](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Requests/RegisterRequest.php): `app/Http/Requests/RegisterRequest.php`
- [User accounts](https://github.com/hasyfizharfan/asic-web/blob/main/app/Models/UserAccount.php): `app/Models/UserAccount.php`
- [Participant profiles](https://github.com/hasyfizharfan/asic-web/blob/main/app/Models/Participant.php): `app/Models/Participant.php`
- [Access roles](https://github.com/hasyfizharfan/asic-web/blob/main/app/Models/Role.php): `app/Models/Role.php`
- [Application database](https://github.com/hasyfizharfan/asic-web/tree/main/database/migrations): `database/migrations`

### Account administration

- [Role middleware](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Middleware/CheckRole.php): `app/Http/Middleware/CheckRole.php`
- [User management](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Controllers/Admin/UserManagementController.php): `app/Http/Controllers/Admin/UserManagementController.php`
- [Create validation](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Requests/Admin/StoreUserRequest.php): `app/Http/Requests/Admin/StoreUserRequest.php`
- [Update validation](https://github.com/hasyfizharfan/asic-web/blob/main/app/Http/Requests/Admin/UpdateUserRequest.php): `app/Http/Requests/Admin/UpdateUserRequest.php`

### Seminar operations

- [Abstract submission and review](https://github.com/hasyfizharfan/asic-web/tree/main/app/Http/Controllers): `app/Http/Controllers`
- [Registration and payments](https://github.com/hasyfizharfan/asic-web/tree/main/app/Http/Controllers): `app/Http/Controllers`
- [Attendance and event materials](https://github.com/hasyfizharfan/asic-web/tree/main/app/Http/Controllers): `app/Http/Controllers`
- [Role capability descriptions](https://github.com/hasyfizharfan/asic-web/blob/main/database/seeders/RoleSeeder.php): `database/seeders/RoleSeeder.php`

### Other components

- **User**

## Connections

- User → Web routes: sends requests (evidence: `routes/web.php`)
- Web routes → Authentication: dispatches auth (evidence: `routes/web.php`)
- Web routes → User management: dispatches admin (evidence: `routes/web.php`)
- Authentication → Login validation: validates login (evidence: `app/Http/Controllers/AuthController.php`)
- Authentication → Registration validation: validates signup (evidence: `app/Http/Controllers/AuthController.php`)
- Authentication → User accounts: creates and authenticates (evidence: `app/Http/Controllers/AuthController.php`)
- Authentication → Participant profiles: creates profile (evidence: `app/Http/Controllers/AuthController.php`)
- Authentication → Access roles: assigns default role (evidence: `app/Http/Controllers/AuthController.php`)
- User management → Create validation: validates creation (evidence: `app/Http/Controllers/Admin/UserManagementController.php`)
- User management → Update validation: validates updates (evidence: `app/Http/Controllers/Admin/UserManagementController.php`)
- User management → User accounts: manages accounts (evidence: `app/Http/Controllers/Admin/UserManagementController.php`)
- User management → Participant profiles: manages profiles (evidence: `app/Http/Controllers/Admin/UserManagementController.php`)
- User management → Access roles: lists and assigns roles (evidence: `app/Http/Controllers/Admin/UserManagementController.php`)
- User accounts → Application database: persists account records
- Participant profiles → Application database: persists profile records
- Access roles → Application database: persists role records
- Web routes → Role middleware: applies role checks
- Role capability descriptions → Abstract submission and review: documents capability (evidence: `database/seeders/RoleSeeder.php`)
- Role capability descriptions → Registration and payments: documents capability (evidence: `database/seeders/RoleSeeder.php`)
- Role capability descriptions → Attendance and event materials: documents capability (evidence: `database/seeders/RoleSeeder.php`)
