# novri3h/android-poskasir architecture

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

- Interactive diagram: https://gitdiagram.com/novri3h/android-poskasir
- Repository: https://github.com/novri3h/android-poskasir

## Overview

POS Kasir Pro is an Android-hosted point-of-sale system whose web interface is served over the local network for use on the device or by other devices on the same network. The documented workflow is to sign in as owner or operator, configure the shop and products, then use sales and related operational features; finance and reporting provide supporting workflows. The tree exposes the web app modules and two database files, but no source excerpts show their runtime wiring, Android server implementation, or online-shop implementation, so those connections are not inferred.

Main entry points: [`assets/www/index.html`](https://github.com/novri3h/android-poskasir/blob/master/assets/www/index.html) (POS web app), [`assets/www/apps/login/login.js`](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/login/login.js) (Sign in), [`assets/www/apps/operator/operator.js`](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/operator/operator.js) (Operator access), [`assets/www/apps/product/product.js`](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/product/product.js) (Products and prices)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Access and accounts"]
  node_web_app["POS web app<br/>[index.html]"]
  node_login["Sign in<br/>[login.js]"]
  node_operator_access["Operator access<br/>[operator.js]"]
end

subgraph group_trade["Sales and purchasing"]
  node_sales["Sales<br/>[sell.js]"]
  node_sales_returns["Sales returns<br/>[rsell.js]"]
  node_purchases["Purchases<br/>[buy.js]"]
  node_purchase_returns["Purchase returns<br/>[rbuy.js]"]
end

subgraph group_operations["Business operations"]
  node_products["Products and prices<br/>[product.js]"]
  node_stock["Stock<br/>[stock.js]"]
  node_discounts["Discounts<br/>[discount.js]"]
  node_customers["Customers<br/>[customer.js]"]
  node_suppliers["Suppliers<br/>[supplier.js]"]
  node_category_db[("Category data<br/>[category.db]")]
end

subgraph group_finance["Finance and reporting"]
  node_cashflow["Cashflow<br/>[cashflow.js]"]
  node_debts["Debt and receivables<br/>[hutang.js]"]
  node_receivables["Receivables<br/>[piutang.js]"]
  node_reports["Reports<br/>[reportday.js]"]
  node_cashbox_db[("Cashbox data<br/>[cashbox.db]")]
end

subgraph group_extensions["Shop and settings"]
  node_online_shop["Online shop"]
  node_shop_settings["Shop settings"]
end

node_owner(("Owner"))
node_operator(("Operator"))
node_network_user(("Same-network user"))

node_owner -->|"uses"| node_web_app
node_operator -->|"uses"| node_web_app
node_network_user -->|"accesses locally"| node_web_app
node_web_app -->|"offers sign-in"| node_login
node_owner -->|"manages operators"| node_operator_access
node_owner -->|"configures shop"| node_shop_settings
node_owner -->|"sets up products"| node_products

click node_web_app "https://github.com/novri3h/android-poskasir/blob/master/assets/www/index.html"
click node_login "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/login/login.js"
click node_operator_access "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/operator/operator.js"
click node_sales "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/sell/sell.js"
click node_sales_returns "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/rsell/rsell.js"
click node_purchases "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/buy/buy.js"
click node_purchase_returns "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/rbuy/rbuy.js"
click node_products "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/product/product.js"
click node_stock "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/stock/stock.js"
click node_discounts "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/discount/discount.js"
click node_customers "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/customer/customer.js"
click node_suppliers "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/supplier/supplier.js"
click node_cashflow "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/cashflow/cashflow.js"
click node_debts "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/hutang/hutang.js"
click node_receivables "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/piutang/piutang.js"
click node_reports "https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/reportday/reportday.js"
click node_cashbox_db "https://github.com/novri3h/android-poskasir/blob/master/assets/cashbox.db"
click node_category_db "https://github.com/novri3h/android-poskasir/blob/master/assets/category.db"
click node_online_shop "https://github.com/novri3h/android-poskasir/tree/master/assets/www/apps"
click node_shop_settings "https://github.com/novri3h/android-poskasir/tree/master/assets/www/apps"

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_web_app,node_login,node_operator_access,node_network_user toneBlue
class node_sales,node_sales_returns,node_purchases,node_purchase_returns toneAmber
class node_products,node_stock,node_discounts,node_customers,node_suppliers,node_category_db toneMint
class node_cashflow,node_debts,node_receivables,node_reports,node_cashbox_db toneRose
class node_online_shop,node_shop_settings,node_owner,node_operator toneIndigo
```

## Components

### Access and accounts

- [POS web app](https://github.com/novri3h/android-poskasir/blob/master/assets/www/index.html): `assets/www/index.html`
- [Sign in](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/login/login.js): `assets/www/apps/login/login.js`
- [Operator access](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/operator/operator.js): `assets/www/apps/operator/operator.js`

### Sales and purchasing

- [Sales](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/sell/sell.js): `assets/www/apps/sell/sell.js`
- [Sales returns](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/rsell/rsell.js): `assets/www/apps/rsell/rsell.js`
- [Purchases](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/buy/buy.js): `assets/www/apps/buy/buy.js`
- [Purchase returns](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/rbuy/rbuy.js): `assets/www/apps/rbuy/rbuy.js`

### Business operations

- [Products and prices](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/product/product.js): `assets/www/apps/product/product.js`
- [Stock](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/stock/stock.js): `assets/www/apps/stock/stock.js`
- [Discounts](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/discount/discount.js): `assets/www/apps/discount/discount.js`
- [Customers](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/customer/customer.js): `assets/www/apps/customer/customer.js`
- [Suppliers](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/supplier/supplier.js): `assets/www/apps/supplier/supplier.js`
- [Category data](https://github.com/novri3h/android-poskasir/blob/master/assets/category.db): `assets/category.db`

### Finance and reporting

- [Cashflow](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/cashflow/cashflow.js): `assets/www/apps/cashflow/cashflow.js`
- [Debt and receivables](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/hutang/hutang.js): `assets/www/apps/hutang/hutang.js`
- [Receivables](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/piutang/piutang.js): `assets/www/apps/piutang/piutang.js`
- [Reports](https://github.com/novri3h/android-poskasir/blob/master/assets/www/apps/reportday/reportday.js): `assets/www/apps/reportday/reportday.js`
- [Cashbox data](https://github.com/novri3h/android-poskasir/blob/master/assets/cashbox.db): `assets/cashbox.db`

### Shop and settings

- [Online shop](https://github.com/novri3h/android-poskasir/tree/master/assets/www/apps): `assets/www/apps`
- [Shop settings](https://github.com/novri3h/android-poskasir/tree/master/assets/www/apps): `assets/www/apps`

### Other components

- **Owner**
- **Operator**
- **Same-network user**

## Connections

- Owner → POS web app: uses
- Operator → POS web app: uses
- Same-network user → POS web app: accesses locally
- POS web app → Sign in: offers sign-in
- Owner → Operator access: manages operators
- Owner → Shop settings: configures shop
- Owner → Products and prices: sets up products
