Loading, in progress

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
View code on GitHubLive demo coming soon

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

01

Live conditions

Temperature, humidity, wind and pressure updated every two minutes.

02

Trend charts

Interactive D3 charts for temperature, rainfall and wind.

03

Historical comparisons

Compare any week with the same week in past years.

04

Storm alerts

Notifications when pressure drops or wind gusts spike.

05

Forecast model

A regression model trained on local history for next-day highs.

06

Saved cities

Switch cities instantly and share a link to any view.

03 · PROCESS

How it was built

  1. WEEK 1–2

    Discover

    Evaluated weather APIs and station networks for coverage and history.

    • Data source audit
    • Chart wishlist
  2. WEEK 3

    Design

    Dashboard layout and chart system tuned for readability.

    • Figma prototype
    • Chart guidelines
  3. WEEK 4–9

    Build

    FastAPI ingestion, MongoDB time series, forecast model and React + D3 frontend.

    • Data pipeline
    • Dashboard
  4. 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

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.