# ahmedfarag123/erp_full_tracking architecture

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

- Interactive diagram: https://gitdiagram.com/ahmedfarag123/erp_full_tracking
- Repository: https://github.com/ahmedfarag123/erp_full_tracking

## Overview

Horeca Smart is a multi-role operations platform: an administration dashboard plus sales, driver, and dispatcher apps, backed by Supabase and Odoo-facing edge functions. Users authenticate into role-specific workflows for customer/visit management, delivery and shipment operations, and administrative oversight. The sampled sales route screen loads coordinate-scoped customers and uses the current location to present a route. The tree and README document broader finance, CRM, logistics, and analytics capabilities; their internal links are not asserted where source was not sampled.

Main entry points: [`dashboard-src/src/App.tsx`](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/App.tsx) (Admin application), [`dashboard-src/sales_team/App.tsx`](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/App.tsx) (Sales application), [`dashboard-src/driver_team/src/App.tsx`](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/driver_team/src/App.tsx) (Driver application), [`dashboard-src/src/lib/supabase.ts`](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/lib/supabase.ts) (Supabase services)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_admin["Admin dashboard"]
  node_adminapp["Admin application<br/>[App.tsx]"]
  node_adminauth["Admin authentication<br/>[AuthContext.tsx]"]
  node_crm["CRM management<br/>[OdooCrmPage.tsx]"]
  node_finance["Finance operations"]
  node_adminlogistics["Logistics oversight"]
  node_analytics["Analytics and KPIs"]
  node_customerservice["Customer service"]
end

subgraph group_sales["Sales app"]
  node_salesapp["Sales application<br/>[App.tsx]"]
  node_salesauth["Sales authentication<br/>[authStore.ts]"]
  node_salesstore["Sales activity state<br/>[appStore.ts]"]
  node_salescheckin["Customer check-in<br/>[CheckInPage.tsx]"]
  node_salesroutes["Customer routes<br/>[RoutesPage.tsx]"]
  node_customerqueries["Scoped customer lookup<br/>[customerQueries.ts]"]
  node_location["Location utilities<br/>[location.ts]"]
end

subgraph group_logistics["Field logistics apps"]
  node_dispatcher["Dispatcher application<br/>[App.tsx]"]
  node_orderstore["Dispatcher order state<br/>[orderStore.ts]"]
  node_driver["Driver application<br/>[App.tsx]"]
  node_driverworkflow["Driver delivery workflow<br/>[driverWorkflow.ts]"]
  node_driverlocation["Driver location tracking"]
end

subgraph group_backend["Backend integrations"]
  node_supabase[("Supabase services<br/>[supabase.ts]")]
  node_edgefunctions["Edge functions"]
  node_odoo[("Odoo ERP")]
  node_odoo_shared["Odoo integration helpers<br/>[odoo.ts]"]
  node_scorecards["Scorecard queries<br/>[index.ts]"]
  node_snapshots[("Collection snapshots")]
end

node_user(("Operations user"))

node_user -.->|"uses"| node_adminapp
node_user -.->|"uses"| node_salesapp
node_user -.->|"uses"| node_dispatcher
node_user -.->|"uses"| node_driver
node_adminapp -->|"provides auth"| node_adminauth
node_adminapp -->|"routes to"| node_crm
node_adminapp -->|"routes to"| node_finance
node_adminapp -->|"routes to"| node_adminlogistics
node_adminapp -->|"routes to"| node_analytics
node_adminapp -->|"routes to"| node_customerservice
node_customerservice -->|"loads ticket data"| node_supabase
node_salesapp -->|"uses"| node_salesauth
node_salesapp -->|"updates"| node_salesstore
node_salesroutes -->|"fetches customers"| node_customerqueries
node_salesroutes -->|"calculates distances"| node_location
node_salesroutes -->|"reads location"| node_salesstore
node_dispatcher -->|"uses"| node_orderstore
node_driver -->|"tracks location"| node_driverlocation
node_driver -.->|"supports deliveries"| node_driverworkflow
node_edgefunctions -.->|"uses helpers"| node_odoo_shared
node_scorecards -->|"imports"| node_odoo_shared
node_scorecards -->|"uses snapshots"| node_snapshots
node_scorecards -.->|"queries"| node_odoo
node_salesapp -.->|"uses services"| node_supabase
node_dispatcher -->|"uses services"| node_supabase
node_driver -.->|"uses services"| node_supabase

click node_adminapp "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/App.tsx"
click node_adminauth "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/context/AuthContext.tsx"
click node_crm "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/pages/Admin/OdooCrmPage.tsx"
click node_finance "https://github.com/ahmedfarag123/erp_full_tracking/tree/main/dashboard-src/src/pages/Admin"
click node_adminlogistics "https://github.com/ahmedfarag123/erp_full_tracking/tree/main/dashboard-src/src/pages/Admin/Logistics"
click node_analytics "https://github.com/ahmedfarag123/erp_full_tracking/tree/main/dashboard-src/src/pages/Admin"
click node_customerservice "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/pages/Admin/CustomerServicePage.tsx"
click node_salesapp "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/App.tsx"
click node_salesauth "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/store/authStore.ts"
click node_salesstore "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/store/appStore.ts"
click node_salescheckin "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/components/checkin/CheckInPage.tsx"
click node_salesroutes "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/components/routes/RoutesPage.tsx"
click node_customerqueries "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/lib/customerQueries.ts"
click node_location "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/lib/location.ts"
click node_dispatcher "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/dispatcher/src/App.tsx"
click node_orderstore "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/dispatcher/src/stores/orderStore.ts"
click node_driver "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/driver_team/src/App.tsx"
click node_driverworkflow "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/driver_team/src/services/driverWorkflow.ts"
click node_driverlocation "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/driver_team/src/hooks/useDriverLocationTracking.ts"
click node_supabase "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/lib/supabase.ts"
click node_edgefunctions "https://github.com/ahmedfarag123/erp_full_tracking/tree/main/backend/volumes/functions"
click node_odoo_shared "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/backend/volumes/functions/_shared/odoo.ts"
click node_scorecards "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/backend/volumes/functions/scorecards-odoo-query/index.ts"
click node_snapshots "https://github.com/ahmedfarag123/erp_full_tracking/blob/main/backend/volumes/functions/scorecards-odoo-query/collection-data/collection_snapshots.ts"

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_adminapp,node_adminauth,node_crm,node_finance,node_adminlogistics,node_analytics,node_customerservice,node_user toneBlue
class node_salesapp,node_salesauth,node_salesstore,node_salescheckin,node_salesroutes,node_customerqueries,node_location toneAmber
class node_dispatcher,node_orderstore,node_driver,node_driverworkflow,node_driverlocation toneMint
class node_supabase,node_edgefunctions,node_odoo,node_odoo_shared,node_scorecards,node_snapshots toneRose
```

## Components

### Admin dashboard

- [Admin application](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/App.tsx): `dashboard-src/src/App.tsx`
- [Admin authentication](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/context/AuthContext.tsx): `dashboard-src/src/context/AuthContext.tsx`
- [CRM management](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/pages/Admin/OdooCrmPage.tsx): `dashboard-src/src/pages/Admin/OdooCrmPage.tsx`
- [Finance operations](https://github.com/ahmedfarag123/erp_full_tracking/tree/main/dashboard-src/src/pages/Admin): `dashboard-src/src/pages/Admin`
- [Logistics oversight](https://github.com/ahmedfarag123/erp_full_tracking/tree/main/dashboard-src/src/pages/Admin/Logistics): `dashboard-src/src/pages/Admin/Logistics`
- [Analytics and KPIs](https://github.com/ahmedfarag123/erp_full_tracking/tree/main/dashboard-src/src/pages/Admin): `dashboard-src/src/pages/Admin`
- [Customer service](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/pages/Admin/CustomerServicePage.tsx): `dashboard-src/src/pages/Admin/CustomerServicePage.tsx`

### Sales app

- [Sales application](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/App.tsx): `dashboard-src/sales_team/App.tsx`
- [Sales authentication](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/store/authStore.ts): `dashboard-src/sales_team/store/authStore.ts`
- [Sales activity state](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/store/appStore.ts): `dashboard-src/sales_team/store/appStore.ts`
- [Customer check-in](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/components/checkin/CheckInPage.tsx): `dashboard-src/sales_team/components/checkin/CheckInPage.tsx`
- [Customer routes](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/components/routes/RoutesPage.tsx): `dashboard-src/sales_team/components/routes/RoutesPage.tsx`
- [Scoped customer lookup](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/lib/customerQueries.ts): `dashboard-src/sales_team/lib/customerQueries.ts`
- [Location utilities](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/sales_team/lib/location.ts): `dashboard-src/sales_team/lib/location.ts`

### Field logistics apps

- [Dispatcher application](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/dispatcher/src/App.tsx): `dashboard-src/dispatcher/src/App.tsx`
- [Dispatcher order state](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/dispatcher/src/stores/orderStore.ts): `dashboard-src/dispatcher/src/stores/orderStore.ts`
- [Driver application](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/driver_team/src/App.tsx): `dashboard-src/driver_team/src/App.tsx`
- [Driver delivery workflow](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/driver_team/src/services/driverWorkflow.ts): `dashboard-src/driver_team/src/services/driverWorkflow.ts`
- [Driver location tracking](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/driver_team/src/hooks/useDriverLocationTracking.ts): `dashboard-src/driver_team/src/hooks/useDriverLocationTracking.ts`

### Backend integrations

- [Supabase services](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/dashboard-src/src/lib/supabase.ts): `dashboard-src/src/lib/supabase.ts`
- [Edge functions](https://github.com/ahmedfarag123/erp_full_tracking/tree/main/backend/volumes/functions): `backend/volumes/functions`
- **Odoo ERP**
- [Odoo integration helpers](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/backend/volumes/functions/_shared/odoo.ts): `backend/volumes/functions/_shared/odoo.ts`
- [Scorecard queries](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/backend/volumes/functions/scorecards-odoo-query/index.ts): `backend/volumes/functions/scorecards-odoo-query/index.ts`
- [Collection snapshots](https://github.com/ahmedfarag123/erp_full_tracking/blob/main/backend/volumes/functions/scorecards-odoo-query/collection-data/collection_snapshots.ts): `backend/volumes/functions/scorecards-odoo-query/collection-data/collection_snapshots.ts`

### Other components

- **Operations user**

## Connections

- Operations user → Admin application: uses
- Operations user → Sales application: uses
- Operations user → Dispatcher application: uses
- Operations user → Driver application: uses
- Admin application → Admin authentication: provides auth (evidence: `dashboard-src/src/main.tsx`)
- Admin application → CRM management: routes to (evidence: `dashboard-src/src/App.tsx`)
- Admin application → Finance operations: routes to (evidence: `dashboard-src/src/App.tsx`)
- Admin application → Logistics oversight: routes to (evidence: `dashboard-src/src/App.tsx`)
- Admin application → Analytics and KPIs: routes to (evidence: `dashboard-src/src/App.tsx`)
- Admin application → Customer service: routes to (evidence: `dashboard-src/src/App.tsx`)
- Customer service → Supabase services: loads ticket data (evidence: `dashboard-src/src/pages/Admin/CustomerServicePage.tsx`)
- Sales application → Sales authentication: uses (evidence: `dashboard-src/sales_team/App.tsx`)
- Sales application → Sales activity state: updates (evidence: `dashboard-src/sales_team/App.tsx`)
- Customer routes → Scoped customer lookup: fetches customers (evidence: `dashboard-src/sales_team/components/routes/RoutesPage.tsx`)
- Customer routes → Location utilities: calculates distances (evidence: `dashboard-src/sales_team/components/routes/RoutesPage.tsx`)
- Customer routes → Sales activity state: reads location (evidence: `dashboard-src/sales_team/components/routes/RoutesPage.tsx`)
- Dispatcher application → Dispatcher order state: uses (evidence: `dashboard-src/dispatcher/src/App.tsx`)
- Driver application → Driver location tracking: tracks location (evidence: `dashboard-src/driver_team/src/App.tsx`)
- Driver application → Driver delivery workflow: supports deliveries
- Edge functions → Odoo integration helpers: uses helpers (evidence: `backend/volumes/functions/scorecards-odoo-query/index.ts`)
- Scorecard queries → Odoo integration helpers: imports (evidence: `backend/volumes/functions/scorecards-odoo-query/index.ts`)
- Scorecard queries → Collection snapshots: uses snapshots (evidence: `backend/volumes/functions/scorecards-odoo-query/index.ts`)
- Scorecard queries → Odoo ERP: queries
- Sales application → Supabase services: uses services
- Dispatcher application → Supabase services: uses services (evidence: `dashboard-src/dispatcher/src/App.tsx`)
- Driver application → Supabase services: uses services
