457bb49395
feat: add loaders and dbt models for Toronto housing data
...
Sprint 4 implementation:
Loaders:
- base.py: Session management, bulk insert, upsert utilities
- dimensions.py: Load time, district, zone, neighbourhood, policy dimensions
- trreb.py: Load TRREB purchase data to fact_purchases
- cmhc.py: Load CMHC rental data to fact_rentals
dbt Project:
- Project configuration (dbt_project.yml, packages.yml)
- Staging models for all fact and dimension tables
- Intermediate models with dimension enrichment
- Marts: purchase analysis, rental analysis, market summary
Closes #16
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-11 16:07:30 -05:00
ead6d91a28
feat: add Pydantic schemas, SQLAlchemy models, and parser structure
...
Sprint 3 implementation:
- Pydantic schemas for TRREB, CMHC, and dimension data validation
- SQLAlchemy models with PostGIS geometry for fact and dimension tables
- Parser structure (stubs) for TRREB PDF and CMHC CSV processing
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-11 14:58:31 -05:00
c7e9b88adb
feat: project bootstrap and structure
...
Sprint 1 initialization:
- Project directory structure (portfolio_app/, tests/, dbt/, data/, scripts/)
- CLAUDE.md with AI assistant context
- pyproject.toml with all dependencies
- docker-compose.yml for PostgreSQL 16 + PostGIS
- Makefile with standard targets
- Pre-commit configuration (ruff, mypy)
- Environment template (.env.example)
- Error handling foundation (PortfolioError hierarchy)
- Test configuration (conftest.py, pytest config)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2026-01-11 13:49:28 -05:00