# muhammadakmalhamidi2/point_of_sales_raos_dimsum architecture

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

## Overview

POS Raos Dimsum is a point-of-sale and outlet-management application. The main business flow is cashier product selection, checkout, and sale-history review; attendance is a separate staff workflow, while administration covers catalog, employees, outlets, and operational reporting. The server mounts API routers that dispatch to controllers, which use Sequelize models. Client pages identify the product areas, but the sampled excerpts do not establish their exact API calls, so those connections are omitted.

Main entry points: [`server/models/index.js`](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/index.js) (Sequelize models), [`server/index.js`](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/index.js) (Express API), [`server/controllers/produk-controller.js`](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/produk-controller.js) (Catalog management), [`server/controllers/penjualan-controller.js`](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/penjualan-controller.js) (Checkout and history)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_client["Web application"]
  node_cashier["Cashier POS<br/>[page.tsx]"]
  node_catalog_ui["Product browsing<br/>[page.tsx]"]
  node_cart_ui["Cart and checkout<br/>[page.tsx]"]
  node_history_ui["Sale history<br/>[page.tsx]"]
  node_admin_ui["Admin console<br/>[page.tsx]"]
  node_attendance_ui["Attendance entry<br/>[page.tsx]"]
end

subgraph group_api["API routing"]
  node_server["Express API<br/>[index.js]"]
  node_auth_routes["Authentication routes<br/>[auth-router.js]"]
  node_product_routes["Product routes<br/>[produk-router.js]"]
  node_sales_routes["Sales routes"]
  node_attendance_routes["Attendance routes<br/>[absen-router.js]"]
end

subgraph group_business["Business services"]
  node_auth_service["Authentication<br/>[auth-controller.js]"]
  node_product_service["Catalog management"]
  node_sales_service["Checkout and history"]
  node_staff_service["Employee management"]
  node_attendance_service["Attendance records"]
  node_analysis_service["Sales analysis"]
  node_dashboard_service["Dashboard data"]
end

subgraph group_data["Persistence"]
  node_model_registry["Sequelize models<br/>[index.js]"]
  node_sales_model["Sales model<br/>[penjualan.js]"]
  node_product_model["Product model<br/>[produk.js]"]
  node_attendance_model["Attendance model<br/>[absen.js]"]
end

node_database[("Relational database<br/>[config.js]")]

node_server -->|"mounts routes"| node_auth_routes
node_server -->|"mounts routes"| node_product_routes
node_server -->|"mounts routes"| node_sales_routes
node_server -->|"mounts routes"| node_attendance_routes
node_auth_routes -->|"dispatches"| node_auth_service
node_product_routes -->|"dispatches"| node_product_service
node_sales_routes -->|"dispatches"| node_sales_service
node_attendance_routes -->|"dispatches"| node_attendance_service
node_sales_service -->|"reads and writes"| node_sales_model
node_product_service -->|"reads and writes"| node_product_model
node_attendance_service -->|"reads and writes"| node_attendance_model
node_sales_service -->|"loads models"| node_model_registry
node_product_service -->|"loads models"| node_model_registry
node_attendance_service -->|"loads models"| node_model_registry
node_analysis_service -->|"loads models"| node_model_registry
node_model_registry -->|"connects via Sequelize"| node_database

click node_cashier "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/kasir/page.tsx"
click node_catalog_ui "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/kasir/%5Bcategory%5D/%5Bproduk%5D/page.tsx"
click node_cart_ui "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/kasir/keranjang/page.tsx"
click node_history_ui "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/kasir/history/page.tsx"
click node_admin_ui "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/admin/page.tsx"
click node_attendance_ui "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/absen/page.tsx"
click node_server "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/index.js"
click node_auth_routes "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/routers/auth-router.js"
click node_product_routes "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/routers/produk-router.js"
click node_sales_routes "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/routers/penjualan-router.js"
click node_attendance_routes "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/routers/absen-router.js"
click node_auth_service "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/auth-controller.js"
click node_product_service "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/produk-controller.js"
click node_sales_service "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/penjualan-controller.js"
click node_staff_service "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/karyawan-controller.js"
click node_attendance_service "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/absen-controller.js"
click node_analysis_service "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/analisa-controller.js"
click node_dashboard_service "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/dashboard-controller.js"
click node_model_registry "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/index.js"
click node_sales_model "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/penjualan.js"
click node_product_model "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/produk.js"
click node_attendance_model "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/absen.js"
click node_database "https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/config/config.js"

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_cashier,node_catalog_ui,node_cart_ui,node_history_ui,node_admin_ui,node_attendance_ui toneBlue
class node_server,node_auth_routes,node_product_routes,node_sales_routes,node_attendance_routes,node_database toneAmber
class node_auth_service,node_product_service,node_sales_service,node_staff_service,node_attendance_service,node_analysis_service,node_dashboard_service toneMint
class node_model_registry,node_sales_model,node_product_model,node_attendance_model toneRose
```

## Components

### Web application

- [Cashier POS](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/kasir/page.tsx): `client/app/(dashboard)/kasir/page.tsx`
- [Product browsing](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/kasir/%5Bcategory%5D/%5Bproduk%5D/page.tsx): `client/app/(dashboard)/kasir/[category]/[produk]/page.tsx`
- [Cart and checkout](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/kasir/keranjang/page.tsx): `client/app/(dashboard)/kasir/keranjang/page.tsx`
- [Sale history](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/kasir/history/page.tsx): `client/app/(dashboard)/kasir/history/page.tsx`
- [Admin console](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/(dashboard)/admin/page.tsx): `client/app/(dashboard)/admin/page.tsx`
- [Attendance entry](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/client/app/absen/page.tsx): `client/app/absen/page.tsx`

### API routing

- [Express API](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/index.js): `server/index.js`
- [Authentication routes](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/routers/auth-router.js): `server/routers/auth-router.js`
- [Product routes](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/routers/produk-router.js): `server/routers/produk-router.js`
- [Sales routes](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/routers/penjualan-router.js): `server/routers/penjualan-router.js`
- [Attendance routes](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/routers/absen-router.js): `server/routers/absen-router.js`

### Business services

- [Authentication](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/auth-controller.js): `server/controllers/auth-controller.js`
- [Catalog management](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/produk-controller.js): `server/controllers/produk-controller.js`
- [Checkout and history](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/penjualan-controller.js): `server/controllers/penjualan-controller.js`
- [Employee management](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/karyawan-controller.js): `server/controllers/karyawan-controller.js`
- [Attendance records](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/absen-controller.js): `server/controllers/absen-controller.js`
- [Sales analysis](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/analisa-controller.js): `server/controllers/analisa-controller.js`
- [Dashboard data](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/controllers/dashboard-controller.js): `server/controllers/dashboard-controller.js`

### Persistence

- [Sequelize models](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/index.js): `server/models/index.js`
- [Sales model](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/penjualan.js): `server/models/penjualan.js`
- [Product model](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/produk.js): `server/models/produk.js`
- [Attendance model](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/models/absen.js): `server/models/absen.js`

### Other components

- [Relational database](https://github.com/muhammadakmalhamidi2/point_of_sales_raos_dimsum/blob/main/server/config/config.js): `server/config/config.js`

## Connections

- Express API → Authentication routes: mounts routes
- Express API → Product routes: mounts routes
- Express API → Sales routes: mounts routes
- Express API → Attendance routes: mounts routes
- Authentication routes → Authentication: dispatches
- Product routes → Catalog management: dispatches
- Sales routes → Checkout and history: dispatches
- Attendance routes → Attendance records: dispatches
- Checkout and history → Sales model: reads and writes
- Catalog management → Product model: reads and writes
- Attendance records → Attendance model: reads and writes
- Checkout and history → Sequelize models: loads models
- Catalog management → Sequelize models: loads models
- Attendance records → Sequelize models: loads models
- Sales analysis → Sequelize models: loads models
- Sequelize models → Relational database: connects via Sequelize
