# habibi-source/manajemen_buku architecture

> Architecture diagram of the GitHub repository habibi-source/manajemen_buku, 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/habibi-source/manajemen_buku
- Repository: https://github.com/habibi-source/manajemen_buku

## Overview

This is a Laravel web application for managing a book catalog and its categories and publishers. A browser request enters through Laravel’s front controller, is bootstrapped with the web routes, and reaches resource controllers that validate submissions, use Eloquent models for catalog data, and return Blade views or redirects. The book workflow also loads category and publisher choices. The route file and several models are listed but not sampled, so route-to-controller dispatch and model-to-database behavior are shown only at the framework boundary; no other Laravel starter capabilities are attributed to this app.

Main entry points: [`app/Http/Controllers/BukuController.php`](https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/BukuController.php) (Book controller), [`routes/web.php`](https://github.com/habibi-source/manajemen_buku/blob/main/routes/web.php) (Web routes), [`app/Http/Controllers/KategoriController.php`](https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/KategoriController.php) (Category controller), [`app/Http/Controllers/PenerbitController.php`](https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/PenerbitController.php) (Publisher controller)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry and views"]
  node_front["HTTP entry<br/>[index.php]"]
  node_bootstrap["App bootstrap<br/>[app.php]"]
  node_routes["Web routes<br/>[web.php]"]
  node_buku_views["Book views<br/>[index.blade.php]"]
  node_kategori_views["Category views<br/>[index.blade.php]"]
  node_penerbit_views["Publisher views<br/>[index.blade.php]"]
end

subgraph group_catalog["Catalog workflows"]
  node_buku_controller["Book controller<br/>[BukuController.php]"]
  node_kategori_controller["Category controller"]
  node_penerbit_controller["Publisher controller"]
end

subgraph group_data["Catalog data"]
  node_buku_model["Book model<br/>[Buku.php]"]
  node_kategori_model["Category model<br/>[Kategori.php]"]
  node_penerbit_model["Publisher model<br/>[Penerbit.php]"]
  node_database[("Configured database<br/>[database.php]")]
end

node_browser(("Browser"))

node_browser -->|"sends request"| node_front
node_front -->|"boots app"| node_bootstrap
node_bootstrap -->|"loads routes"| node_routes
node_routes -->|"dispatches"| node_buku_controller
node_routes -->|"dispatches"| node_kategori_controller
node_routes -->|"dispatches"| node_penerbit_controller
node_buku_controller -->|"queries and writes"| node_buku_model
node_buku_controller -->|"loads choices"| node_kategori_model
node_buku_controller -->|"loads choices"| node_penerbit_model
node_kategori_controller -->|"queries and writes"| node_kategori_model
node_penerbit_controller -->|"queries and writes"| node_penerbit_model
node_buku_controller -->|"renders"| node_buku_views
node_kategori_controller -->|"renders"| node_kategori_views
node_penerbit_controller -->|"renders"| node_penerbit_views
node_buku_model -->|"persists via ORM"| node_database
node_kategori_model -->|"persists via ORM"| node_database
node_penerbit_model -->|"persists via ORM"| node_database

click node_front "https://github.com/habibi-source/manajemen_buku/blob/main/public/index.php"
click node_bootstrap "https://github.com/habibi-source/manajemen_buku/blob/main/bootstrap/app.php"
click node_routes "https://github.com/habibi-source/manajemen_buku/blob/main/routes/web.php"
click node_buku_views "https://github.com/habibi-source/manajemen_buku/blob/main/resources/views/buku/index.blade.php"
click node_kategori_views "https://github.com/habibi-source/manajemen_buku/blob/main/resources/views/kategori/index.blade.php"
click node_penerbit_views "https://github.com/habibi-source/manajemen_buku/blob/main/resources/views/penerbit/index.blade.php"
click node_buku_controller "https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/BukuController.php"
click node_kategori_controller "https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/KategoriController.php"
click node_penerbit_controller "https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/PenerbitController.php"
click node_buku_model "https://github.com/habibi-source/manajemen_buku/blob/main/app/Models/Buku.php"
click node_kategori_model "https://github.com/habibi-source/manajemen_buku/blob/main/app/Models/Kategori.php"
click node_penerbit_model "https://github.com/habibi-source/manajemen_buku/blob/main/app/Models/Penerbit.php"
click node_database "https://github.com/habibi-source/manajemen_buku/blob/main/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_front,node_bootstrap,node_routes,node_buku_views,node_kategori_views,node_penerbit_views,node_browser toneBlue
class node_buku_controller,node_kategori_controller,node_penerbit_controller toneAmber
class node_buku_model,node_kategori_model,node_penerbit_model,node_database toneMint
```

## Components

### Web entry and views

- [HTTP entry](https://github.com/habibi-source/manajemen_buku/blob/main/public/index.php): `public/index.php`
- [App bootstrap](https://github.com/habibi-source/manajemen_buku/blob/main/bootstrap/app.php): `bootstrap/app.php`
- [Web routes](https://github.com/habibi-source/manajemen_buku/blob/main/routes/web.php): `routes/web.php`
- [Book views](https://github.com/habibi-source/manajemen_buku/blob/main/resources/views/buku/index.blade.php): `resources/views/buku/index.blade.php`
- [Category views](https://github.com/habibi-source/manajemen_buku/blob/main/resources/views/kategori/index.blade.php): `resources/views/kategori/index.blade.php`
- [Publisher views](https://github.com/habibi-source/manajemen_buku/blob/main/resources/views/penerbit/index.blade.php): `resources/views/penerbit/index.blade.php`

### Catalog workflows

- [Book controller](https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/BukuController.php): `app/Http/Controllers/BukuController.php`
- [Category controller](https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/KategoriController.php): `app/Http/Controllers/KategoriController.php`
- [Publisher controller](https://github.com/habibi-source/manajemen_buku/blob/main/app/Http/Controllers/PenerbitController.php): `app/Http/Controllers/PenerbitController.php`

### Catalog data

- [Book model](https://github.com/habibi-source/manajemen_buku/blob/main/app/Models/Buku.php): `app/Models/Buku.php`
- [Category model](https://github.com/habibi-source/manajemen_buku/blob/main/app/Models/Kategori.php): `app/Models/Kategori.php`
- [Publisher model](https://github.com/habibi-source/manajemen_buku/blob/main/app/Models/Penerbit.php): `app/Models/Penerbit.php`
- [Configured database](https://github.com/habibi-source/manajemen_buku/blob/main/config/database.php): `config/database.php`

### Other components

- **Browser**

## Connections

- Browser → HTTP entry: sends request
- HTTP entry → App bootstrap: boots app
- App bootstrap → Web routes: loads routes
- Web routes → Book controller: dispatches
- Web routes → Category controller: dispatches
- Web routes → Publisher controller: dispatches
- Book controller → Book model: queries and writes
- Book controller → Category model: loads choices
- Book controller → Publisher model: loads choices
- Category controller → Category model: queries and writes
- Publisher controller → Publisher model: queries and writes
- Book controller → Book views: renders
- Category controller → Category views: renders
- Publisher controller → Publisher views: renders
- Book model → Configured database: persists via ORM
- Category model → Configured database: persists via ORM
- Publisher model → Configured database: persists via ORM
