refactor: multi-dashboard structural migration
Some checks failed
CI / lint-and-test (pull_request) Has been cancelled
Some checks failed
CI / lint-and-test (pull_request) Has been cancelled
- Rename dbt project from toronto_housing to portfolio - Restructure dbt models into domain subdirectories: - shared/ for cross-domain dimensions (dim_time) - staging/toronto/, intermediate/toronto/, marts/toronto/ - Update SQLAlchemy models for raw_toronto schema - Add explicit cross-schema FK relationships for FactRentals - Namespace figure factories under figures/toronto/ - Namespace notebooks under notebooks/toronto/ - Update Makefile with domain-specific targets and env loading - Update all documentation for multi-dashboard structure This enables adding new dashboard projects (e.g., /football, /energy) without structural conflicts or naming collisions. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -290,7 +290,7 @@ Dashboard tabs are in `portfolio_app/pages/toronto/tabs/`.
|
||||
|
||||
import dash_mantine_components as dmc
|
||||
|
||||
from portfolio_app.figures.choropleth import create_choropleth
|
||||
from portfolio_app.figures.toronto.choropleth import create_choropleth
|
||||
from portfolio_app.toronto.demo_data import get_demo_data
|
||||
|
||||
|
||||
@@ -339,13 +339,13 @@ dmc.TabsPanel(create_your_tab_layout(), value="your-tab"),
|
||||
|
||||
## Creating Figure Factories
|
||||
|
||||
Figure factories are in `portfolio_app/figures/`. They create reusable Plotly figures.
|
||||
Figure factories are organized by dashboard domain under `portfolio_app/figures/{domain}/`.
|
||||
|
||||
### Pattern
|
||||
|
||||
```python
|
||||
# figures/your_chart.py
|
||||
"""Your chart type factory."""
|
||||
# figures/toronto/your_chart.py
|
||||
"""Your chart type factory for Toronto dashboard."""
|
||||
|
||||
import plotly.express as px
|
||||
import plotly.graph_objects as go
|
||||
@@ -382,7 +382,7 @@ def create_your_chart(
|
||||
### Export from `__init__.py`
|
||||
|
||||
```python
|
||||
# figures/__init__.py
|
||||
# figures/toronto/__init__.py
|
||||
from .your_chart import create_your_chart
|
||||
|
||||
__all__ = [
|
||||
@@ -391,6 +391,14 @@ __all__ = [
|
||||
]
|
||||
```
|
||||
|
||||
### Importing Figure Factories
|
||||
|
||||
```python
|
||||
# In callbacks or tabs
|
||||
from portfolio_app.figures.toronto import create_choropleth_figure
|
||||
from portfolio_app.figures.toronto.bar_charts import create_ranking_bar
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Branch Workflow
|
||||
|
||||
Reference in New Issue
Block a user