RoyAalekh's picture
refactored project structure. renamed scheduler dir to src
03a506a
### Dashboard Module — Streamlit App and Pages
Directory: `scheduler/dashboard/`
The dashboard provides a Streamlit UI to explore data, inspect the ripeness classifier, run simulations, configure overrides, and view analytics/reports.
#### Files overview
- `app.py`
- Purpose: Streamlit entrypoint that initializes navigation, shared state, and page routing.
- Interactions: Uses helpers under `dashboard/utils/` to load data and run simulations; mounts pages under `dashboard/pages/`.
- `__init__.py`
- Purpose: Package initialization for the dashboard module.
- `pages/1_Data_And_Insights.py`
- Purpose: Data loading, cleaning summaries, EDA‑style insights and figures.
- Inputs: parquet/CSV datasets and computed reports in `reports/figures/*`.
- `pages/2_Ripeness_Classifier.py`
- Purpose: Visualize and test `core.ripeness.RipenessClassifier` on sample cases; display reasons and thresholds.
- Interactions: Can call into `RipenessClassifier.get_current_thresholds()` and `classify()`.
- `pages/3_Simulation_Workflow.py`
- Purpose: Configure and run simulation scenarios; display outputs (events, metrics, summaries).
- Interactions: `dashboard/utils/simulation_runner.py`; backend `scheduler/simulation/engine.py`.
- `pages/4_Cause_Lists_And_Overrides.py`
- Purpose: Generate draft cause lists for a date; review/apply overrides; export finalized lists.
- Interactions: `control/overrides.py` for `OverrideManager` and `CauseListDraft`.
- `pages/6_Analytics_And_Reports.py`
- Purpose: Aggregate analytics, charts, and report downloads; links to `reports/figures/*` and `outputs/simulation_runs/*`.
- `utils/__init__.py`
- Purpose: Package initialization for dashboard utilities.
- `utils/data_loader.py`
- Purpose: Load datasets and parameter files for use in the UI; cache artifacts for responsiveness.
- Inputs: `Data/`, `reports/figures/*/params/*.csv`, and defaults in `scheduler/data/defaults/*`.
- `utils/simulation_runner.py`
- Purpose: Convenience layer to assemble `CourtSimConfig`, run the simulation, and collect outputs for display/download.
- Interactions: `scheduler/simulation/engine.py` and policy modules.
- `utils/ui_input_parser.py`
- Purpose: Parse and validate user inputs from Streamlit widgets into typed configs/overrides.