# tulsip26-hub/cementstrength_predictionmodel architecture

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

- Interactive diagram: https://gitdiagram.com/tulsip26-hub/cementstrength_predictionmodel
- Repository: https://github.com/tulsip26-hub/cementstrength_predictionmodel

## Overview

This repository is a small end-to-end concrete-strength regression pipeline. Running `main.py` starts ingestion, passes the resulting dataframe to preprocessing for duplicate removal, feature/target separation, train-test splitting, and scaling, then passes the prepared data to model building. The model-building stage trains a Random Forest, predicts on the test set, and returns an R² score for printing. The README also identifies `data/Concrete_Data.csv` as the dataset; however, the sampled loader fetches CSV data from a remote GitHub raw-file URL, so the local file’s runtime use is not established.

Main entry points: [`main.py`](https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/main.py) (Pipeline entry), [`src/data_ingestion.py`](https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/data_ingestion.py) (Data ingestion), [`src/model_building.py`](https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/model_building.py) (Random Forest and R²), [`src/data_preprocessing.py`](https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/data_preprocessing.py) (Preprocessing)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_orchestration["Pipeline orchestration"]
  node_main["Pipeline entry<br/>[main.py]"]
end

subgraph group_data["Data preparation"]
  node_ingestion["Data ingestion<br/>[data_ingestion.py]"]
  node_preprocessing["Preprocessing"]
end

subgraph group_modeling["Modeling and evaluation"]
  node_model["Random Forest and R²<br/>[model_building.py]"]
end

node_runner(("Pipeline runner"))
node_dataset_source["Remote CSV source"]

node_runner -->|"runs"| node_main
node_main -->|"calls"| node_ingestion
node_ingestion -->|"fetches CSV"| node_dataset_source
node_ingestion -->|"returns dataframe"| node_main
node_main -->|"passes dataframe"| node_preprocessing
node_main -->|"passes splits"| node_model
node_model -->|"returns R²"| node_main

click node_main "https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/main.py"
click node_ingestion "https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/data_ingestion.py"
click node_preprocessing "https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/data_preprocessing.py"
click node_model "https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/model_building.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_main toneBlue
class node_ingestion,node_preprocessing toneAmber
class node_model toneMint
class node_runner,node_dataset_source toneIndigo
```

## Components

### Pipeline orchestration

- [Pipeline entry](https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/main.py): `main.py`

### Data preparation

- [Data ingestion](https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/data_ingestion.py): `src/data_ingestion.py`
- [Preprocessing](https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/data_preprocessing.py): `src/data_preprocessing.py`

### Modeling and evaluation

- [Random Forest and R²](https://github.com/tulsip26-hub/cementstrength_predictionmodel/blob/main/src/model_building.py): `src/model_building.py`

### Other components

- **Pipeline runner**
- **Remote CSV source**

## Connections

- Pipeline runner → Pipeline entry: runs
- Pipeline entry → Data ingestion: calls
- Data ingestion → Remote CSV source: fetches CSV
- Data ingestion → Pipeline entry: returns dataframe
- Pipeline entry → Preprocessing: passes dataframe
- Pipeline entry → Random Forest and R²: passes splits
- Random Forest and R² → Pipeline entry: returns R²
