# rachelrambu16/bandengenak architecture

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

- Interactive diagram: https://gitdiagram.com/rachelrambu16/bandengenak
- Repository: https://github.com/rachelrambu16/bandengenak

## Overview

This is a Laravel shop application: customers browse products, manage a cart, submit shipping details, and pay through Midtrans; staff and administrators manage products, users, and transaction operations. The graph follows documented route-to-controller wiring and sampled controller/model calls. Some view and admin routing details are not evidenced in the available excerpts, so those connections are omitted rather than inferred.

Main entry points: [`routes/web.php`](https://github.com/rachelrambu16/bandengenak/blob/main/routes/web.php) (Web routes), [`app/Http/Controllers/CheckoutController.php`](https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/CheckoutController.php) (Checkout), [`app/Models/Transaction.php`](https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/Transaction.php) (Transactions), [`app/Models/Product.php`](https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/Product.php) (Products)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Web entry and accounts"]
  node_webapp["Web application<br/>[index.php]"]
  node_routes["Web routes<br/>[web.php]"]
  node_auth["Authentication and profile<br/>[AuthController.php]"]
  node_views["Blade views"]
end

subgraph group_commerce["Shopping and payments"]
  node_catalog["Catalog and pages<br/>[PageController.php]"]
  node_cart["Cart management<br/>[CartController.php]"]
  node_checkout["Checkout"]
  node_payment["Midtrans payments"]
end

subgraph group_operations["Store operations"]
  node_admin["Product and staff admin"]
  node_dashboard["Admin dashboard"]
  node_transactions["Transaction administration"]
end

subgraph group_data["Domain data"]
  node_users[("Users<br/>[User.php]")]
  node_products[("Products<br/>[Product.php]")]
  node_carts[("Cart records<br/>[Cart.php]")]
  node_orders[("Transactions<br/>[Transaction.php]")]
  node_orderlines[("Transaction details")]
end

node_customer(("Customer"))
node_staff(("Admin and staff"))
node_midtrans["Midtrans"]

node_customer -->|"uses"| node_webapp
node_staff -->|"uses"| node_webapp
node_webapp -->|"loads routes"| node_routes
node_routes -->|"routes to"| node_auth
node_routes -->|"routes to"| node_catalog
node_routes -->|"routes to"| node_cart
node_routes -->|"routes to"| node_checkout
node_routes -->|"routes to"| node_dashboard
node_routes -->|"routes to"| node_transactions
node_auth -->|"creates and updates"| node_users
node_auth -->|"renders auth views"| node_views
node_catalog -->|"queries"| node_products
node_catalog -->|"queries"| node_orders
node_cart -->|"manages"| node_carts
node_cart -->|"checks stock"| node_products
node_cart -->|"renders cart"| node_views
node_checkout -->|"loads and clears"| node_carts
node_checkout -->|"creates and updates"| node_orders
node_checkout -->|"creates"| node_orderlines
node_checkout -->|"decrements stock"| node_products
node_checkout -->|"requests token"| node_payment
node_checkout -->|"renders checkout"| node_views
node_payment -->|"syncs status"| node_orders
node_payment -->|"requests payment"| node_midtrans
node_midtrans -.->|"sends notification"| node_payment
node_admin -->|"manages"| node_products
node_admin -->|"manages"| node_users
node_dashboard -->|"queries"| node_products
node_dashboard -->|"queries"| node_orders
node_transactions -->|"queries"| node_orders
node_orders -->|"has details"| node_orderlines
node_orders -->|"belongs to"| node_users
node_orderlines -->|"references"| node_products
node_carts -->|"belongs to"| node_users
node_carts -->|"references"| node_products

click node_webapp "https://github.com/rachelrambu16/bandengenak/blob/main/public/index.php"
click node_routes "https://github.com/rachelrambu16/bandengenak/blob/main/routes/web.php"
click node_auth "https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/AuthController.php"
click node_catalog "https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/PageController.php"
click node_cart "https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/CartController.php"
click node_checkout "https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/CheckoutController.php"
click node_payment "https://github.com/rachelrambu16/bandengenak/blob/main/app/Services/MidtransPaymentService.php"
click node_admin "https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/adminController.php"
click node_dashboard "https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/DashboardController.php"
click node_transactions "https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/TransactionAdminController.php"
click node_views "https://github.com/rachelrambu16/bandengenak/tree/main/resources/views"
click node_users "https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/User.php"
click node_products "https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/Product.php"
click node_carts "https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/Cart.php"
click node_orders "https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/Transaction.php"
click node_orderlines "https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/TransactionDetail.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_webapp,node_routes,node_auth,node_views toneBlue
class node_catalog,node_cart,node_checkout,node_payment toneAmber
class node_admin,node_dashboard,node_transactions toneMint
class node_users,node_products,node_carts,node_orders,node_orderlines toneRose
class node_customer,node_staff,node_midtrans toneIndigo
```

## Components

### Web entry and accounts

- [Web application](https://github.com/rachelrambu16/bandengenak/blob/main/public/index.php): `public/index.php`
- [Web routes](https://github.com/rachelrambu16/bandengenak/blob/main/routes/web.php): `routes/web.php`
- [Authentication and profile](https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/AuthController.php): `app/Http/Controllers/AuthController.php`
- [Blade views](https://github.com/rachelrambu16/bandengenak/tree/main/resources/views): `resources/views`

### Shopping and payments

- [Catalog and pages](https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/PageController.php): `app/Http/Controllers/PageController.php`
- [Cart management](https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/CartController.php): `app/Http/Controllers/CartController.php`
- [Checkout](https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/CheckoutController.php): `app/Http/Controllers/CheckoutController.php`
- [Midtrans payments](https://github.com/rachelrambu16/bandengenak/blob/main/app/Services/MidtransPaymentService.php): `app/Services/MidtransPaymentService.php`

### Store operations

- [Product and staff admin](https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/adminController.php): `app/Http/Controllers/adminController.php`
- [Admin dashboard](https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/DashboardController.php): `app/Http/Controllers/DashboardController.php`
- [Transaction administration](https://github.com/rachelrambu16/bandengenak/blob/main/app/Http/Controllers/TransactionAdminController.php): `app/Http/Controllers/TransactionAdminController.php`

### Domain data

- [Users](https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/User.php): `app/Models/User.php`
- [Products](https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/Product.php): `app/Models/Product.php`
- [Cart records](https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/Cart.php): `app/Models/Cart.php`
- [Transactions](https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/Transaction.php): `app/Models/Transaction.php`
- [Transaction details](https://github.com/rachelrambu16/bandengenak/blob/main/app/Models/TransactionDetail.php): `app/Models/TransactionDetail.php`

### Other components

- **Customer**
- **Admin and staff**
- **Midtrans**

## Connections

- Customer → Web application: uses
- Admin and staff → Web application: uses
- Web application → Web routes: loads routes (evidence: `public/index.php`)
- Web routes → Authentication and profile: routes to (evidence: `routes/web.php`)
- Web routes → Catalog and pages: routes to (evidence: `routes/web.php`)
- Web routes → Cart management: routes to (evidence: `routes/web.php`)
- Web routes → Checkout: routes to (evidence: `routes/web.php`)
- Web routes → Admin dashboard: routes to (evidence: `routes/web.php`)
- Web routes → Transaction administration: routes to (evidence: `routes/web.php`)
- Authentication and profile → Users: creates and updates (evidence: `app/Http/Controllers/AuthController.php`)
- Authentication and profile → Blade views: renders auth views (evidence: `app/Http/Controllers/AuthController.php`)
- Catalog and pages → Products: queries (evidence: `app/Http/Controllers/PageController.php`)
- Catalog and pages → Transactions: queries (evidence: `app/Http/Controllers/PageController.php`)
- Cart management → Cart records: manages (evidence: `app/Http/Controllers/CartController.php`)
- Cart management → Products: checks stock (evidence: `app/Http/Controllers/CartController.php`)
- Cart management → Blade views: renders cart (evidence: `app/Http/Controllers/CartController.php`)
- Checkout → Cart records: loads and clears (evidence: `app/Http/Controllers/CheckoutController.php`)
- Checkout → Transactions: creates and updates (evidence: `app/Http/Controllers/CheckoutController.php`)
- Checkout → Transaction details: creates (evidence: `app/Http/Controllers/CheckoutController.php`)
- Checkout → Products: decrements stock (evidence: `app/Http/Controllers/CheckoutController.php`)
- Checkout → Midtrans payments: requests token (evidence: `app/Http/Controllers/CheckoutController.php`)
- Checkout → Blade views: renders checkout (evidence: `app/Http/Controllers/CheckoutController.php`)
- Midtrans payments → Transactions: syncs status (evidence: `app/Services/MidtransPaymentService.php`)
- Midtrans payments → Midtrans: requests payment (evidence: `app/Services/MidtransPaymentService.php`)
- Midtrans → Midtrans payments: sends notification
- Product and staff admin → Products: manages (evidence: `app/Http/Controllers/adminController.php`)
- Product and staff admin → Users: manages (evidence: `app/Http/Controllers/adminController.php`)
- Admin dashboard → Products: queries (evidence: `app/Http/Controllers/DashboardController.php`)
- Admin dashboard → Transactions: queries (evidence: `app/Http/Controllers/DashboardController.php`)
- Transaction administration → Transactions: queries (evidence: `app/Http/Controllers/TransactionAdminController.php`)
- Transactions → Transaction details: has details (evidence: `app/Models/Transaction.php`)
- Transactions → Users: belongs to (evidence: `app/Models/Transaction.php`)
- Transaction details → Products: references (evidence: `app/Models/TransactionDetail.php`)
- Cart records → Users: belongs to (evidence: `app/Models/Cart.php`)
- Cart records → Products: references (evidence: `app/Models/Cart.php`)
