# joguerra-col/industrial-data-platform architecture

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

- Interactive diagram: https://gitdiagram.com/joguerra-col/industrial-data-platform
- Repository: https://github.com/joguerra-col/industrial-data-platform

## Overview

The repository is an industrial-data learning project whose current runnable workflow is the quarry simulator: an operator invokes the CLI with dates and a seed; it loads plant configuration, builds shifts, simulates haulage/FMS events, and writes reference data and event files. The README also documents a broader planned path from raw sources through Bronze, PostgreSQL, Silver, Gold, and analytics; those stages are not implemented in the sampled runtime. The graph separates that roadmap from working simulator components. Evidence is limited to the README and the excerpts shown.

Main entry points: [`simulator/src/quarry_sim/__main__.py`](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/__main__.py) (Simulator CLI), [`simulator/src/quarry_sim/config.py`](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/config.py) (Plant configuration), [`simulator/src/quarry_sim/haulage.py`](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/haulage.py) (Haulage simulation), [`simulator/src/quarry_sim/writers.py`](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/writers.py) (Output writers)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_runtime["Simulator runtime"]
  node_cli["Simulator CLI<br/>[__main__.py]"]
  node_plantconfig["Plant configuration<br/>[config.py]"]
  node_shiftcalendar["Shift calendar<br/>[calendar.py]"]
  node_haulage["Haulage simulation<br/>[haulage.py]"]
  node_writers["Output writers<br/>[writers.py]"]
  node_generated["Generated reference and FMS files<br/>[writers.py]"]
end

subgraph group_roadmap["Platform roadmap"]
  node_rawsources["Raw source systems"]
  node_bronze[("Bronze raw data")]
  node_postgres[("PostgreSQL")]
  node_silver[("Silver staging")]
  node_gold[("Gold models and KPIs")]
  node_analytics["Analytics"]
end

node_operator(("Operator"))

node_operator -->|"invokes"| node_cli
node_cli -->|"loads"| node_plantconfig
node_cli -->|"builds"| node_shiftcalendar
node_cli -->|"simulates"| node_haulage
node_cli -->|"writes via"| node_writers
node_shiftcalendar -->|"uses"| node_plantconfig
node_haulage -->|"uses shifts"| node_shiftcalendar
node_haulage -->|"uses"| node_plantconfig
node_writers -->|"serializes reference"| node_plantconfig
node_writers -->|"writes"| node_generated
node_rawsources -.->|"lands raw data"| node_bronze
node_bronze -.->|"stores in"| node_postgres
node_postgres -.->|"feeds"| node_silver
node_silver -.->|"feeds"| node_gold
node_gold -.->|"supports"| node_analytics

click node_cli "https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/__main__.py"
click node_plantconfig "https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/config.py"
click node_shiftcalendar "https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/calendar.py"
click node_haulage "https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/haulage.py"
click node_writers "https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/writers.py"
click node_generated "https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/writers.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_cli,node_plantconfig,node_shiftcalendar,node_haulage,node_writers,node_generated toneBlue
class node_rawsources,node_bronze,node_postgres,node_silver,node_gold,node_analytics toneAmber
class node_operator toneIndigo
```

## Components

### Simulator runtime

- [Simulator CLI](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/__main__.py): `simulator/src/quarry_sim/__main__.py`
- [Plant configuration](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/config.py): `simulator/src/quarry_sim/config.py`
- [Shift calendar](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/calendar.py): `simulator/src/quarry_sim/calendar.py`
- [Haulage simulation](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/haulage.py): `simulator/src/quarry_sim/haulage.py`
- [Output writers](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/writers.py): `simulator/src/quarry_sim/writers.py`
- [Generated reference and FMS files](https://github.com/joguerra-col/industrial-data-platform/blob/main/simulator/src/quarry_sim/writers.py): `simulator/src/quarry_sim/writers.py`

### Platform roadmap

- **Raw source systems**
- **Bronze raw data**
- **PostgreSQL**
- **Silver staging**
- **Gold models and KPIs**
- **Analytics**

### Other components

- **Operator**

## Connections

- Operator → Simulator CLI: invokes (evidence: `README.md`)
- Simulator CLI → Plant configuration: loads (evidence: `simulator/src/quarry_sim/__main__.py`)
- Simulator CLI → Shift calendar: builds (evidence: `simulator/src/quarry_sim/__main__.py`)
- Simulator CLI → Haulage simulation: simulates (evidence: `simulator/src/quarry_sim/__main__.py`)
- Simulator CLI → Output writers: writes via (evidence: `simulator/src/quarry_sim/__main__.py`)
- Shift calendar → Plant configuration: uses (evidence: `simulator/src/quarry_sim/calendar.py`)
- Haulage simulation → Shift calendar: uses shifts (evidence: `simulator/src/quarry_sim/haulage.py`)
- Haulage simulation → Plant configuration: uses (evidence: `simulator/src/quarry_sim/haulage.py`)
- Output writers → Plant configuration: serializes reference (evidence: `simulator/src/quarry_sim/writers.py`)
- Output writers → Generated reference and FMS files: writes (evidence: `simulator/src/quarry_sim/writers.py`)
- Raw source systems → Bronze raw data: lands raw data (evidence: `README.md`)
- Bronze raw data → PostgreSQL: stores in (evidence: `README.md`)
- PostgreSQL → Silver staging: feeds (evidence: `README.md`)
- Silver staging → Gold models and KPIs: feeds (evidence: `README.md`)
- Gold models and KPIs → Analytics: supports (evidence: `README.md`)
