[NASA_SPACE_APPS] Mission Log / Willie Rainy

Built for NASA Space Apps Challenge

Willie Rainy

Rainfall climatology from historical data.

A five-person hackathon project estimating how often measurable rain has occurred at a selected location on a selected calendar date.

Mission question How often has it rained here on this date?

  • NASA Space Apps
  • Five-person team
  • Climate data
  • React
  • FastAPI

01 / Mission

Mission

Useful context for rain-sensitive plans beyond the reliable forecast window.

Travel, farming, outdoor events, and seasonal decisions still need context when long-range forecasts cannot provide certainty.

Willie Rainy reframes that gap as a climate-history question, showing what the archive says without presenting climatology as prediction.

02 / Method

Method

A transparent path from a planning question to an uncertainty-aware result.

  1. 01Location + Date
  2. 02Historical Rainfall Archive
  3. 03Calendar-Day Grouping
  4. 040.1 mm Rain Threshold
  5. 05Probability + Wilson Interval
  6. 06Climatology Result

03 / Prototype

Prototype

Select a place and date, then read the historical signal with its uncertainty intact.

Core answer

Historical rain probability

For one selected location and calendar date.

Uncertainty

95% Wilson interval

A visible range that avoids false precision.

Rainfall

Mean + median

Calculated from rainy observations only.

Context

Sample + source

Historical sample size and methodology metadata.

Loading, validation, network, and provider error states keep the experience legible when a request cannot be completed.

04 / Build

Build

A typed interface, asynchronous API, and historical rainfall service.

Interface

The React and TypeScript frontend handles location input, calendar-date selection, result presentation, source metadata, and user-facing request states.

API

FastAPI and Pydantic validate latitude, longitude, date, and range inputs before passing each request to the climatology service.

Data method

An asynchronous aiohttp client retrieves daily rain_sum values from Open-Meteo, groups them by calendar day, and calculates the statistical result.

User browser React frontend FastAPI backend Climatology service Open-Meteo archive Result UI

Open-Meteo historical weather and geocoding APIs supply the archive and location data. An in-memory cache reduces repeat requests.

Tech stack

  • React 19
  • TypeScript
  • Vite
  • Tailwind CSS
  • Axios
  • FastAPI
  • Pydantic
  • aiohttp
  • NumPy
  • Open-Meteo
  • Docker Compose

05 / Role

Role

Full-stack implementation and product direction within a five-person team.

06 / Outcome

Outcome

Historical context without overstating prediction.

The prototype turns raw rainfall observations into a practical planning interface and demonstrates collaborative delivery, climate-data handling, full-stack API design, and uncertainty-aware product thinking.