# saad0508/sales-data-analysis architecture

> Architecture diagram of the GitHub repository saad0508/sales-data-analysis, 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/saad0508/sales-data-analysis
- Repository: https://github.com/saad0508/sales-data-analysis

## Overview

This repository provides a sales analytics dashboard and a separate batch-analysis script. In the dashboard workflow, a user selects region, category, and segment filters; the app loads and parses the sales CSV, computes filtered KPIs and sales breakdowns, then presents interactive charts and a data table. The batch script prints summary statistics and business insights and saves some charts. The tree contains `Data/train.csv`, while `Main.py` requests `data/train.csv` with different capitalization; successful batch loading is therefore uncertain. The README is empty, so capabilities are based on the sampled source.

Main entry points: [`app.py`](https://github.com/saad0508/sales-data-analysis/blob/main/app.py) (Dimension filters), [`Main.py`](https://github.com/saad0508/sales-data-analysis/blob/main/Main.py) (Batch analysis), [`Data/train.csv`](https://github.com/saad0508/sales-data-analysis/blob/main/Data/train.csv) (Sales CSV), [`charts`](https://github.com/saad0508/sales-data-analysis/tree/main/charts) (Saved charts)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_dashboard["Interactive dashboard"]
  node_dashboard_app["Streamlit dashboard<br/>[app.py]"]
  node_data_loader["Load and parse<br/>[app.py]"]
  node_filters["Dimension filters<br/>[app.py]"]
  node_kpis["Sales KPIs<br/>[app.py]"]
  node_trend["Sales trend<br/>[app.py]"]
  node_category_region["Category and region<br/>[app.py]"]
  node_top_products["Top products<br/>[app.py]"]
  node_data_table["Filtered data table<br/>[app.py]"]
end

subgraph group_batch["Batch analysis"]
  node_batch_script["Batch analysis<br/>[Main.py]"]
  node_quality_checks["Dataset checks<br/>[Main.py]"]
  node_batch_summaries["Sales summaries<br/>[Main.py]"]
  node_batch_charts["Batch charts<br/>[Main.py]"]
  node_insights["Business insights<br/>[Main.py]"]
  node_chart_files["Saved charts"]
end

subgraph group_data["Sales data"]
  node_sales_csv["Sales CSV<br/>[train.csv]"]
end

node_user(("Dashboard user"))

node_user -->|"uses"| node_dashboard_app
node_dashboard_app -->|"loads data"| node_data_loader
node_data_loader -->|"reads"| node_sales_csv
node_dashboard_app -->|"applies"| node_filters
node_filters -->|"computes"| node_kpis
node_filters -->|"groups dates"| node_trend
node_filters -->|"groups sales"| node_category_region
node_filters -->|"ranks sales"| node_top_products
node_filters -->|"displays rows"| node_data_table
node_batch_script -->|"reads"| node_sales_csv
node_batch_script -->|"checks"| node_quality_checks
node_batch_script -->|"computes"| node_batch_summaries
node_batch_script -->|"plots"| node_batch_charts
node_batch_charts -->|"saves"| node_chart_files
node_batch_script -->|"derives"| node_insights

click node_dashboard_app "https://github.com/saad0508/sales-data-analysis/blob/main/app.py"
click node_data_loader "https://github.com/saad0508/sales-data-analysis/blob/main/app.py"
click node_filters "https://github.com/saad0508/sales-data-analysis/blob/main/app.py"
click node_kpis "https://github.com/saad0508/sales-data-analysis/blob/main/app.py"
click node_trend "https://github.com/saad0508/sales-data-analysis/blob/main/app.py"
click node_category_region "https://github.com/saad0508/sales-data-analysis/blob/main/app.py"
click node_top_products "https://github.com/saad0508/sales-data-analysis/blob/main/app.py"
click node_data_table "https://github.com/saad0508/sales-data-analysis/blob/main/app.py"
click node_batch_script "https://github.com/saad0508/sales-data-analysis/blob/main/Main.py"
click node_quality_checks "https://github.com/saad0508/sales-data-analysis/blob/main/Main.py"
click node_batch_summaries "https://github.com/saad0508/sales-data-analysis/blob/main/Main.py"
click node_batch_charts "https://github.com/saad0508/sales-data-analysis/blob/main/Main.py"
click node_insights "https://github.com/saad0508/sales-data-analysis/blob/main/Main.py"
click node_sales_csv "https://github.com/saad0508/sales-data-analysis/blob/main/Data/train.csv"
click node_chart_files "https://github.com/saad0508/sales-data-analysis/tree/main/charts"

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_dashboard_app,node_data_loader,node_filters,node_kpis,node_trend,node_category_region,node_top_products,node_data_table,node_user toneBlue
class node_batch_script,node_quality_checks,node_batch_summaries,node_batch_charts,node_insights,node_chart_files toneAmber
class node_sales_csv toneMint
```

## Components

### Interactive dashboard

- [Streamlit dashboard](https://github.com/saad0508/sales-data-analysis/blob/main/app.py): `app.py`
- [Load and parse](https://github.com/saad0508/sales-data-analysis/blob/main/app.py): `app.py`
- [Dimension filters](https://github.com/saad0508/sales-data-analysis/blob/main/app.py): `app.py`
- [Sales KPIs](https://github.com/saad0508/sales-data-analysis/blob/main/app.py): `app.py`
- [Sales trend](https://github.com/saad0508/sales-data-analysis/blob/main/app.py): `app.py`
- [Category and region](https://github.com/saad0508/sales-data-analysis/blob/main/app.py): `app.py`
- [Top products](https://github.com/saad0508/sales-data-analysis/blob/main/app.py): `app.py`
- [Filtered data table](https://github.com/saad0508/sales-data-analysis/blob/main/app.py): `app.py`

### Batch analysis

- [Batch analysis](https://github.com/saad0508/sales-data-analysis/blob/main/Main.py): `Main.py`
- [Dataset checks](https://github.com/saad0508/sales-data-analysis/blob/main/Main.py): `Main.py`
- [Sales summaries](https://github.com/saad0508/sales-data-analysis/blob/main/Main.py): `Main.py`
- [Batch charts](https://github.com/saad0508/sales-data-analysis/blob/main/Main.py): `Main.py`
- [Business insights](https://github.com/saad0508/sales-data-analysis/blob/main/Main.py): `Main.py`
- [Saved charts](https://github.com/saad0508/sales-data-analysis/tree/main/charts): `charts`

### Sales data

- [Sales CSV](https://github.com/saad0508/sales-data-analysis/blob/main/Data/train.csv): `Data/train.csv`

### Other components

- **Dashboard user**

## Connections

- Dashboard user → Streamlit dashboard: uses
- Streamlit dashboard → Load and parse: loads data
- Load and parse → Sales CSV: reads
- Streamlit dashboard → Dimension filters: applies
- Dimension filters → Sales KPIs: computes
- Dimension filters → Sales trend: groups dates
- Dimension filters → Category and region: groups sales
- Dimension filters → Top products: ranks sales
- Dimension filters → Filtered data table: displays rows
- Batch analysis → Sales CSV: reads
- Batch analysis → Dataset checks: checks
- Batch analysis → Sales summaries: computes
- Batch analysis → Batch charts: plots
- Batch charts → Saved charts: saves
- Batch analysis → Business insights: derives
