# omrohamare/hotel-oversell architecture

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

- Interactive diagram: https://gitdiagram.com/omrohamare/hotel-oversell
- Repository: https://github.com/omrohamare/hotel-oversell

## Overview

hotel-oversell is an initial-skeleton project for a reproducible hotel-oversell-risk ML pipeline. The README names DVC-managed data, an S3 remote, and MLflow tracking hosted through DagsHub; source excerpts confirm tracking helpers and centralized logging. Most pipeline modules are stubs or unsampled, so their names indicate intended areas, not verified processing stages. The graph preserves those modules but omits speculative calls and data-flow links; only documented or excerpt-visible relationships are shown.

Main entry points: [`src/logger.py`](https://github.com/omrohamare/hotel-oversell/blob/main/src/logger.py) (Central Logger), [`src/tracking.py`](https://github.com/omrohamare/hotel-oversell/blob/main/src/tracking.py) (Tracking Helpers), [`dvc.yaml`](https://github.com/omrohamare/hotel-oversell/blob/main/dvc.yaml) (Pipeline Definition), [`src/params.py`](https://github.com/omrohamare/hotel-oversell/blob/main/src/params.py) (Parameters)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_pipeline["Risk Pipeline"]
  node_pipeline_def["Pipeline Definition<br/>[dvc.yaml]"]
  node_params["Parameters<br/>[params.py]"]
  node_features["Feature Engineering<br/>[features.py]"]
  node_split["Data Splitting<br/>[split.py]"]
  node_validate["Validation<br/>[validate.py]"]
  node_costs["Cost Modeling<br/>[costs.py]"]
  node_backtest["Backtesting<br/>[backtest.py]"]
  node_tune["Model Tuning<br/>[tune.py]"]
  node_nightly["Nightly Run<br/>[nightly.py]"]
  node_prove["Run Proof<br/>[prove.py]"]
  node_freeze["Freeze Buffer<br/>[freeze_buffer.py]"]
end

subgraph group_data["Data and Outputs"]
  node_raw_data[("Raw Data")]
  node_interim_data[("Interim Data")]
  node_processed_data[("Processed Data")]
  node_outputs["Model and Reports"]
  node_dvc[("DVC Remote")]
end

subgraph group_tracking["Experiment Tracking"]
  node_tracking_helpers["Tracking Helpers<br/>[tracking.py]"]
  node_mlflow{{"MLflow Service"}}
  node_dagshub{{"DagsHub"}}
end

subgraph group_operations["Operations"]
  node_logger["Central Logger<br/>[logger.py]"]
  node_logs["Run Logs"]
end

node_user(("Project User"))

node_user -->|"runs pipeline"| node_pipeline_def
node_pipeline_def -->|"versions data"| node_dvc
node_user -->|"configures tracking"| node_tracking_helpers
node_tracking_helpers -->|"configures and logs"| node_mlflow
node_dagshub -->|"hosts tracking"| node_mlflow
node_features -->|"uses logger"| node_logger
node_split -->|"uses logger"| node_logger
node_validate -->|"uses logger"| node_logger
node_params -->|"uses logger"| node_logger
node_nightly -->|"uses logger"| node_logger
node_prove -->|"uses logger"| node_logger
node_freeze -->|"uses logger"| node_logger
node_tracking_helpers -->|"uses logger"| node_logger
node_logger -->|"writes logs"| node_logs

click node_pipeline_def "https://github.com/omrohamare/hotel-oversell/blob/main/dvc.yaml"
click node_params "https://github.com/omrohamare/hotel-oversell/blob/main/src/params.py"
click node_features "https://github.com/omrohamare/hotel-oversell/blob/main/src/features.py"
click node_split "https://github.com/omrohamare/hotel-oversell/blob/main/src/split.py"
click node_validate "https://github.com/omrohamare/hotel-oversell/blob/main/src/validate.py"
click node_costs "https://github.com/omrohamare/hotel-oversell/blob/main/src/costs.py"
click node_backtest "https://github.com/omrohamare/hotel-oversell/blob/main/src/backtest.py"
click node_tune "https://github.com/omrohamare/hotel-oversell/blob/main/src/tune.py"
click node_nightly "https://github.com/omrohamare/hotel-oversell/blob/main/src/nightly.py"
click node_prove "https://github.com/omrohamare/hotel-oversell/blob/main/src/prove.py"
click node_freeze "https://github.com/omrohamare/hotel-oversell/blob/main/src/freeze_buffer.py"
click node_raw_data "https://github.com/omrohamare/hotel-oversell/tree/main/data/raw"
click node_interim_data "https://github.com/omrohamare/hotel-oversell/tree/main/data/interim"
click node_processed_data "https://github.com/omrohamare/hotel-oversell/tree/main/data/processed"
click node_outputs "https://github.com/omrohamare/hotel-oversell/tree/main/models"
click node_tracking_helpers "https://github.com/omrohamare/hotel-oversell/blob/main/src/tracking.py"
click node_logger "https://github.com/omrohamare/hotel-oversell/blob/main/src/logger.py"
click node_logs "https://github.com/omrohamare/hotel-oversell/tree/main/logs"

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_pipeline_def,node_params,node_features,node_split,node_validate,node_costs,node_backtest,node_tune,node_nightly,node_prove,node_freeze,node_user toneBlue
class node_raw_data,node_interim_data,node_processed_data,node_outputs,node_dvc toneAmber
class node_tracking_helpers,node_mlflow,node_dagshub toneMint
class node_logger,node_logs toneRose
```

## Components

### Risk Pipeline

- [Pipeline Definition](https://github.com/omrohamare/hotel-oversell/blob/main/dvc.yaml): `dvc.yaml`
- [Parameters](https://github.com/omrohamare/hotel-oversell/blob/main/src/params.py): `src/params.py`
- [Feature Engineering](https://github.com/omrohamare/hotel-oversell/blob/main/src/features.py): `src/features.py`
- [Data Splitting](https://github.com/omrohamare/hotel-oversell/blob/main/src/split.py): `src/split.py`
- [Validation](https://github.com/omrohamare/hotel-oversell/blob/main/src/validate.py): `src/validate.py`
- [Cost Modeling](https://github.com/omrohamare/hotel-oversell/blob/main/src/costs.py): `src/costs.py`
- [Backtesting](https://github.com/omrohamare/hotel-oversell/blob/main/src/backtest.py): `src/backtest.py`
- [Model Tuning](https://github.com/omrohamare/hotel-oversell/blob/main/src/tune.py): `src/tune.py`
- [Nightly Run](https://github.com/omrohamare/hotel-oversell/blob/main/src/nightly.py): `src/nightly.py`
- [Run Proof](https://github.com/omrohamare/hotel-oversell/blob/main/src/prove.py): `src/prove.py`
- [Freeze Buffer](https://github.com/omrohamare/hotel-oversell/blob/main/src/freeze_buffer.py): `src/freeze_buffer.py`

### Data and Outputs

- [Raw Data](https://github.com/omrohamare/hotel-oversell/tree/main/data/raw): `data/raw`
- [Interim Data](https://github.com/omrohamare/hotel-oversell/tree/main/data/interim): `data/interim`
- [Processed Data](https://github.com/omrohamare/hotel-oversell/tree/main/data/processed): `data/processed`
- [Model and Reports](https://github.com/omrohamare/hotel-oversell/tree/main/models): `models`
- **DVC Remote**

### Experiment Tracking

- [Tracking Helpers](https://github.com/omrohamare/hotel-oversell/blob/main/src/tracking.py): `src/tracking.py`
- **MLflow Service**
- **DagsHub**

### Operations

- [Central Logger](https://github.com/omrohamare/hotel-oversell/blob/main/src/logger.py): `src/logger.py`
- [Run Logs](https://github.com/omrohamare/hotel-oversell/tree/main/logs): `logs`

### Other components

- **Project User**

## Connections

- Project User → Pipeline Definition: runs pipeline (evidence: `README.md`)
- Pipeline Definition → DVC Remote: versions data (evidence: `README.md`)
- Project User → Tracking Helpers: configures tracking (evidence: `README.md`)
- Tracking Helpers → MLflow Service: configures and logs (evidence: `src/tracking.py`)
- DagsHub → MLflow Service: hosts tracking (evidence: `README.md`)
- Feature Engineering → Central Logger: uses logger (evidence: `src/features.py`)
- Data Splitting → Central Logger: uses logger (evidence: `src/split.py`)
- Validation → Central Logger: uses logger (evidence: `src/validate.py`)
- Parameters → Central Logger: uses logger (evidence: `src/params.py`)
- Nightly Run → Central Logger: uses logger (evidence: `src/nightly.py`)
- Run Proof → Central Logger: uses logger (evidence: `src/prove.py`)
- Freeze Buffer → Central Logger: uses logger (evidence: `src/freeze_buffer.py`)
- Tracking Helpers → Central Logger: uses logger (evidence: `src/tracking.py`)
- Central Logger → Run Logs: writes logs (evidence: `src/logger.py`)
