02 / The challenge
A model is only one part of the product.
I designed the project around a practical question: how can a forecast be collected, produced before the real value is known, scored honestly later, improved safely and finally presented to someone in a useful way?
01 / Product goal
From experiment to operating system
Instead of stopping at a notebook, I connected the model to scheduled ingestion, persistent storage, evaluation gates, monitoring and two client experiences. Every component had to agree on timestamps, horizons, schemas and failure states.
02 / Constraint
Free-tier first
I chose services that kept the platform affordable and reproducible: Open-Meteo and CAMS for weather and air-quality data, Supabase for PostgreSQL storage and REST views, and GitHub Actions for scheduled execution.
03 / Responsibility
Owning the full loop
I worked across Python data processing, feature engineering, Ridge Regression, database design, scheduled workflows, secrets, FastAPI and Docker packaging, monitoring, evaluation logic, JSON contracts and the SwiftUI dashboard. That breadth was the core learning outcome of the project.