# wimbo17/aplikasi-gudang architecture

> Architecture diagram of the GitHub repository wimbo17/aplikasi-gudang, 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/wimbo17/aplikasi-gudang
- Repository: https://github.com/wimbo17/aplikasi-gudang

## Overview

Aplikasi Gudang is a Laravel warehouse-management web app. Users authenticate, maintain product/category/SKU data, record inbound, outbound, and return transactions, track stock movements, perform period-based stocktakes, and view or export reports. The sampled transaction controllers explicitly create transaction items, adjust variant stock, and write stock-card entries; the sampled stocktake controller creates periods and snapshot items. Other capabilities and route wiring are documented or visible in the tree but their implementation was not sampled, so those links are kept at subsystem level.

Main entry points: [`routes/web.php`](https://github.com/wimbo17/aplikasi-gudang/blob/main/routes/web.php) (Web routes), [`resources/views/layouts/kai.blade.php`](https://github.com/wimbo17/aplikasi-gudang/blob/main/resources/views/layouts/kai.blade.php) (Web pages), [`app/Http/Controllers/TransaksiMasukController.php`](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/TransaksiMasukController.php) (Inbound transactions), [`app/Http/Controllers/TransaksiKeluarController.php`](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/TransaksiKeluarController.php) (Outbound transactions)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_access["Access and UI"]
  node_routes["Web routes<br/>[web.php]"]
  node_auth["Authentication"]
  node_users["User records<br/>[User.php]"]
  node_dashboard["Dashboard<br/>[HomeController.php]"]
  node_catalog_ui["Catalog screens<br/>[index.blade.php]"]
  node_web_views["Web pages<br/>[kai.blade.php]"]
end

subgraph group_catalog["Product catalog"]
  node_category["Categories"]
  node_products["Products and SKUs"]
  node_product_data["Product records<br/>[Produk.php]"]
  node_variant_data["Variant records<br/>[VarianProduk.php]"]
end

subgraph group_operations["Inventory operations"]
  node_inbound["Inbound transactions"]
  node_outbound["Outbound transactions"]
  node_returns["Returns"]
  node_transaction_data["Transactions and items<br/>[Transaksi.php]"]
  node_stocktake["Period stocktake"]
  node_stocktake_data["Stocktake records"]
end

subgraph group_insight["Stock and reporting"]
  node_stock_view["Stock overview"]
  node_stock_cards["Stock cards"]
  node_stock_data["Stock-card records<br/>[KartuStok.php]"]
  node_price_report["Price analysis"]
  node_reports["Transaction reports"]
  node_report_export["Excel exports"]
end

node_user(("Admin / staff"))
node_database[("MySQL database")]

node_user -->|"submits requests"| node_routes
node_routes -->|"dispatches auth"| node_auth
node_auth -->|"validates account"| node_users
node_routes -->|"dispatches dashboard"| node_dashboard
node_routes -->|"dispatches catalog"| node_category
node_routes -->|"dispatches catalog"| node_products
node_category -->|"reads and writes"| node_database
node_products -->|"reads and writes"| node_product_data
node_products -->|"manages variants"| node_variant_data
node_variant_data -->|"persists records"| node_database
node_routes -->|"dispatches inbound"| node_inbound
node_routes -->|"dispatches outbound"| node_outbound
node_routes -->|"dispatches returns"| node_returns
node_inbound -->|"creates transaction items"| node_transaction_data
node_outbound -->|"creates transaction items"| node_transaction_data
node_inbound -->|"increments stock"| node_variant_data
node_outbound -->|"decrements stock"| node_variant_data
node_inbound -->|"records movement"| node_stock_data
node_outbound -->|"records movement"| node_stock_data
node_routes -->|"dispatches stocktake"| node_stocktake
node_stocktake -->|"creates period items"| node_stocktake_data
node_stocktake -->|"snapshots variants"| node_variant_data
node_routes -->|"dispatches stock view"| node_stock_view
node_routes -->|"dispatches stock cards"| node_stock_cards
node_routes -->|"dispatches analysis"| node_price_report
node_routes -->|"dispatches reports"| node_reports
node_reports -->|"builds export"| node_report_export
node_transaction_data -->|"persists records"| node_database
node_stock_data -->|"persists movements"| node_database
node_stocktake_data -->|"persists records"| node_database
node_dashboard -->|"renders pages"| node_web_views
node_category -->|"renders pages"| node_web_views
node_products -->|"renders catalog"| node_catalog_ui
node_inbound -->|"renders transaction pages"| node_web_views
node_outbound -->|"renders transaction pages"| node_web_views
node_stocktake -->|"renders stocktake pages"| node_web_views
node_reports -->|"renders report pages"| node_web_views

click node_routes "https://github.com/wimbo17/aplikasi-gudang/blob/main/routes/web.php"
click node_auth "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/Auth/LoginController.php"
click node_users "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/User.php"
click node_dashboard "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/HomeController.php"
click node_catalog_ui "https://github.com/wimbo17/aplikasi-gudang/blob/main/resources/views/produk/index.blade.php"
click node_category "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/KategoriProdukController.php"
click node_products "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/ProdukController.php"
click node_product_data "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/Produk.php"
click node_variant_data "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/VarianProduk.php"
click node_inbound "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/TransaksiMasukController.php"
click node_outbound "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/TransaksiKeluarController.php"
click node_returns "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/TransaksiReturController.php"
click node_transaction_data "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/Transaksi.php"
click node_stocktake "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/PriodeStokOpnameController.php"
click node_stocktake_data "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/PriodeStokOpname.php"
click node_stock_view "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/StokBarangController.php"
click node_stock_cards "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/KartuStokController.php"
click node_stock_data "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/KartuStok.php"
click node_price_report "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/LaporanKenaikanHargaController.php"
click node_reports "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/ExportLaporanTransaksiController.php"
click node_report_export "https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Exports/ExportBasicLaporanTransaksi.php"
click node_web_views "https://github.com/wimbo17/aplikasi-gudang/blob/main/resources/views/layouts/kai.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_routes,node_auth,node_users,node_dashboard,node_catalog_ui,node_web_views toneBlue
class node_category,node_products,node_product_data,node_variant_data,node_database toneAmber
class node_inbound,node_outbound,node_returns,node_transaction_data,node_stocktake,node_stocktake_data toneMint
class node_stock_view,node_stock_cards,node_stock_data,node_price_report,node_reports,node_report_export toneRose
class node_user toneIndigo
```

## Components

### Access and UI

- [Web routes](https://github.com/wimbo17/aplikasi-gudang/blob/main/routes/web.php): `routes/web.php`
- [Authentication](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/Auth/LoginController.php): `app/Http/Controllers/Auth/LoginController.php`
- [User records](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/User.php): `app/Models/User.php`
- [Dashboard](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/HomeController.php): `app/Http/Controllers/HomeController.php`
- [Catalog screens](https://github.com/wimbo17/aplikasi-gudang/blob/main/resources/views/produk/index.blade.php): `resources/views/produk/index.blade.php`
- [Web pages](https://github.com/wimbo17/aplikasi-gudang/blob/main/resources/views/layouts/kai.blade.php): `resources/views/layouts/kai.blade.php`

### Product catalog

- [Categories](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/KategoriProdukController.php): `app/Http/Controllers/KategoriProdukController.php`
- [Products and SKUs](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/ProdukController.php): `app/Http/Controllers/ProdukController.php`
- [Product records](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/Produk.php): `app/Models/Produk.php`
- [Variant records](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/VarianProduk.php): `app/Models/VarianProduk.php`

### Inventory operations

- [Inbound transactions](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/TransaksiMasukController.php): `app/Http/Controllers/TransaksiMasukController.php`
- [Outbound transactions](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/TransaksiKeluarController.php): `app/Http/Controllers/TransaksiKeluarController.php`
- [Returns](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/TransaksiReturController.php): `app/Http/Controllers/TransaksiReturController.php`
- [Transactions and items](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/Transaksi.php): `app/Models/Transaksi.php`
- [Period stocktake](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/PriodeStokOpnameController.php): `app/Http/Controllers/PriodeStokOpnameController.php`
- [Stocktake records](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/PriodeStokOpname.php): `app/Models/PriodeStokOpname.php`

### Stock and reporting

- [Stock overview](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/StokBarangController.php): `app/Http/Controllers/StokBarangController.php`
- [Stock cards](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/KartuStokController.php): `app/Http/Controllers/KartuStokController.php`
- [Stock-card records](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Models/KartuStok.php): `app/Models/KartuStok.php`
- [Price analysis](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/LaporanKenaikanHargaController.php): `app/Http/Controllers/LaporanKenaikanHargaController.php`
- [Transaction reports](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Http/Controllers/ExportLaporanTransaksiController.php): `app/Http/Controllers/ExportLaporanTransaksiController.php`
- [Excel exports](https://github.com/wimbo17/aplikasi-gudang/blob/main/app/Exports/ExportBasicLaporanTransaksi.php): `app/Exports/ExportBasicLaporanTransaksi.php`

### Other components

- **Admin / staff**
- **MySQL database**

## Connections

- Admin / staff → Web routes: submits requests
- Web routes → Authentication: dispatches auth
- Authentication → User records: validates account
- Web routes → Dashboard: dispatches dashboard
- Web routes → Categories: dispatches catalog
- Web routes → Products and SKUs: dispatches catalog
- Categories → MySQL database: reads and writes
- Products and SKUs → Product records: reads and writes
- Products and SKUs → Variant records: manages variants
- Variant records → MySQL database: persists records
- Web routes → Inbound transactions: dispatches inbound
- Web routes → Outbound transactions: dispatches outbound
- Web routes → Returns: dispatches returns
- Inbound transactions → Transactions and items: creates transaction items
- Outbound transactions → Transactions and items: creates transaction items
- Inbound transactions → Variant records: increments stock
- Outbound transactions → Variant records: decrements stock
- Inbound transactions → Stock-card records: records movement
- Outbound transactions → Stock-card records: records movement
- Web routes → Period stocktake: dispatches stocktake
- Period stocktake → Stocktake records: creates period items
- Period stocktake → Variant records: snapshots variants
- Web routes → Stock overview: dispatches stock view
- Web routes → Stock cards: dispatches stock cards
- Web routes → Price analysis: dispatches analysis
- Web routes → Transaction reports: dispatches reports
- Transaction reports → Excel exports: builds export
- Transactions and items → MySQL database: persists records
- Stock-card records → MySQL database: persists movements
- Stocktake records → MySQL database: persists records
- Dashboard → Web pages: renders pages
- Categories → Web pages: renders pages
- Products and SKUs → Catalog screens: renders catalog
- Inbound transactions → Web pages: renders transaction pages
- Outbound transactions → Web pages: renders transaction pages
- Period stocktake → Web pages: renders stocktake pages
- Transaction reports → Web pages: renders report pages
