# riyapatil04/restaurant-business-analytics architecture

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

- Interactive diagram: https://gitdiagram.com/riyapatil04/restaurant-business-analytics
- Repository: https://github.com/riyapatil04/restaurant-business-analytics

## Overview

Restaurant Business Analytics turns POS transactions and menu-cost data into cleaned, validated analytics and interactive decision-support dashboards. The documented user workflow runs or refreshes the ETL pipeline, then presents revenue, menu profitability, demand, basket behavior, and business-action insights. The graph preserves these distinct analysis areas and the SQLite load stage. Some pipeline orchestration and page wiring are documented but not excerpted; those relationships cite the README, and unsampled implementation details are not inferred.

Main entry points: [`etl/transform/dashboard/dashboard_master.py`](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/dashboard/dashboard_master.py) (Dashboard datasets), [`etl/run_pipeline.py`](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/run_pipeline.py) (ETL pipeline), [`dashboard/app.py`](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/app.py) (Executive overview), [`etl/extract.py`](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/extract.py) (Extract source data)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ingest["Data preparation"]
  node_extract["Extract source data<br/>[extract.py]"]
  node_clean["Clean transactions<br/>[clean.py]"]
  node_pipeline["ETL pipeline<br/>[run_pipeline.py]"]
end

subgraph group_analysis["Business analytics"]
  node_shared["Order aggregation<br/>[common.py]"]
  node_sales["Sales trends"]
  node_menu["Menu performance<br/>[menu_analysis.py]"]
  node_profit["Profitability and COGS"]
  node_matrix["Menu engineering<br/>[menu_matrix.py]"]
  node_basket["Basket behavior<br/>[order_behavior.py]"]
  node_operations["Operations insights"]
  node_strategic["Strategic analysis"]
  node_analytics["Dashboard datasets"]
end

subgraph group_storage["Persistence and quality"]
  node_validate["Validate data<br/>[validate.py]"]
  node_database[("SQLite database load<br/>[load_database.py]")]
  node_quality["Quality reporting<br/>[quality_report.py]"]
end

subgraph group_dashboard["Decision support"]
  node_app["Executive overview<br/>[app.py]"]
  node_salespage["Sales analysis"]
  node_menupage["Menu profitability"]
  node_basketpage["Basket behavior"]
  node_actionspage["Business actions"]
  node_refresh["Refresh control<br/>[pipeline_runner.py]"]
  node_dashquality["Quality summary<br/>[data_quality.py]"]
  node_dashcommon["Dashboard data access<br/>[common.py]"]
end

node_owner(("Restaurant owner"))
node_raw["POS and menu data"]

node_owner -->|"views insights"| node_app
node_raw -->|"loads"| node_extract
node_extract -->|"loads inputs"| node_clean
node_extract -->|"loads inputs"| node_validate
node_clean -.->|"feeds pipeline"| node_pipeline
node_pipeline -->|"loads database"| node_database
node_pipeline -->|"runs checks"| node_quality
node_pipeline -->|"generates datasets"| node_analytics
node_shared -->|"provides aggregation"| node_basket
node_analytics -->|"supplies analytics"| node_app
node_analytics -->|"supplies analytics"| node_salespage
node_analytics -->|"supplies analytics"| node_menupage
node_analytics -->|"supplies analytics"| node_basketpage
node_analytics -->|"supplies analytics"| node_actionspage
node_app -->|"imports helpers"| node_dashcommon
node_app -->|"requests summary"| node_dashquality
node_app -->|"requests refresh"| node_refresh
node_refresh -->|"runs pipeline"| node_pipeline
node_dashquality -.->|"reads report"| node_quality

click node_extract "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/extract.py"
click node_clean "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/clean/clean.py"
click node_validate "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/validate/validate.py"
click node_pipeline "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/run_pipeline.py"
click node_database "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/database/load_database.py"
click node_quality "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/quality_report.py"
click node_shared "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/common.py"
click node_sales "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/sales/sales_trend_analysis.py"
click node_menu "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/menu_analysis.py"
click node_profit "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/profitability_summary.py"
click node_matrix "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/menu_matrix.py"
click node_basket "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/order_behavior.py"
click node_operations "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/operations_analysis.py"
click node_strategic "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/strategic/strategic_analysis.py"
click node_analytics "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/dashboard/dashboard_master.py"
click node_app "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/app.py"
click node_salespage "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pages/1_Sales_Analysis.py"
click node_menupage "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pages/2_Menu_Profitability.py"
click node_basketpage "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pages/3_Order_Basket_Behavior.py"
click node_actionspage "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pages/4_Business_Actions.py"
click node_refresh "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pipeline_runner.py"
click node_dashquality "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/data_quality.py"
click node_dashcommon "https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/common.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_extract,node_clean,node_pipeline toneBlue
class node_shared,node_sales,node_menu,node_profit,node_matrix,node_basket,node_operations,node_strategic,node_analytics toneAmber
class node_validate,node_database,node_quality toneMint
class node_app,node_salespage,node_menupage,node_basketpage,node_actionspage,node_refresh,node_dashquality,node_dashcommon toneRose
class node_owner,node_raw toneIndigo
```

## Components

### Data preparation

- [Extract source data](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/extract.py): `etl/extract.py`
- [Clean transactions](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/clean/clean.py): `etl/clean/clean.py`
- [ETL pipeline](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/run_pipeline.py): `etl/run_pipeline.py`

### Business analytics

- [Order aggregation](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/common.py): `etl/transform/common.py`
- [Sales trends](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/sales/sales_trend_analysis.py): `etl/transform/sales/sales_trend_analysis.py`
- [Menu performance](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/menu_analysis.py): `etl/transform/menu_analysis.py`
- [Profitability and COGS](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/profitability_summary.py): `etl/transform/profitability_summary.py`
- [Menu engineering](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/menu_matrix.py): `etl/transform/menu_matrix.py`
- [Basket behavior](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/order_behavior.py): `etl/transform/order_behavior.py`
- [Operations insights](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/operations_analysis.py): `etl/transform/operations_analysis.py`
- [Strategic analysis](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/strategic/strategic_analysis.py): `etl/transform/strategic/strategic_analysis.py`
- [Dashboard datasets](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/transform/dashboard/dashboard_master.py): `etl/transform/dashboard/dashboard_master.py`

### Persistence and quality

- [Validate data](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/validate/validate.py): `etl/validate/validate.py`
- [SQLite database load](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/database/load_database.py): `database/load_database.py`
- [Quality reporting](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/etl/quality_report.py): `etl/quality_report.py`

### Decision support

- [Executive overview](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/app.py): `dashboard/app.py`
- [Sales analysis](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pages/1_Sales_Analysis.py): `dashboard/pages/1_Sales_Analysis.py`
- [Menu profitability](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pages/2_Menu_Profitability.py): `dashboard/pages/2_Menu_Profitability.py`
- [Basket behavior](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pages/3_Order_Basket_Behavior.py): `dashboard/pages/3_Order_Basket_Behavior.py`
- [Business actions](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pages/4_Business_Actions.py): `dashboard/pages/4_Business_Actions.py`
- [Refresh control](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/pipeline_runner.py): `dashboard/pipeline_runner.py`
- [Quality summary](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/data_quality.py): `dashboard/data_quality.py`
- [Dashboard data access](https://github.com/riyapatil04/restaurant-business-analytics/blob/main/dashboard/common.py): `dashboard/common.py`

### Other components

- **Restaurant owner**
- **POS and menu data**

## Connections

- Restaurant owner → Executive overview: views insights (evidence: `README.md`)
- POS and menu data → Extract source data: loads (evidence: `README.md`)
- Extract source data → Clean transactions: loads inputs (evidence: `etl/clean/clean.py`)
- Extract source data → Validate data: loads inputs (evidence: `etl/validate/validate.py`)
- Clean transactions → ETL pipeline: feeds pipeline
- ETL pipeline → SQLite database load: loads database (evidence: `README.md`)
- ETL pipeline → Quality reporting: runs checks (evidence: `README.md`)
- ETL pipeline → Dashboard datasets: generates datasets (evidence: `README.md`)
- Order aggregation → Basket behavior: provides aggregation (evidence: `etl/transform/order_behavior.py`)
- Dashboard datasets → Executive overview: supplies analytics (evidence: `README.md`)
- Dashboard datasets → Sales analysis: supplies analytics (evidence: `README.md`)
- Dashboard datasets → Menu profitability: supplies analytics (evidence: `README.md`)
- Dashboard datasets → Basket behavior: supplies analytics (evidence: `README.md`)
- Dashboard datasets → Business actions: supplies analytics (evidence: `README.md`)
- Executive overview → Dashboard data access: imports helpers (evidence: `dashboard/app.py`)
- Executive overview → Quality summary: requests summary (evidence: `dashboard/app.py`)
- Executive overview → Refresh control: requests refresh (evidence: `dashboard/app.py`)
- Refresh control → ETL pipeline: runs pipeline (evidence: `dashboard/pipeline_runner.py`)
- Quality summary → Quality reporting: reads report
