# mokhethinyaps/localops-pos architecture

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

## Overview

LocalOps POS is an offline-first desktop point-of-sale and business-operations application. Its user workflow begins with initial business setup, proceeds through local sign-in and a workspace, and supports catalogue configuration, inventory, sales and refunds, shifts and expenses, reporting, and backup/restore. React invokes Tauri commands; Rust handlers bridge to the Rust domain layer and a local SQLite database. The sampled sales implementation explicitly coordinates payment, recipe, inventory, and audit behavior. Other command-to-domain details are based on the registered command areas and module names; unsampled internal links are omitted.

Main entry points: [`crates/localops-core/src/lib.rs`](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/lib.rs) (SQLite database), [`src-tauri/src/lib.rs`](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/lib.rs) (Tauri runtime), [`src-tauri/src/session_guard.rs`](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/session_guard.rs) (Session authorization), [`src-tauri/src/sales_commands.rs`](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/sales_commands.rs) (Sales commands)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Desktop interface"]
  node_app["Workspace UI<br/>[App.tsx]"]
end

subgraph group_bridge["Tauri commands"]
  node_tauri["Tauri runtime<br/>[lib.rs]"]
  node_setup_cmd["Setup and session<br/>[commands.rs]"]
  node_catalogue_cmd["Catalogue commands"]
  node_inventory_cmd["Inventory commands"]
  node_sales_cmd["Sales commands<br/>[sales_commands.rs]"]
  node_operations_cmd["Operations commands"]
  node_reports_cmd["Report commands<br/>[report_commands.rs]"]
  node_safety_cmd["Safety commands<br/>[safety_commands.rs]"]
  node_guard["Session authorization<br/>[session_guard.rs]"]
end

subgraph group_domain["Business domain"]
  node_setup["Business setup<br/>[setup.rs]"]
  node_session["Local sessions<br/>[session.rs]"]
  node_catalogue["Catalogue and products<br/>[catalogue.rs]"]
  node_inventory["Inventory operations"]
  node_sales["Sales and checkout<br/>[sales.rs]"]
  node_payment["Payments<br/>[payment.rs]"]
  node_refund["Refunds<br/>[refund.rs]"]
  node_shift["Shifts<br/>[shift.rs]"]
  node_expense["Expenses<br/>[expense.rs]"]
  node_report["Reporting<br/>[report.rs]"]
  node_backup["Backup and restore<br/>[backup.rs]"]
  node_audit["Audit records<br/>[audit.rs]"]
  node_recipe["Recipes<br/>[recipe.rs]"]
end

subgraph group_local["Local state"]
  node_database[("SQLite database<br/>[lib.rs]")]
  node_bootstrap["Database bootstrap<br/>[bootstrap.rs]"]
end

node_operator(("Business operator"))

node_operator -->|"uses"| node_app
node_app -->|"invokes commands"| node_tauri
node_tauri -->|"dispatches"| node_setup_cmd
node_tauri -->|"dispatches"| node_catalogue_cmd
node_tauri -->|"dispatches"| node_inventory_cmd
node_tauri -->|"dispatches"| node_sales_cmd
node_tauri -->|"dispatches"| node_operations_cmd
node_tauri -->|"dispatches"| node_reports_cmd
node_tauri -->|"dispatches"| node_safety_cmd
node_tauri -->|"manages connection"| node_database
node_tauri -->|"bootstraps"| node_bootstrap
node_setup_cmd -->|"checks session"| node_guard
node_catalogue_cmd -->|"checks session"| node_guard
node_inventory_cmd -->|"checks session"| node_guard
node_sales_cmd -->|"checks session"| node_guard
node_operations_cmd -->|"checks session"| node_guard
node_reports_cmd -->|"checks session"| node_guard
node_safety_cmd -->|"checks session"| node_guard
node_setup_cmd -->|"completes setup"| node_setup
node_setup_cmd -->|"starts session"| node_session
node_sales_cmd -->|"records sale"| node_sales
node_sales_cmd -->|"loads methods"| node_payment
node_sales_cmd -->|"creates refund"| node_refund
node_sales_cmd -->|"checks open shift"| node_shift
node_sales -->|"records stock use"| node_inventory
node_sales -->|"reads recipes"| node_recipe
node_sales -->|"validates payment"| node_payment
node_sales -->|"records audit"| node_audit
node_sales_cmd -->|"reads and writes"| node_database
node_catalogue_cmd -->|"manages catalogue"| node_catalogue
node_inventory_cmd -->|"records operations"| node_inventory
node_operations_cmd -->|"manages shifts"| node_shift
node_operations_cmd -->|"records expenses"| node_expense
node_reports_cmd -->|"builds reports"| node_report
node_safety_cmd -->|"backs up and restores"| node_backup
node_guard -->|"resumes session"| node_session
node_guard -->|"reads context"| node_database
node_bootstrap -->|"initializes"| node_database
node_setup -->|"writes setup data"| node_database
node_session -->|"reads and writes"| node_database
node_catalogue -->|"reads and writes"| node_database
node_inventory -->|"reads and writes"| node_database
node_payment -->|"reads and writes"| node_database
node_refund -->|"reads and writes"| node_database
node_shift -->|"reads and writes"| node_database
node_expense -->|"reads and writes"| node_database
node_report -->|"reads data"| node_database
node_backup -->|"backs up and restores"| node_database

click node_app "https://github.com/mokhethinyaps/localops-pos/blob/main/src/App.tsx"
click node_tauri "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/lib.rs"
click node_setup_cmd "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/commands.rs"
click node_catalogue_cmd "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/catalogue_commands.rs"
click node_inventory_cmd "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/inventory_commands.rs"
click node_sales_cmd "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/sales_commands.rs"
click node_operations_cmd "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/operations_commands.rs"
click node_reports_cmd "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/report_commands.rs"
click node_safety_cmd "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/safety_commands.rs"
click node_guard "https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/session_guard.rs"
click node_setup "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/setup.rs"
click node_session "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/session.rs"
click node_catalogue "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/catalogue.rs"
click node_inventory "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/inventory_operations.rs"
click node_sales "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/sales.rs"
click node_payment "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/payment.rs"
click node_refund "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/refund.rs"
click node_shift "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/shift.rs"
click node_expense "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/expense.rs"
click node_report "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/report.rs"
click node_backup "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/backup.rs"
click node_database "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/lib.rs"
click node_bootstrap "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/bootstrap.rs"
click node_audit "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/audit.rs"
click node_recipe "https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/recipe.rs"

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_app toneBlue
class node_tauri,node_setup_cmd,node_catalogue_cmd,node_inventory_cmd,node_sales_cmd,node_operations_cmd,node_reports_cmd,node_safety_cmd,node_guard toneAmber
class node_setup,node_session,node_catalogue,node_inventory,node_sales,node_payment,node_refund,node_shift,node_expense,node_report,node_backup,node_audit,node_recipe toneMint
class node_database,node_bootstrap toneRose
class node_operator toneIndigo
```

## Components

### Desktop interface

- [Workspace UI](https://github.com/mokhethinyaps/localops-pos/blob/main/src/App.tsx): `src/App.tsx`

### Tauri commands

- [Tauri runtime](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/lib.rs): `src-tauri/src/lib.rs`
- [Setup and session](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/commands.rs): `src-tauri/src/commands.rs`
- [Catalogue commands](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/catalogue_commands.rs): `src-tauri/src/catalogue_commands.rs`
- [Inventory commands](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/inventory_commands.rs): `src-tauri/src/inventory_commands.rs`
- [Sales commands](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/sales_commands.rs): `src-tauri/src/sales_commands.rs`
- [Operations commands](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/operations_commands.rs): `src-tauri/src/operations_commands.rs`
- [Report commands](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/report_commands.rs): `src-tauri/src/report_commands.rs`
- [Safety commands](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/safety_commands.rs): `src-tauri/src/safety_commands.rs`
- [Session authorization](https://github.com/mokhethinyaps/localops-pos/blob/main/src-tauri/src/session_guard.rs): `src-tauri/src/session_guard.rs`

### Business domain

- [Business setup](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/setup.rs): `crates/localops-core/src/setup.rs`
- [Local sessions](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/session.rs): `crates/localops-core/src/session.rs`
- [Catalogue and products](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/catalogue.rs): `crates/localops-core/src/catalogue.rs`
- [Inventory operations](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/inventory_operations.rs): `crates/localops-core/src/inventory_operations.rs`
- [Sales and checkout](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/sales.rs): `crates/localops-core/src/sales.rs`
- [Payments](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/payment.rs): `crates/localops-core/src/payment.rs`
- [Refunds](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/refund.rs): `crates/localops-core/src/refund.rs`
- [Shifts](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/shift.rs): `crates/localops-core/src/shift.rs`
- [Expenses](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/expense.rs): `crates/localops-core/src/expense.rs`
- [Reporting](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/report.rs): `crates/localops-core/src/report.rs`
- [Backup and restore](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/backup.rs): `crates/localops-core/src/backup.rs`
- [Audit records](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/audit.rs): `crates/localops-core/src/audit.rs`
- [Recipes](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/recipe.rs): `crates/localops-core/src/recipe.rs`

### Local state

- [SQLite database](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/lib.rs): `crates/localops-core/src/lib.rs`
- [Database bootstrap](https://github.com/mokhethinyaps/localops-pos/blob/main/crates/localops-core/src/bootstrap.rs): `crates/localops-core/src/bootstrap.rs`

### Other components

- **Business operator**

## Connections

- Business operator → Workspace UI: uses
- Workspace UI → Tauri runtime: invokes commands
- Tauri runtime → Setup and session: dispatches
- Tauri runtime → Catalogue commands: dispatches
- Tauri runtime → Inventory commands: dispatches
- Tauri runtime → Sales commands: dispatches
- Tauri runtime → Operations commands: dispatches
- Tauri runtime → Report commands: dispatches
- Tauri runtime → Safety commands: dispatches
- Tauri runtime → SQLite database: manages connection
- Tauri runtime → Database bootstrap: bootstraps
- Setup and session → Session authorization: checks session
- Catalogue commands → Session authorization: checks session
- Inventory commands → Session authorization: checks session
- Sales commands → Session authorization: checks session
- Operations commands → Session authorization: checks session
- Report commands → Session authorization: checks session
- Safety commands → Session authorization: checks session
- Setup and session → Business setup: completes setup
- Setup and session → Local sessions: starts session
- Sales commands → Sales and checkout: records sale
- Sales commands → Payments: loads methods
- Sales commands → Refunds: creates refund
- Sales commands → Shifts: checks open shift
- Sales and checkout → Inventory operations: records stock use
- Sales and checkout → Recipes: reads recipes
- Sales and checkout → Payments: validates payment
- Sales and checkout → Audit records: records audit
- Sales commands → SQLite database: reads and writes
- Catalogue commands → Catalogue and products: manages catalogue
- Inventory commands → Inventory operations: records operations
- Operations commands → Shifts: manages shifts
- Operations commands → Expenses: records expenses
- Report commands → Reporting: builds reports
- Safety commands → Backup and restore: backs up and restores
- Session authorization → Local sessions: resumes session
- Session authorization → SQLite database: reads context
- Database bootstrap → SQLite database: initializes
- Business setup → SQLite database: writes setup data
- Local sessions → SQLite database: reads and writes
- Catalogue and products → SQLite database: reads and writes
- Inventory operations → SQLite database: reads and writes
- Payments → SQLite database: reads and writes
- Refunds → SQLite database: reads and writes
- Shifts → SQLite database: reads and writes
- Expenses → SQLite database: reads and writes
- Reporting → SQLite database: reads data
- Backup and restore → SQLite database: backs up and restores
