Spaces:
Runtime error
Runtime error
| title: Reno Scheduling Engine | |
| emoji: ποΈ | |
| colorFrom: blue | |
| colorTo: indigo | |
| sdk: docker | |
| app_port: 7860 | |
| pinned: false | |
| # Reno Scheduling Engine β Phase 2 (calendar-aware Day-0 scheduler) | |
| A production-style DAG scheduler for a renovation/construction platform, built in | |
| Python (FastAPI + SQLite + Streamlit). It turns BOQ items into activities via | |
| configurable templates, builds a cycle-checked dependency DAG, and runs a CPM | |
| forward pass against real working-time calendars (weekends, holidays, | |
| reduced-permit windows, per-contractor calendars) plus PM pins β producing an | |
| immutable, versioned **Day-0 baseline** schedule with a Gantt view. | |
| ## What's inside | |
| - **Rules Engine** β BOQ item β activities + intra-item dependencies (template-driven). | |
| - **DAG Service** β Kahn cycle check, topological sort, descendants. | |
| - **Calendar Service** β timezone-correct working-time math (DST-safe via `zoneinfo`). | |
| - **Scheduling Engine** β CPM forward pass β versioned `schedule_versions`. | |
| - **Streamlit tester** β create projects/BOQ/dependencies, compute a baseline, and a | |
| **Day-0 Explainability** tab that derives every date step-by-step with a | |
| critical-path Gantt + DAG. | |
| ## Run locally | |
| ```bash | |
| pip install -r requirements.txt | |
| python -m scripts.migrate up | |
| python -m scripts.seed | |
| python -m uvicorn app.api.app:app --port 8000 # API | |
| streamlit run streamlit_app.py # UI on http://localhost:8501 | |
| python -m pytest # 53 tests | |
| ``` | |
| On the Space, `start.sh` runs migrations + seed, starts the API internally, and | |
| serves the Streamlit UI on port 7860. | |
| See `docs/` for the architecture, data inventory, and phase notes. | |