Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/elenacarino-max/mas-climapp/llms.txt

Use this file to discover all available pages before exploring further.

ClimApp is a Flask-based web application built for precise meteorological monitoring across the Community of Madrid. It integrates directly with the official AEMET OpenData API to retrieve live weather observations, then uses the Haversine formula to match your GPS coordinates with the nearest official monitoring station — delivering temperature, humidity, wind speed, atmospheric pressure, precipitation, and critical alerts in one unified interface. Beyond live queries, ClimApp is designed for users who collect their own measurements. Whether you operate a home weather station or log readings manually, the platform lets you store, review, and audit your data against AEMET’s official figures. The result is a practical tool for citizens, researchers, and meteorology enthusiasts who need both real-time awareness and a reliable record of past conditions.

Core features

Real-time weather

Geolocates your position and retrieves live data from the nearest AEMET station, including temperature extremes, humidity, wind, pressure, and precipitation.

Manual logging

Record your own measurements at /registro, validated against physical plausibility ranges before being saved to both JSON and SQLite storage.

Historical data

Browse and filter every stored observation at /consulta by municipality or date, with full alert history included in the results.

AEMET comparison

Audit your manual readings against official AEMET data at /comparar, with per-variable deviation shown for temperature, humidity, wind, and rainfall.

Architecture

ClimApp follows a strict layered architecture — controllers handle routing, services own business logic, repositories abstract storage, and models define the data structures that flow between them.

Architecture overview

Controllers, services, repositories, models, and utils — how the layers fit together.

Data flow

The double-request AEMET handshake, Haversine station matching, normalization, and persistence pipeline.

Alerts

Six threshold-based alert levels from frost and high humidity to red heat warnings and strong wind.

Build docs developers (and LLMs) love