CASE STUDY · DATA VIZ
Weather Analytics Dashboard
Live and historical weather data turned into charts people can actually read, with a forecast model behind them.
- ROLE
- Full-stack developer
- TIMELINE
- 10 weeks
- TEAM
- Solo
- PLATFORM
- Web app
PRODUCT IDENTITY
WeatherLens
See the whole forecast.
01 · OVERVIEW
Project overview
DEVELOPMENT TIME
10 weeks
Data pipeline to public dashboard
TEAM SIZE
Solo
Data, backend and frontend
KEY ACHIEVEMENT
92% accuracy
Next-day temperature forecasts
THE PROBLEM
Weather sites show today and tomorrow but bury the history. Comparing this week to last year, or spotting a storm trend, meant downloading raw CSVs.
THE APPROACH
WeatherLens ingests live station data through a FastAPI service, stores years of readings in MongoDB, and turns them into D3 charts with a simple forecast model on top.
92%
next-day highs within ±1.5 °C
20 yrs
of history per city, queried in < 1 s
2 min
from station reading to chart
02 · FEATURES
What it does
Live conditions
Temperature, humidity, wind and pressure updated every two minutes.
Trend charts
Interactive D3 charts for temperature, rainfall and wind.
Historical comparisons
Compare any week with the same week in past years.
Storm alerts
Notifications when pressure drops or wind gusts spike.
Forecast model
A regression model trained on local history for next-day highs.
Saved cities
Switch cities instantly and share a link to any view.
03 · PROCESS
How it was built
WEEK 1–2
Discover
Evaluated weather APIs and station networks for coverage and history.
- Data source audit
- Chart wishlist
WEEK 3
Design
Dashboard layout and chart system tuned for readability.
- Figma prototype
- Chart guidelines
WEEK 4–9
Build
FastAPI ingestion, MongoDB time series, forecast model and React + D3 frontend.
- Data pipeline
- Dashboard
WEEK 10
Ship
Public launch with Lisbon, Porto and 18 more cities.
- Public launch
- 20 cities
04 · TECH STACK
Built with
FRONTEND
- React
- D3.js
- TypeScript
BACKEND
- Python
- FastAPI
- APScheduler
DATA
- MongoDB
- Time series
- Redis cache
MODELING
- pandas
- scikit-learn
- OpenWeather API
ARCHITECTURE
WeatherLens app
React + D3
FastAPI service
Ingest, query, alerts
MongoDB
Time-series readings
Station APIs
Live observations
Forecast model
scikit-learn
05 · LEARNINGS
Challenges & learnings
Gaps in station data
CHALLENGE
Stations went offline and left holes in the charts.
OUTCOME
Interpolation with confidence bands showed estimated values honestly.
Querying 20 years fast
CHALLENGE
Historical comparisons took 8+ seconds on raw readings.
OUTCOME
Pre-aggregated daily rollups in MongoDB brought queries under a second.
Interested in this project?
Happy to walk through the code, the decisions behind it, or how something similar could work for your team.