# wiranata-orion/analyticshub architecture

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

- Interactive diagram: https://gitdiagram.com/wiranata-orion/analyticshub
- Repository: https://github.com/wiranata-orion/analyticshub

## Overview

AnalyticsHub is a Laravel-backed analytics application with a separate Python computation engine. Its central workflow is dataset upload and profiling, followed by cleaning or feature engineering and analysis/modeling; results and artifacts are retained by the application. The Python dispatcher also exposes statistics, mining, forecasting, quality assessment, recommendations, insights, and explainability. The available excerpts establish the PHP-to-Python boundary and selected service calls; UI routing and several service implementations were not sampled, so those links are omitted.

Main entry points: [`python/main.py`](https://github.com/wiranata-orion/analyticshub/blob/main/python/main.py) (Command Dispatcher), [`app/Services/DatasetService.php`](https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/DatasetService.php) (Dataset Service), [`python/core/loader.py`](https://github.com/wiranata-orion/analyticshub/blob/main/python/core/loader.py) (Dataset Loading), [`app/Services/FeatureEngineeringService.php`](https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/FeatureEngineeringService.php) (Feature Service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_web["Application API"]
  node_dataset_api["Dataset API"]
  node_analysis_api["Analysis API"]
  node_cleaning_api["Cleaning API"]
  node_features_api["Feature API"]
  node_model_api["Model API"]
end

subgraph group_data["Dataset Lifecycle"]
  node_dataset_service["Dataset Service<br/>[DatasetService.php]"]
  node_dataset_records[("Dataset Records<br/>[Dataset.php]")]
  node_dataset_columns[("Column Records<br/>[DatasetColumn.php]")]
  node_feature_service["Feature Service"]
  node_feature_records[("Feature Sets<br/>[FeatureSet.php]")]
end

subgraph group_engine["Python Engine"]
  node_python_bridge["Python Bridge<br/>[PythonEngine.php]"]
  node_dispatcher["Command Dispatcher<br/>[main.py]"]
  node_dataset_io["Dataset Loading<br/>[loader.py]"]
  node_json_io["JSON Utilities<br/>[io.py]"]
end

subgraph group_analytics["Analytics Capabilities"]
  node_analysis_service["Analysis Service"]
  node_cleaning["Data Cleaning<br/>[cleaner.py]"]
  node_profiling["Profiling<br/>[profiler.py]"]
  node_eda["Exploratory Analysis<br/>[analysis.py]"]
  node_statistics["Statistics<br/>[inferential.py]"]
  node_mining["Data Mining<br/>[timeseries.py]"]
  node_quality["Data Quality<br/>[assessment.py]"]
  node_recommendations["Recommendations<br/>[recommender.py]"]
  node_insights["Insight Generation<br/>[generator.py]"]
end

subgraph group_models["Modeling"]
  node_trained_records[("Trained Models<br/>[TrainedModel.php]")]
  node_feature_engine["Feature Engineering<br/>[engineering.py]"]
  node_automl["AutoML<br/>[automl.py]"]
  node_supervised["Supervised Learning<br/>[supervised.py]"]
  node_forecasting["Forecasting<br/>[models.py]"]
  node_explainability["Explainability<br/>[xai.py]"]
end

node_user(("User"))

node_user -.->|"submits data"| node_dataset_api
node_dataset_api -->|"calls"| node_dataset_service
node_analysis_api -->|"calls"| node_analysis_service
node_cleaning_api -.->|"delegates"| node_dataset_service
node_features_api -->|"calls"| node_feature_service
node_model_api -->|"uses"| node_trained_records
node_model_api -->|"uses"| node_dataset_records
node_dataset_service -->|"runs commands"| node_python_bridge
node_dataset_service -->|"profiles and stores"| node_dataset_records
node_dataset_service -->|"stores columns"| node_dataset_columns
node_feature_service -->|"runs transforms"| node_python_bridge
node_feature_service -->|"builds parameters"| node_dataset_service
node_feature_service -->|"creates"| node_feature_records
node_python_bridge -->|"runs process"| node_dispatcher
node_dispatcher -->|"formats responses"| node_json_io
node_dispatcher -->|"dispatches"| node_cleaning
node_dispatcher -->|"dispatches"| node_profiling
node_dispatcher -->|"dispatches"| node_eda
node_dispatcher -->|"dispatches"| node_statistics
node_dispatcher -->|"dispatches"| node_mining
node_dispatcher -->|"dispatches"| node_quality
node_dispatcher -->|"dispatches"| node_recommendations
node_dispatcher -->|"dispatches"| node_insights
node_dispatcher -->|"dispatches"| node_feature_engine
node_dispatcher -->|"dispatches"| node_automl
node_dispatcher -->|"dispatches"| node_supervised
node_dispatcher -->|"dispatches"| node_forecasting
node_dispatcher -->|"dispatches"| node_explainability
node_profiling -->|"loads data"| node_dataset_io
node_cleaning -->|"loads data"| node_dataset_io
node_eda -->|"loads data"| node_dataset_io
node_feature_engine -->|"loads data"| node_dataset_io
node_supervised -->|"loads data"| node_dataset_io
node_analysis_service -.->|"runs analysis"| node_python_bridge

click node_dataset_api "https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/DatasetController.php"
click node_analysis_api "https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/AnalysisController.php"
click node_cleaning_api "https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/CleaningController.php"
click node_features_api "https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/FeatureSetController.php"
click node_model_api "https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/ModelController.php"
click node_dataset_service "https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/DatasetService.php"
click node_dataset_records "https://github.com/wiranata-orion/analyticshub/blob/main/app/Models/Dataset.php"
click node_dataset_columns "https://github.com/wiranata-orion/analyticshub/blob/main/app/Models/DatasetColumn.php"
click node_feature_service "https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/FeatureEngineeringService.php"
click node_feature_records "https://github.com/wiranata-orion/analyticshub/blob/main/app/Models/FeatureSet.php"
click node_trained_records "https://github.com/wiranata-orion/analyticshub/blob/main/app/Models/TrainedModel.php"
click node_analysis_service "https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/AnalysisService.php"
click node_python_bridge "https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/PythonEngine.php"
click node_dispatcher "https://github.com/wiranata-orion/analyticshub/blob/main/python/main.py"
click node_dataset_io "https://github.com/wiranata-orion/analyticshub/blob/main/python/core/loader.py"
click node_cleaning "https://github.com/wiranata-orion/analyticshub/blob/main/python/core/cleaner.py"
click node_profiling "https://github.com/wiranata-orion/analyticshub/blob/main/python/core/profiler.py"
click node_eda "https://github.com/wiranata-orion/analyticshub/blob/main/python/eda/analysis.py"
click node_statistics "https://github.com/wiranata-orion/analyticshub/blob/main/python/stats/inferential.py"
click node_mining "https://github.com/wiranata-orion/analyticshub/blob/main/python/mining/timeseries.py"
click node_quality "https://github.com/wiranata-orion/analyticshub/blob/main/python/quality/assessment.py"
click node_recommendations "https://github.com/wiranata-orion/analyticshub/blob/main/python/core/recommender.py"
click node_insights "https://github.com/wiranata-orion/analyticshub/blob/main/python/insight/generator.py"
click node_feature_engine "https://github.com/wiranata-orion/analyticshub/blob/main/python/preprocessing/engineering.py"
click node_automl "https://github.com/wiranata-orion/analyticshub/blob/main/python/ml/automl.py"
click node_supervised "https://github.com/wiranata-orion/analyticshub/blob/main/python/ml/supervised.py"
click node_forecasting "https://github.com/wiranata-orion/analyticshub/blob/main/python/forecasting/models.py"
click node_explainability "https://github.com/wiranata-orion/analyticshub/blob/main/python/ml/xai.py"
click node_json_io "https://github.com/wiranata-orion/analyticshub/blob/main/python/core/io.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_dataset_api,node_analysis_api,node_cleaning_api,node_features_api,node_model_api,node_user toneBlue
class node_dataset_service,node_dataset_records,node_dataset_columns,node_feature_service,node_feature_records toneAmber
class node_python_bridge,node_dispatcher,node_dataset_io,node_json_io toneMint
class node_analysis_service,node_cleaning,node_profiling,node_eda,node_statistics,node_mining,node_quality,node_recommendations,node_insights toneRose
class node_trained_records,node_feature_engine,node_automl,node_supervised,node_forecasting,node_explainability toneIndigo
```

## Components

### Application API

- [Dataset API](https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/DatasetController.php): `app/Http/Controllers/Api/DatasetController.php`
- [Analysis API](https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/AnalysisController.php): `app/Http/Controllers/Api/AnalysisController.php`
- [Cleaning API](https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/CleaningController.php): `app/Http/Controllers/Api/CleaningController.php`
- [Feature API](https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/FeatureSetController.php): `app/Http/Controllers/Api/FeatureSetController.php`
- [Model API](https://github.com/wiranata-orion/analyticshub/blob/main/app/Http/Controllers/Api/ModelController.php): `app/Http/Controllers/Api/ModelController.php`

### Dataset Lifecycle

- [Dataset Service](https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/DatasetService.php): `app/Services/DatasetService.php`
- [Dataset Records](https://github.com/wiranata-orion/analyticshub/blob/main/app/Models/Dataset.php): `app/Models/Dataset.php`
- [Column Records](https://github.com/wiranata-orion/analyticshub/blob/main/app/Models/DatasetColumn.php): `app/Models/DatasetColumn.php`
- [Feature Service](https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/FeatureEngineeringService.php): `app/Services/FeatureEngineeringService.php`
- [Feature Sets](https://github.com/wiranata-orion/analyticshub/blob/main/app/Models/FeatureSet.php): `app/Models/FeatureSet.php`

### Python Engine

- [Python Bridge](https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/PythonEngine.php): `app/Services/PythonEngine.php`
- [Command Dispatcher](https://github.com/wiranata-orion/analyticshub/blob/main/python/main.py): `python/main.py`
- [Dataset Loading](https://github.com/wiranata-orion/analyticshub/blob/main/python/core/loader.py): `python/core/loader.py`
- [JSON Utilities](https://github.com/wiranata-orion/analyticshub/blob/main/python/core/io.py): `python/core/io.py`

### Analytics Capabilities

- [Analysis Service](https://github.com/wiranata-orion/analyticshub/blob/main/app/Services/AnalysisService.php): `app/Services/AnalysisService.php`
- [Data Cleaning](https://github.com/wiranata-orion/analyticshub/blob/main/python/core/cleaner.py): `python/core/cleaner.py`
- [Profiling](https://github.com/wiranata-orion/analyticshub/blob/main/python/core/profiler.py): `python/core/profiler.py`
- [Exploratory Analysis](https://github.com/wiranata-orion/analyticshub/blob/main/python/eda/analysis.py): `python/eda/analysis.py`
- [Statistics](https://github.com/wiranata-orion/analyticshub/blob/main/python/stats/inferential.py): `python/stats/inferential.py`
- [Data Mining](https://github.com/wiranata-orion/analyticshub/blob/main/python/mining/timeseries.py): `python/mining/timeseries.py`
- [Data Quality](https://github.com/wiranata-orion/analyticshub/blob/main/python/quality/assessment.py): `python/quality/assessment.py`
- [Recommendations](https://github.com/wiranata-orion/analyticshub/blob/main/python/core/recommender.py): `python/core/recommender.py`
- [Insight Generation](https://github.com/wiranata-orion/analyticshub/blob/main/python/insight/generator.py): `python/insight/generator.py`

### Modeling

- [Trained Models](https://github.com/wiranata-orion/analyticshub/blob/main/app/Models/TrainedModel.php): `app/Models/TrainedModel.php`
- [Feature Engineering](https://github.com/wiranata-orion/analyticshub/blob/main/python/preprocessing/engineering.py): `python/preprocessing/engineering.py`
- [AutoML](https://github.com/wiranata-orion/analyticshub/blob/main/python/ml/automl.py): `python/ml/automl.py`
- [Supervised Learning](https://github.com/wiranata-orion/analyticshub/blob/main/python/ml/supervised.py): `python/ml/supervised.py`
- [Forecasting](https://github.com/wiranata-orion/analyticshub/blob/main/python/forecasting/models.py): `python/forecasting/models.py`
- [Explainability](https://github.com/wiranata-orion/analyticshub/blob/main/python/ml/xai.py): `python/ml/xai.py`

### Other components

- **User**

## Connections

- User → Dataset API: submits data
- Dataset API → Dataset Service: calls (evidence: `app/Http/Controllers/Api/DatasetController.php`)
- Analysis API → Analysis Service: calls (evidence: `app/Http/Controllers/Api/AnalysisController.php`)
- Cleaning API → Dataset Service: delegates
- Feature API → Feature Service: calls (evidence: `app/Http/Controllers/Api/FeatureSetController.php`)
- Model API → Trained Models: uses (evidence: `app/Http/Controllers/Api/ModelController.php`)
- Model API → Dataset Records: uses (evidence: `app/Http/Controllers/Api/ModelController.php`)
- Dataset Service → Python Bridge: runs commands (evidence: `app/Services/DatasetService.php`)
- Dataset Service → Dataset Records: profiles and stores (evidence: `app/Services/DatasetService.php`)
- Dataset Service → Column Records: stores columns (evidence: `app/Services/DatasetService.php`)
- Feature Service → Python Bridge: runs transforms (evidence: `app/Services/FeatureEngineeringService.php`)
- Feature Service → Dataset Service: builds parameters (evidence: `app/Services/FeatureEngineeringService.php`)
- Feature Service → Feature Sets: creates (evidence: `app/Services/FeatureEngineeringService.php`)
- Python Bridge → Command Dispatcher: runs process (evidence: `app/Services/PythonEngine.php`)
- Command Dispatcher → JSON Utilities: formats responses (evidence: `python/main.py`)
- Command Dispatcher → Data Cleaning: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Profiling: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Exploratory Analysis: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Statistics: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Data Mining: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Data Quality: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Recommendations: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Insight Generation: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Feature Engineering: dispatches (evidence: `python/main.py`)
- Command Dispatcher → AutoML: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Supervised Learning: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Forecasting: dispatches (evidence: `python/main.py`)
- Command Dispatcher → Explainability: dispatches (evidence: `python/main.py`)
- Profiling → Dataset Loading: loads data (evidence: `python/main.py`)
- Data Cleaning → Dataset Loading: loads data (evidence: `python/core/cleaner.py`)
- Exploratory Analysis → Dataset Loading: loads data (evidence: `python/eda/analysis.py`)
- Feature Engineering → Dataset Loading: loads data (evidence: `python/preprocessing/engineering.py`)
- Supervised Learning → Dataset Loading: loads data (evidence: `python/ml/supervised.py`)
- Analysis Service → Python Bridge: runs analysis
