# djambred/isoc-2026 architecture

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

- Interactive diagram: https://gitdiagram.com/djambred/isoc-2026
- Repository: https://github.com/djambred/isoc-2026

## Overview

This Laravel application serves the ISOC Indonesia Jakarta Chapter website and event program. The main participant workflow is to browse an event, register, access the participant portal, verify attendance, and obtain a certificate. Site pages and editable content, event operations, participant services, and administration are distinct product areas. Sampled controllers show registration, portal, and certificate behavior; the tree identifies broader Filament administration and public pages. Routes and most admin implementations were not sampled, so their detailed wiring is omitted.

Main entry points: [`src/app/Http/Controllers/EventRegistrationController.php`](https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/EventRegistrationController.php) (Event registration), [`src/app/Http/Controllers/ParticipantPortalController.php`](https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/ParticipantPortalController.php) (Participant portal), [`src/app/Http/Controllers/CertificateController.php`](https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/CertificateController.php) (Certificates), [`src/app/Models/EventRegistration.php`](https://github.com/djambred/isoc-2026/blob/main/src/app/Models/EventRegistration.php) (Registration records)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_public["Public site"]
  node_pages["Public pages<br/>[PageController.php]"]
  node_public_views["Public views"]
  node_layout["Shared layout<br/>[app.blade.php]"]
end

subgraph group_events["Event participation"]
  node_registration["Event registration"]
  node_portal["Participant portal"]
  node_certificates["Certificates"]
  node_attendance["Attendance operations"]
  node_event_views["Registration and portal views"]
  node_certificate_views["Certificate templates"]
end

subgraph group_admin["Administration"]
  node_admin_events["Event management<br/>[EventResource.php]"]
  node_admin_registrations["Registration management"]
  node_admin_content["Content management"]
  node_admin_settings["Site settings"]
end

subgraph group_data["Application data"]
  node_event_model["Event records<br/>[Event.php]"]
  node_registration_model["Registration records"]
  node_settings_model["Site settings data<br/>[SiteSetting.php]"]
  node_database[("Relational database<br/>[database.php]")]
  node_file_storage[("Public file storage")]
end

node_visitor(("Visitor or participant"))
node_pdf["PDF renderer"]

node_visitor -->|"requests pages"| node_pages
node_pages -->|"renders pages"| node_public_views
node_visitor -->|"submits registration"| node_registration
node_registration -->|"checks event"| node_event_model
node_registration -->|"creates or reads"| node_registration_model
node_registration -->|"reads settings"| node_settings_model
node_registration -->|"renders responses"| node_event_views
node_visitor -->|"uses portal"| node_portal
node_portal -->|"reads and updates"| node_registration_model
node_portal -->|"renders portal"| node_event_views
node_portal -->|"downloads certificate"| node_file_storage
node_visitor -->|"requests certificate"| node_certificates
node_certificates -->|"loads registration"| node_registration_model
node_certificates -->|"renders PDF"| node_pdf
node_certificates -->|"renders template"| node_certificate_views
node_visitor -->|"requests attendance"| node_attendance
node_event_model -->|"persists through ORM"| node_database
node_registration_model -->|"persists through ORM"| node_database
node_settings_model -->|"persists through ORM"| node_database

click node_pages "https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/PageController.php"
click node_public_views "https://github.com/djambred/isoc-2026/tree/main/src/resources/views/pages"
click node_layout "https://github.com/djambred/isoc-2026/blob/main/src/resources/views/layouts/app.blade.php"
click node_registration "https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/EventRegistrationController.php"
click node_portal "https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/ParticipantPortalController.php"
click node_certificates "https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/CertificateController.php"
click node_attendance "https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/AttendanceController.php"
click node_event_views "https://github.com/djambred/isoc-2026/tree/main/src/resources/views/pages"
click node_certificate_views "https://github.com/djambred/isoc-2026/tree/main/src/resources/views/certificates"
click node_admin_events "https://github.com/djambred/isoc-2026/blob/main/src/app/Filament/Admin/Resources/EventResource.php"
click node_admin_registrations "https://github.com/djambred/isoc-2026/blob/main/src/app/Filament/Admin/Resources/EventRegistrationResource.php"
click node_admin_content "https://github.com/djambred/isoc-2026/blob/main/src/app/Filament/Admin/Resources/SectionResource.php"
click node_admin_settings "https://github.com/djambred/isoc-2026/blob/main/src/app/Filament/Admin/Resources/SiteSettingResource.php"
click node_event_model "https://github.com/djambred/isoc-2026/blob/main/src/app/Models/Event.php"
click node_registration_model "https://github.com/djambred/isoc-2026/blob/main/src/app/Models/EventRegistration.php"
click node_settings_model "https://github.com/djambred/isoc-2026/blob/main/src/app/Models/SiteSetting.php"
click node_database "https://github.com/djambred/isoc-2026/blob/main/src/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_pages,node_public_views,node_layout toneBlue
class node_registration,node_portal,node_certificates,node_attendance,node_event_views,node_certificate_views toneAmber
class node_admin_events,node_admin_registrations,node_admin_content,node_admin_settings toneMint
class node_event_model,node_registration_model,node_settings_model,node_database,node_file_storage toneRose
class node_visitor,node_pdf toneIndigo
```

## Components

### Public site

- [Public pages](https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/PageController.php): `src/app/Http/Controllers/PageController.php`
- [Public views](https://github.com/djambred/isoc-2026/tree/main/src/resources/views/pages): `src/resources/views/pages`
- [Shared layout](https://github.com/djambred/isoc-2026/blob/main/src/resources/views/layouts/app.blade.php): `src/resources/views/layouts/app.blade.php`

### Event participation

- [Event registration](https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/EventRegistrationController.php): `src/app/Http/Controllers/EventRegistrationController.php`
- [Participant portal](https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/ParticipantPortalController.php): `src/app/Http/Controllers/ParticipantPortalController.php`
- [Certificates](https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/CertificateController.php): `src/app/Http/Controllers/CertificateController.php`
- [Attendance operations](https://github.com/djambred/isoc-2026/blob/main/src/app/Http/Controllers/AttendanceController.php): `src/app/Http/Controllers/AttendanceController.php`
- [Registration and portal views](https://github.com/djambred/isoc-2026/tree/main/src/resources/views/pages): `src/resources/views/pages`
- [Certificate templates](https://github.com/djambred/isoc-2026/tree/main/src/resources/views/certificates): `src/resources/views/certificates`

### Administration

- [Event management](https://github.com/djambred/isoc-2026/blob/main/src/app/Filament/Admin/Resources/EventResource.php): `src/app/Filament/Admin/Resources/EventResource.php`
- [Registration management](https://github.com/djambred/isoc-2026/blob/main/src/app/Filament/Admin/Resources/EventRegistrationResource.php): `src/app/Filament/Admin/Resources/EventRegistrationResource.php`
- [Content management](https://github.com/djambred/isoc-2026/blob/main/src/app/Filament/Admin/Resources/SectionResource.php): `src/app/Filament/Admin/Resources/SectionResource.php`
- [Site settings](https://github.com/djambred/isoc-2026/blob/main/src/app/Filament/Admin/Resources/SiteSettingResource.php): `src/app/Filament/Admin/Resources/SiteSettingResource.php`

### Application data

- [Event records](https://github.com/djambred/isoc-2026/blob/main/src/app/Models/Event.php): `src/app/Models/Event.php`
- [Registration records](https://github.com/djambred/isoc-2026/blob/main/src/app/Models/EventRegistration.php): `src/app/Models/EventRegistration.php`
- [Site settings data](https://github.com/djambred/isoc-2026/blob/main/src/app/Models/SiteSetting.php): `src/app/Models/SiteSetting.php`
- [Relational database](https://github.com/djambred/isoc-2026/blob/main/src/config/database.php): `src/config/database.php`
- **Public file storage**

### Other components

- **Visitor or participant**
- **PDF renderer**

## Connections

- Visitor or participant → Public pages: requests pages
- Public pages → Public views: renders pages
- Visitor or participant → Event registration: submits registration
- Event registration → Event records: checks event
- Event registration → Registration records: creates or reads
- Event registration → Site settings data: reads settings
- Event registration → Registration and portal views: renders responses
- Visitor or participant → Participant portal: uses portal
- Participant portal → Registration records: reads and updates
- Participant portal → Registration and portal views: renders portal
- Participant portal → Public file storage: downloads certificate
- Visitor or participant → Certificates: requests certificate
- Certificates → Registration records: loads registration
- Certificates → PDF renderer: renders PDF
- Certificates → Certificate templates: renders template
- Visitor or participant → Attendance operations: requests attendance
- Event records → Relational database: persists through ORM
- Registration records → Relational database: persists through ORM
- Site settings data → Relational database: persists through ORM
