Volver al Blog

Gaspri: Cómo construí una app de gasolineras con datos reales del gobierno

¿Qué es Gaspri?

Gaspri es una aplicación web que permite consultar y comparar los precios de combustible de todas las gasolineras de España en tiempo real. Filtra por provincia, tipo de combustible, y compara precios entre las principales compañías petroleras con un mapa interactivo.

Puedes verla en producción en gaspri.hgccarlos.es.


El punto de partida: la API del Ministerio

El Gobierno de España publica, a través del Ministerio para la Transición Ecológica (MITERD), datos abiertos con los precios de todas las gasolineras del país. El problema: la API devuelve un JSON enorme con miles de registros, sin historial, sin filtros avanzados y con actualizaciones irregulares.

Mi objetivo fue construir una capa intermedia que:

  1. Sincronizase automáticamente esos datos con una base de datos propia.
  2. Almacenase el historial de precios para análisis de tendencias.
  3. Expusiese una API limpia que el frontend pudiese consumir de forma eficiente.

Arquitectura

La aplicación está dividida en dos partes completamente independientes:

Backend (Python + PostgreSQL)

El backend está construido en Python y se ocupa de toda la lógica de negocio:

Frontend (Next.js)

El frontend está desarrollado con Next.js y ofrece:


Retos técnicos

1. Volumen de datos

La API del Ministerio devuelve más de 11.000 gasolineras en cada petición. Procesar, deduplicar y almacenar ese volumen de forma eficiente requirió:

2. Historial de un año

Para ofrecer análisis de tendencias, implementé un sistema de backfilling que reconstruyó el historial de precios del último año combinando snapshots guardados con la API del Ministerio.

3. Autenticación entre microservicios

La comunicación entre el frontend y el backend incluye cabeceras de seguridad y rate limiting para evitar abusos, sin necesidad de autenticación de usuario.


Stack completo

| Capa | Tecnología | |------|------------| | Frontend | Next.js, TypeScript, Tailwind CSS | | Backend | Python | | Base de datos | PostgreSQL | | Orquestación | n8n | | Despliegue | Docker + Coolify | | Mapa | Leaflet / MapLibre | | Email / Contacto | Brevo |


Conclusión

Gaspri es el proyecto en el que más me he centrado en los últimos meses. Combina consumo de APIs gubernamentales, procesamiento de datos en tiempo real, visualización geográfica y un frontend moderno y usable desde el móvil. Si te interesa la arquitectura en detalle o quieres ver el código, no dudes en contactarme.