# poparab/jarz_pos architecture

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

- Interactive diagram: https://gitdiagram.com/poparab/jarz_pos
- Repository: https://github.com/poparab/jarz_pos

## Overview

Jarz POS is a customized ERPNext point-of-sale and operations app. Its primary workflow is a staff member building a cart, configuring bundles and delivery, then creating a sales invoice; ERPNext supplies the business records and accounting context. The repository also has substantial delivery/courier, CRM, workforce/task, and analytics capabilities. The README documents the POS workflow, while sampled source is partial, so the wider subsystem links are intentionally limited to documented relationships.

Main entry points: [`jarz_pos/api/pos.py`](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/pos.py) (POS API), [`jarz_pos/services/delivery_handling.py`](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/delivery_handling.py) (Delivery Handling), [`jarz_pos/page/custom_pos/custom_pos.py`](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/page/custom_pos/custom_pos.py) (Custom POS), [`jarz_pos/services/invoice_creation.py`](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/invoice_creation.py) (Invoice Creation)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pos["Point of Sale"]
  node_custom_pos["Custom POS<br/>[custom_pos.py]"]
  node_pos_api["POS API<br/>[pos.py]"]
  node_cart["Cart &amp; Pricing"]
  node_bundles["Bundle Processing"]
  node_invoice["Invoice Creation"]
end

subgraph group_delivery["Delivery Operations"]
  node_delivery_api["Delivery APIs"]
  node_delivery_handling["Delivery Handling"]
  node_delivery_trip["Delivery Trips<br/>[delivery_trip.py]"]
  node_routing["Route Planning<br/>[route_planner.py]"]
end

subgraph group_business["Business Operations"]
  node_crm_api["CRM APIs<br/>[leads.py]"]
  node_crm_followups["CRM Follow-ups<br/>[follow_ups.py]"]
  node_task_api["Task Board API<br/>[tasks.py]"]
  node_task_board["Task Board<br/>[task_board.py]"]
  node_manager_api["Manager Dashboard<br/>[manager.py]"]
  node_tasks["Scheduled Jobs<br/>[tasks.py]"]
end

subgraph group_insight["Analytics"]
  node_analytics_api["Analytics APIs"]
  node_analytics_pages["Analytics Pages"]
end

node_staff(("POS Staff"))
node_erpnext[("ERPNext")]
node_osrm["OSRM Service"]
node_scheduler(("Scheduler"))

node_staff -->|"uses"| node_custom_pos
node_custom_pos -->|"requests POS data"| node_pos_api
node_pos_api -->|"prices cart"| node_cart
node_pos_api -->|"processes bundles"| node_bundles
node_pos_api -->|"creates invoice"| node_invoice
node_invoice -->|"writes sales invoice"| node_erpnext
node_delivery_api -->|"handles delivery"| node_delivery_handling
node_delivery_handling -->|"updates delivery records"| node_erpnext
node_delivery_handling -->|"manages trips"| node_delivery_trip
node_routing -.->|"requests road routes"| node_osrm
node_crm_api -->|"reads CRM records"| node_erpnext
node_crm_followups -->|"creates reminders"| node_erpnext
node_task_api -->|"applies board rules"| node_task_board
node_task_board -->|"reads task records"| node_erpnext
node_manager_api -->|"reads sales records"| node_erpnext
node_analytics_api -->|"queries business data"| node_erpnext
node_analytics_pages -->|"requests analytics"| node_analytics_api
node_scheduler -->|"runs jobs"| node_tasks
node_tasks -->|"schedules reminders"| node_crm_followups

click node_custom_pos "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/page/custom_pos/custom_pos.py"
click node_pos_api "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/pos.py"
click node_cart "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/discount_calculation.py"
click node_bundles "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/bundle_processing.py"
click node_invoice "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/invoice_creation.py"
click node_delivery_api "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/delivery_partners.py"
click node_delivery_handling "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/delivery_handling.py"
click node_delivery_trip "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/doctype/delivery_trip/delivery_trip.py"
click node_routing "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/route_planner.py"
click node_crm_api "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/leads.py"
click node_crm_followups "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/crm/follow_ups.py"
click node_task_api "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/tasks.py"
click node_task_board "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/task_board.py"
click node_manager_api "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/manager.py"
click node_analytics_api "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/executive_analytics.py"
click node_analytics_pages "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/page/executive_analytics/executive_analytics.py"
click node_tasks "https://github.com/poparab/jarz_pos/blob/main/jarz_pos/tasks.py"

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_custom_pos,node_pos_api,node_cart,node_bundles,node_invoice toneBlue
class node_delivery_api,node_delivery_handling,node_delivery_trip,node_routing,node_erpnext toneAmber
class node_crm_api,node_crm_followups,node_task_api,node_task_board,node_manager_api,node_tasks toneMint
class node_analytics_api,node_analytics_pages,node_scheduler toneRose
class node_staff,node_osrm toneIndigo
```

## Components

### Point of Sale

- [Custom POS](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/page/custom_pos/custom_pos.py): `jarz_pos/page/custom_pos/custom_pos.py`
- [POS API](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/pos.py): `jarz_pos/api/pos.py`
- [Cart & Pricing](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/discount_calculation.py): `jarz_pos/services/discount_calculation.py`
- [Bundle Processing](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/bundle_processing.py): `jarz_pos/services/bundle_processing.py`
- [Invoice Creation](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/invoice_creation.py): `jarz_pos/services/invoice_creation.py`

### Delivery Operations

- [Delivery APIs](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/delivery_partners.py): `jarz_pos/api/delivery_partners.py`
- [Delivery Handling](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/delivery_handling.py): `jarz_pos/services/delivery_handling.py`
- [Delivery Trips](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/doctype/delivery_trip/delivery_trip.py): `jarz_pos/doctype/delivery_trip/delivery_trip.py`
- [Route Planning](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/route_planner.py): `jarz_pos/services/route_planner.py`

### Business Operations

- [CRM APIs](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/leads.py): `jarz_pos/api/leads.py`
- [CRM Follow-ups](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/crm/follow_ups.py): `jarz_pos/crm/follow_ups.py`
- [Task Board API](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/tasks.py): `jarz_pos/api/tasks.py`
- [Task Board](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/services/task_board.py): `jarz_pos/services/task_board.py`
- [Manager Dashboard](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/manager.py): `jarz_pos/api/manager.py`
- [Scheduled Jobs](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/tasks.py): `jarz_pos/tasks.py`

### Analytics

- [Analytics APIs](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/api/executive_analytics.py): `jarz_pos/api/executive_analytics.py`
- [Analytics Pages](https://github.com/poparab/jarz_pos/blob/main/jarz_pos/page/executive_analytics/executive_analytics.py): `jarz_pos/page/executive_analytics/executive_analytics.py`

### Other components

- **POS Staff**
- **ERPNext**
- **OSRM Service**
- **Scheduler**

## Connections

- POS Staff → Custom POS: uses
- Custom POS → POS API: requests POS data
- POS API → Cart & Pricing: prices cart
- POS API → Bundle Processing: processes bundles
- POS API → Invoice Creation: creates invoice
- Invoice Creation → ERPNext: writes sales invoice
- Delivery APIs → Delivery Handling: handles delivery
- Delivery Handling → ERPNext: updates delivery records
- Delivery Handling → Delivery Trips: manages trips
- Route Planning → OSRM Service: requests road routes
- CRM APIs → ERPNext: reads CRM records
- CRM Follow-ups → ERPNext: creates reminders
- Task Board API → Task Board: applies board rules
- Task Board → ERPNext: reads task records
- Manager Dashboard → ERPNext: reads sales records
- Analytics APIs → ERPNext: queries business data
- Analytics Pages → Analytics APIs: requests analytics
- Scheduler → Scheduled Jobs: runs jobs
- Scheduled Jobs → CRM Follow-ups: schedules reminders
