# madhavkumaryadav/networksecurity architecture

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

- Interactive diagram: https://gitdiagram.com/madhavkumaryadav/networksecurity
- Repository: https://github.com/madhavkumaryadav/networksecurity

## Overview

This repository implements a phishing and malicious-network binary classifier with a staged training pipeline and CSV batch prediction API. The documented user workflow is to submit feature data and receive row-level predictions; the sampled runtime implements that through FastAPI in `app.py`, despite the README describing a Streamlit interface. Training is orchestrated separately through ingestion, validation, transformation, and model training. Validation and transformation source were not sampled, so their internal behavior and any unverified integrations are not expanded here.

Main entry points: [`app.py`](https://github.com/madhavkumaryadav/networksecurity/blob/main/app.py) (FastAPI routes), [`networksecurity/pipeline/training_Pipeline.py`](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/pipeline/training_Pipeline.py) (Training pipeline), [`networksecurity/components/model_trainer.py`](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/model_trainer.py) (Model trainer), [`networksecurity/components/data_ingestion.py`](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_ingestion.py) (Data ingestion)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_api["Prediction API"]
  node_api["FastAPI routes<br/>[app.py]"]
  node_upload["CSV upload<br/>[app.py]"]
  node_result["HTML results<br/>[table.html]"]
end

subgraph group_training["Model Training"]
  node_pipeline["Training pipeline"]
  node_ingestion["Data ingestion<br/>[data_ingestion.py]"]
  node_validation["Data validation<br/>[data_validation.py]"]
  node_transformation["Data transformation"]
end

subgraph group_data["Data and Artifacts"]
  node_schema["Feature schema<br/>[schema.yaml]"]
  node_mongo[("MongoDB")]
  node_feature_store["Feature store<br/>[data_ingestion.py]"]
  node_artifacts["Pipeline artifacts<br/>[artifact_entity.py]"]
  node_model_files["Saved model files<br/>[models.pkl]"]
  node_preprocessor_file["Saved preprocessor<br/>[preprocessor.pkl]"]
  node_utils["Serialization utilities<br/>[Utils.py]"]
end

subgraph group_model["Model Evaluation"]
  node_trainer["Model trainer<br/>[model_trainer.py]"]
  node_metrics["Classification metrics"]
  node_tracking["MLflow tracking<br/>[model_trainer.py]"]
  node_estimator["Prediction estimator<br/>[estimator.py]"]
end

node_user(("CSV user"))

node_user -->|"submits CSV"| node_api
node_api -->|"reads upload"| node_upload
node_api -->|"invokes prediction"| node_estimator
node_api -->|"loads model"| node_model_files
node_api -->|"loads preprocessor"| node_preprocessor_file
node_estimator -->|"returns predictions"| node_result
node_api -->|"renders HTML"| node_result
node_api -->|"starts training"| node_pipeline
node_pipeline -->|"starts ingestion"| node_ingestion
node_pipeline -->|"starts validation"| node_validation
node_pipeline -->|"starts transformation"| node_transformation
node_pipeline -->|"starts training"| node_trainer
node_ingestion -->|"reads records"| node_mongo
node_ingestion -->|"writes CSV"| node_feature_store
node_ingestion -->|"returns paths"| node_artifacts
node_pipeline -->|"passes stage outputs"| node_artifacts
node_validation -->|"validates against"| node_schema
node_trainer -->|"calculates scores"| node_metrics
node_trainer -.->|"logs metrics and model"| node_tracking
node_trainer -->|"saves model"| node_utils
node_utils -->|"writes pickle"| node_model_files
node_trainer -->|"returns metrics and path"| node_artifacts
node_estimator -->|"transforms with"| node_preprocessor_file
node_estimator -->|"predicts with"| node_model_files

click node_api "https://github.com/madhavkumaryadav/networksecurity/blob/main/app.py"
click node_upload "https://github.com/madhavkumaryadav/networksecurity/blob/main/app.py"
click node_result "https://github.com/madhavkumaryadav/networksecurity/blob/main/templates/table.html"
click node_pipeline "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/pipeline/training_Pipeline.py"
click node_ingestion "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_ingestion.py"
click node_validation "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_validation.py"
click node_transformation "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_transformation.py"
click node_trainer "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/model_trainer.py"
click node_schema "https://github.com/madhavkumaryadav/networksecurity/blob/main/data_schema/schema.yaml"
click node_feature_store "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_ingestion.py"
click node_artifacts "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/entity/artifact_entity.py"
click node_metrics "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/utils/ml_utils/metric/classification_metric.py"
click node_tracking "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/model_trainer.py"
click node_model_files "https://github.com/madhavkumaryadav/networksecurity/blob/main/final_models/models.pkl"
click node_preprocessor_file "https://github.com/madhavkumaryadav/networksecurity/blob/main/final_models/preprocessor.pkl"
click node_estimator "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/utils/ml_utils/model/estimator.py"
click node_utils "https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/utils/main_utils/Utils.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_api,node_upload,node_result,node_user toneBlue
class node_pipeline,node_ingestion,node_validation,node_transformation toneAmber
class node_schema,node_mongo,node_feature_store,node_artifacts,node_model_files,node_preprocessor_file,node_utils toneMint
class node_trainer,node_metrics,node_tracking,node_estimator toneRose
```

## Components

### Prediction API

- [FastAPI routes](https://github.com/madhavkumaryadav/networksecurity/blob/main/app.py): `app.py`
- [CSV upload](https://github.com/madhavkumaryadav/networksecurity/blob/main/app.py): `app.py`
- [HTML results](https://github.com/madhavkumaryadav/networksecurity/blob/main/templates/table.html): `templates/table.html`

### Model Training

- [Training pipeline](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/pipeline/training_Pipeline.py): `networksecurity/pipeline/training_Pipeline.py`
- [Data ingestion](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_ingestion.py): `networksecurity/components/data_ingestion.py`
- [Data validation](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_validation.py): `networksecurity/components/data_validation.py`
- [Data transformation](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_transformation.py): `networksecurity/components/data_transformation.py`

### Data and Artifacts

- [Feature schema](https://github.com/madhavkumaryadav/networksecurity/blob/main/data_schema/schema.yaml): `data_schema/schema.yaml`
- **MongoDB**
- [Feature store](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/data_ingestion.py): `networksecurity/components/data_ingestion.py`
- [Pipeline artifacts](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/entity/artifact_entity.py): `networksecurity/entity/artifact_entity.py`
- [Saved model files](https://github.com/madhavkumaryadav/networksecurity/blob/main/final_models/models.pkl): `final_models/models.pkl`
- [Saved preprocessor](https://github.com/madhavkumaryadav/networksecurity/blob/main/final_models/preprocessor.pkl): `final_models/preprocessor.pkl`
- [Serialization utilities](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/utils/main_utils/Utils.py): `networksecurity/utils/main_utils/Utils.py`

### Model Evaluation

- [Model trainer](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/model_trainer.py): `networksecurity/components/model_trainer.py`
- [Classification metrics](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/utils/ml_utils/metric/classification_metric.py): `networksecurity/utils/ml_utils/metric/classification_metric.py`
- [MLflow tracking](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/components/model_trainer.py): `networksecurity/components/model_trainer.py`
- [Prediction estimator](https://github.com/madhavkumaryadav/networksecurity/blob/main/networksecurity/utils/ml_utils/model/estimator.py): `networksecurity/utils/ml_utils/model/estimator.py`

### Other components

- **CSV user**

## Connections

- CSV user → FastAPI routes: submits CSV
- FastAPI routes → CSV upload: reads upload
- FastAPI routes → Prediction estimator: invokes prediction
- FastAPI routes → Saved model files: loads model
- FastAPI routes → Saved preprocessor: loads preprocessor
- Prediction estimator → HTML results: returns predictions
- FastAPI routes → HTML results: renders HTML
- FastAPI routes → Training pipeline: starts training
- Training pipeline → Data ingestion: starts ingestion
- Training pipeline → Data validation: starts validation
- Training pipeline → Data transformation: starts transformation
- Training pipeline → Model trainer: starts training
- Data ingestion → MongoDB: reads records
- Data ingestion → Feature store: writes CSV
- Data ingestion → Pipeline artifacts: returns paths
- Training pipeline → Pipeline artifacts: passes stage outputs
- Data validation → Feature schema: validates against
- Model trainer → Classification metrics: calculates scores
- Model trainer → MLflow tracking: logs metrics and model
- Model trainer → Serialization utilities: saves model
- Serialization utilities → Saved model files: writes pickle
- Model trainer → Pipeline artifacts: returns metrics and path
- Prediction estimator → Saved preprocessor: transforms with
- Prediction estimator → Saved model files: predicts with
