# neechko/project-website-misidosi architecture

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

- Interactive diagram: https://gitdiagram.com/neechko/project-website-misidosi
- Repository: https://github.com/neechko/project-website-misidosi

## Overview

This is a Laravel donation-management web application: donors can browse donation opportunities and submit donation details and proof of payment; administrators manage donation campaigns and validate incoming donations. The sampled controllers show validation, model persistence, file uploads, and rendered views. The tree also indicates login, validation-history, and reporting screens, but their implementation and route wiring were not sampled, so those links are not inferred.

Main entry points: [`app/Http/Controllers/DonasiController.php`](https://github.com/neechko/project-website-misidosi/blob/master/app/Http/Controllers/DonasiController.php) (Campaign management), [`app/Http/Controllers/DonasiMasukController.php`](https://github.com/neechko/project-website-misidosi/blob/master/app/Http/Controllers/DonasiMasukController.php) (Incoming donations), [`app/Models/DonasiMasuk.php`](https://github.com/neechko/project-website-misidosi/blob/master/app/Models/DonasiMasuk.php) (Incoming donation model), [`app/Models/Donasi.php`](https://github.com/neechko/project-website-misidosi/blob/master/app/Models/Donasi.php) (Campaign model)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Web entry"]
  node_routes["Web routes<br/>[web.php]"]
  node_login_controller["Login handling"]
  node_login_view["Admin login"]
end

subgraph group_donor["Donor workflow"]
  node_donor_controller["Incoming donations"]
  node_donor_home["Donor home"]
  node_donor_form["Donation form"]
end

subgraph group_admin["Admin workflow"]
  node_admin_campaigns["Campaign management"]
  node_admin_home["Admin dashboard"]
  node_campaign_create["Create campaign"]
  node_campaign_edit["Edit campaign"]
  node_validation_views["Validation screens<br/>[validasi.blade.php]"]
  node_unvalidated_view["Unvalidated list"]
  node_history_view["Validation history"]
  node_reports_view["Donation report"]
end

subgraph group_data["Data and storage"]
  node_campaign_model["Campaign model<br/>[Donasi.php]"]
  node_incoming_model["Incoming donation model<br/>[DonasiMasuk.php]"]
  node_database[("Relational database<br/>[database.php]")]
  node_public_storage["Public file storage<br/>[filesystems.php]"]
end

node_browser(("Donor or admin"))

node_browser -->|"sends requests"| node_routes
node_donor_controller -->|"renders"| node_donor_home
node_donor_controller -->|"renders"| node_donor_form
node_donor_controller -->|"reads and saves"| node_incoming_model
node_donor_controller -->|"stores proof"| node_public_storage
node_admin_campaigns -->|"renders"| node_admin_home
node_admin_campaigns -->|"renders"| node_campaign_create
node_admin_campaigns -->|"renders"| node_campaign_edit
node_admin_campaigns -->|"reads and writes"| node_campaign_model
node_admin_campaigns -->|"truncates on delete"| node_incoming_model
node_admin_campaigns -->|"stores images"| node_public_storage
node_incoming_model -->|"persists records"| node_database
node_campaign_model -->|"persists records"| node_database

click node_routes "https://github.com/neechko/project-website-misidosi/blob/master/routes/web.php"
click node_donor_controller "https://github.com/neechko/project-website-misidosi/blob/master/app/Http/Controllers/DonasiMasukController.php"
click node_donor_home "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/donatur/beranda-donatur.blade.php"
click node_donor_form "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/donatur/form-donasi.blade.php"
click node_admin_campaigns "https://github.com/neechko/project-website-misidosi/blob/master/app/Http/Controllers/DonasiController.php"
click node_admin_home "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/beranda-admin.blade.php"
click node_campaign_create "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/create-donasi.blade.php"
click node_campaign_edit "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/edit-donasi.blade.php"
click node_validation_views "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/validasi.blade.php"
click node_unvalidated_view "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/belum-valid.blade.php"
click node_history_view "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/validasi-history.blade.php"
click node_reports_view "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/laporan-donasi.blade.php"
click node_login_controller "https://github.com/neechko/project-website-misidosi/blob/master/app/Http/Controllers/LoginController.php"
click node_login_view "https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/login-admin.blade.php"
click node_campaign_model "https://github.com/neechko/project-website-misidosi/blob/master/app/Models/Donasi.php"
click node_incoming_model "https://github.com/neechko/project-website-misidosi/blob/master/app/Models/DonasiMasuk.php"
click node_database "https://github.com/neechko/project-website-misidosi/blob/master/config/database.php"
click node_public_storage "https://github.com/neechko/project-website-misidosi/blob/master/config/filesystems.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_login_controller,node_login_view toneBlue
class node_donor_controller,node_donor_home,node_donor_form toneAmber
class node_admin_campaigns,node_admin_home,node_campaign_create,node_campaign_edit,node_validation_views,node_unvalidated_view,node_history_view,node_reports_view toneMint
class node_campaign_model,node_incoming_model,node_database,node_public_storage toneRose
class node_browser toneIndigo
```

## Components

### Web entry

- [Web routes](https://github.com/neechko/project-website-misidosi/blob/master/routes/web.php): `routes/web.php`
- [Login handling](https://github.com/neechko/project-website-misidosi/blob/master/app/Http/Controllers/LoginController.php): `app/Http/Controllers/LoginController.php`
- [Admin login](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/login-admin.blade.php): `resources/views/admin/login-admin.blade.php`

### Donor workflow

- [Incoming donations](https://github.com/neechko/project-website-misidosi/blob/master/app/Http/Controllers/DonasiMasukController.php): `app/Http/Controllers/DonasiMasukController.php`
- [Donor home](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/donatur/beranda-donatur.blade.php): `resources/views/donatur/beranda-donatur.blade.php`
- [Donation form](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/donatur/form-donasi.blade.php): `resources/views/donatur/form-donasi.blade.php`

### Admin workflow

- [Campaign management](https://github.com/neechko/project-website-misidosi/blob/master/app/Http/Controllers/DonasiController.php): `app/Http/Controllers/DonasiController.php`
- [Admin dashboard](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/beranda-admin.blade.php): `resources/views/admin/beranda-admin.blade.php`
- [Create campaign](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/create-donasi.blade.php): `resources/views/admin/create-donasi.blade.php`
- [Edit campaign](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/edit-donasi.blade.php): `resources/views/admin/edit-donasi.blade.php`
- [Validation screens](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/validasi.blade.php): `resources/views/admin/validasi.blade.php`
- [Unvalidated list](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/belum-valid.blade.php): `resources/views/admin/belum-valid.blade.php`
- [Validation history](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/validasi-history.blade.php): `resources/views/admin/validasi-history.blade.php`
- [Donation report](https://github.com/neechko/project-website-misidosi/blob/master/resources/views/admin/laporan-donasi.blade.php): `resources/views/admin/laporan-donasi.blade.php`

### Data and storage

- [Campaign model](https://github.com/neechko/project-website-misidosi/blob/master/app/Models/Donasi.php): `app/Models/Donasi.php`
- [Incoming donation model](https://github.com/neechko/project-website-misidosi/blob/master/app/Models/DonasiMasuk.php): `app/Models/DonasiMasuk.php`
- [Relational database](https://github.com/neechko/project-website-misidosi/blob/master/config/database.php): `config/database.php`
- [Public file storage](https://github.com/neechko/project-website-misidosi/blob/master/config/filesystems.php): `config/filesystems.php`

### Other components

- **Donor or admin**

## Connections

- Donor or admin → Web routes: sends requests
- Incoming donations → Donor home: renders
- Incoming donations → Donation form: renders
- Incoming donations → Incoming donation model: reads and saves
- Incoming donations → Public file storage: stores proof
- Campaign management → Admin dashboard: renders
- Campaign management → Create campaign: renders
- Campaign management → Edit campaign: renders
- Campaign management → Campaign model: reads and writes
- Campaign management → Incoming donation model: truncates on delete
- Campaign management → Public file storage: stores images
- Incoming donation model → Relational database: persists records
- Campaign model → Relational database: persists records
