# eireynovoispurba/proyekweb architecture

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

- Interactive diagram: https://gitdiagram.com/eireynovoispurba/proyekweb
- Repository: https://github.com/eireynovoispurba/proyekweb

## Overview

This is a Laravel web application for managing institutional archives, archive personnel, and news, with public pages and authenticated administrative workflows. Users enter through web routes; controllers validate requests, apply role gates where shown, and render Blade views or update models and uploaded files. Archive and personnel imports use Excel import classes. The sampled sources support these domain links; route details and several controller implementations were not sampled, so their internal wiring is represented only at the subsystem level.

Main entry points: [`app/Http/Controllers/ArsipController.php`](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/ArsipController.php) (Archive Controller), [`routes/web.php`](https://github.com/eireynovoispurba/proyekweb/blob/main/routes/web.php) (Web Routes), [`app/Http/Controllers/ArsiparisController.php`](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/ArsiparisController.php) (Personnel Controller), [`app/Http/Controllers/BeritaController.php`](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/BeritaController.php) (News Controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_archive["Archive Management"]
  node_archive_ctrl["Archive Controller"]
  node_archive_import["Archive Import<br/>[ArsipImport.php]"]
  node_archive_model["Archive Records<br/>[Arsip.php]"]
  node_archive_views["Archive Admin Views<br/>[index.blade.php]"]
  node_archive_files["Archive Attachments"]
end

subgraph group_people["People and Access"]
  node_staff_ctrl["Personnel Controller"]
  node_staff_import["Personnel Import"]
  node_staff_model["Personnel Records<br/>[Arsiparis.php]"]
  node_staff_views["Personnel Admin Views<br/>[index.blade.php]"]
  node_auth["Authentication"]
  node_users["User Accounts<br/>[User.php]"]
  node_access["Role Gates"]
end

subgraph group_publishing["News Publishing"]
  node_news_ctrl["News Controller"]
  node_news_model["News Records<br/>[Berita.php]"]
  node_news_views["News Pages<br/>[index.blade.php]"]
end

subgraph group_web["Web Presentation"]
  node_public_pages["Public Pages<br/>[HomeController.php]"]
  node_public_views["Public Templates<br/>[home.blade.php]"]
end

subgraph group_runtime["Application Runtime"]
  node_entry["HTTP Entry<br/>[index.php]"]
  node_routes["Web Routes<br/>[web.php]"]
  node_db[("Application Database")]
  node_file_store[("Public File Storage")]
end

node_visitor(("Visitor / Staff"))

node_visitor -->|"sends request"| node_entry
node_entry -->|"dispatches"| node_routes
node_routes -->|"routes requests"| node_archive_ctrl
node_routes -->|"routes requests"| node_staff_ctrl
node_routes -->|"routes requests"| node_auth
node_routes -->|"routes requests"| node_news_ctrl
node_routes -->|"routes requests"| node_public_pages
node_archive_ctrl -->|"reads and writes"| node_archive_model
node_archive_ctrl -->|"invokes import"| node_archive_import
node_archive_ctrl -->|"renders"| node_archive_views
node_archive_ctrl -->|"manages uploads"| node_archive_files
node_archive_ctrl -->|"checks permissions"| node_access
node_archive_import -->|"imports records"| node_archive_model
node_archive_model -->|"persists"| node_db
node_staff_ctrl -->|"reads and writes"| node_staff_model
node_staff_ctrl -->|"invokes import"| node_staff_import
node_staff_ctrl -->|"renders"| node_staff_views
node_staff_import -->|"imports records"| node_staff_model
node_staff_model -->|"persists"| node_db
node_auth -->|"authenticates"| node_users
node_users -->|"persists"| node_db
node_news_ctrl -->|"reads and writes"| node_news_model
node_news_ctrl -->|"renders"| node_news_views
node_news_ctrl -->|"stores images"| node_file_store
node_news_model -->|"persists"| node_db
node_public_pages -->|"reads news"| node_news_model
node_public_pages -->|"renders"| node_public_views

click node_entry "https://github.com/eireynovoispurba/proyekweb/blob/main/public/index.php"
click node_routes "https://github.com/eireynovoispurba/proyekweb/blob/main/routes/web.php"
click node_archive_ctrl "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/ArsipController.php"
click node_archive_import "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Imports/ArsipImport.php"
click node_archive_model "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Models/Arsip.php"
click node_archive_views "https://github.com/eireynovoispurba/proyekweb/blob/main/resources/views/admin/arsip/index.blade.php"
click node_archive_files "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/ArsipController.php"
click node_staff_ctrl "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/ArsiparisController.php"
click node_staff_import "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Imports/ArsiparisImport.php"
click node_staff_model "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Models/Arsiparis.php"
click node_staff_views "https://github.com/eireynovoispurba/proyekweb/blob/main/resources/views/admin/arsiparis/index.blade.php"
click node_auth "https://github.com/eireynovoispurba/proyekweb/tree/main/app/Http/Controllers/Auth"
click node_users "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Models/User.php"
click node_access "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Providers/AppServiceProvider.php"
click node_news_ctrl "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/BeritaController.php"
click node_news_model "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Models/Berita.php"
click node_news_views "https://github.com/eireynovoispurba/proyekweb/blob/main/resources/views/admin/berita/index.blade.php"
click node_public_pages "https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/HomeController.php"
click node_public_views "https://github.com/eireynovoispurba/proyekweb/blob/main/resources/views/home.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_archive_ctrl,node_archive_import,node_archive_model,node_archive_views,node_archive_files toneBlue
class node_staff_ctrl,node_staff_import,node_staff_model,node_staff_views,node_auth,node_users,node_access toneAmber
class node_news_ctrl,node_news_model,node_news_views toneMint
class node_public_pages,node_public_views toneRose
class node_entry,node_routes,node_db,node_file_store,node_visitor toneIndigo
```

## Components

### Archive Management

- [Archive Controller](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/ArsipController.php): `app/Http/Controllers/ArsipController.php`
- [Archive Import](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Imports/ArsipImport.php): `app/Imports/ArsipImport.php`
- [Archive Records](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Models/Arsip.php): `app/Models/Arsip.php`
- [Archive Admin Views](https://github.com/eireynovoispurba/proyekweb/blob/main/resources/views/admin/arsip/index.blade.php): `resources/views/admin/arsip/index.blade.php`
- [Archive Attachments](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/ArsipController.php): `app/Http/Controllers/ArsipController.php`

### People and Access

- [Personnel Controller](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/ArsiparisController.php): `app/Http/Controllers/ArsiparisController.php`
- [Personnel Import](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Imports/ArsiparisImport.php): `app/Imports/ArsiparisImport.php`
- [Personnel Records](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Models/Arsiparis.php): `app/Models/Arsiparis.php`
- [Personnel Admin Views](https://github.com/eireynovoispurba/proyekweb/blob/main/resources/views/admin/arsiparis/index.blade.php): `resources/views/admin/arsiparis/index.blade.php`
- [Authentication](https://github.com/eireynovoispurba/proyekweb/tree/main/app/Http/Controllers/Auth): `app/Http/Controllers/Auth`
- [User Accounts](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Models/User.php): `app/Models/User.php`
- [Role Gates](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Providers/AppServiceProvider.php): `app/Providers/AppServiceProvider.php`

### News Publishing

- [News Controller](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/BeritaController.php): `app/Http/Controllers/BeritaController.php`
- [News Records](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Models/Berita.php): `app/Models/Berita.php`
- [News Pages](https://github.com/eireynovoispurba/proyekweb/blob/main/resources/views/admin/berita/index.blade.php): `resources/views/admin/berita/index.blade.php`

### Web Presentation

- [Public Pages](https://github.com/eireynovoispurba/proyekweb/blob/main/app/Http/Controllers/HomeController.php): `app/Http/Controllers/HomeController.php`
- [Public Templates](https://github.com/eireynovoispurba/proyekweb/blob/main/resources/views/home.blade.php): `resources/views/home.blade.php`

### Application Runtime

- [HTTP Entry](https://github.com/eireynovoispurba/proyekweb/blob/main/public/index.php): `public/index.php`
- [Web Routes](https://github.com/eireynovoispurba/proyekweb/blob/main/routes/web.php): `routes/web.php`
- **Application Database**
- **Public File Storage**

### Other components

- **Visitor / Staff**

## Connections

- Visitor / Staff → HTTP Entry: sends request
- HTTP Entry → Web Routes: dispatches
- Web Routes → Archive Controller: routes requests
- Web Routes → Personnel Controller: routes requests
- Web Routes → Authentication: routes requests
- Web Routes → News Controller: routes requests
- Web Routes → Public Pages: routes requests
- Archive Controller → Archive Records: reads and writes
- Archive Controller → Archive Import: invokes import
- Archive Controller → Archive Admin Views: renders
- Archive Controller → Archive Attachments: manages uploads
- Archive Controller → Role Gates: checks permissions
- Archive Import → Archive Records: imports records
- Archive Records → Application Database: persists
- Personnel Controller → Personnel Records: reads and writes
- Personnel Controller → Personnel Import: invokes import
- Personnel Controller → Personnel Admin Views: renders
- Personnel Import → Personnel Records: imports records
- Personnel Records → Application Database: persists
- Authentication → User Accounts: authenticates
- User Accounts → Application Database: persists
- News Controller → News Records: reads and writes
- News Controller → News Pages: renders
- News Controller → Public File Storage: stores images
- News Records → Application Database: persists
- Public Pages → News Records: reads news
- Public Pages → Public Templates: renders
