Skip to content

xabiernovoa/CaminoVivo

CaminoVivo

Proyecto ganador del HackUDC 2026 para el reto propuesto por Grafana Labs.

Data Lake de clima y cultura para el Camino de Santiago en Galicia.

CaminoVivo agrega datos meteorológicos, albergues, fuentes de agua, rutas GPS y eventos culturales de fuentes públicas gallegas en una plataforma unificada con visualización interactiva en Grafana. El objetivo es que cualquier peregrino pueda consultar, en un solo lugar, toda la información que necesita para tomar decisiones en el camino.

video.mp4

🚀 Inicio rápido

Para arrancar el proyecto, ejecuta:

sudo docker compose up --build

Esto levanta automáticamente MariaDB (con los datos precargados) y Grafana (con dashboards provisionados).

Acceso a los servicios

Servicio URL Credenciales
Grafana http://localhost:3000 admin / admin
MariaDB localhost:3306 root / caminovivo

Requisito: tener Docker y Docker Compose instalados.


Características principales

  • Meteorología en tiempo real — Descarga automática de previsiones de MeteoGalicia (temperatura, precipitación, viento, estado del cielo).
  • Datos de estaciones meteorológicas — Scraping de datos históricos de la red de estaciones de MeteoGalicia.
  • Agenda cultural — Eventos culturales de toda Galicia obtenidos de la API de Cultura.gal.
  • Geolocalización de servicios — Albergues homologados y fuentes de agua pública geolocalizados sobre el mapa.
  • Rutas GPS completas — Geometría exacta de los caminos de Santiago a partir de datos KML de la Xunta.
  • Dashboards interactivos — Paneles de Grafana con mapas (Geomap), series temporales, tablas y filtros por camino.
  • Despliegue en un comando — Todo el stack levanta con docker compose up --build.

Arquitectura

┌─────────────────────────────────────────────────────┐
│                  Fuentes de datos                   │
│                                                     │
│  MeteoGalicia API   Cultura.gal API   CSVs Xunta    │
└────────┬───────────────────┬──────────────┬─────────┘
         │                   │              │
         ▼                   ▼              ▼
┌─────────────────────────────────────────────────────┐
│             Scripts Python (backend/)               │
│                                                     │
│  meteogal_downloader    fiestas_downloader           │
│  scrapMeteo             → CSV / SQL                  │
└────────────────────────┬────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────┐
│              MariaDB (caminovivo)                   │
│         Inicializada desde scritp.sql               │
└────────────────────────┬────────────────────────────┘
                         │
                         ▼
┌─────────────────────────────────────────────────────┐
│                    Grafana                           │
│                                                     │
│  Datasource MySQL · Dashboards provisionados        │
│  Geomap · Time series · Table · Stat                │
└────────────────────────┬────────────────────────────┘
                         │  iframe embed (d-solo)
                         ▼
┌─────────────────────────────────────────────────────┐
│            Frontend (frontend/index.html)           │
│                                                     │
│  Selector de camino + capa activa                   │
│  Embebe paneles de Grafana dinámicamente             │
└─────────────────────────────────────────────────────┘

Estructura del proyecto

.
├── docker-compose.yml            — Orquesta MariaDB + Grafana
├── grafana/
│   ├── provisioning/             — Datasources y configuración automática
│   └── dashboards/               — Dashboards exportados (JSON)
├── backend/
│   ├── scritp.sql                — Schema + datos iniciales (eventos)
│   ├── meteogal_downloader.py    — Descarga previsión MeteoGalicia → CSV
│   ├── fiestas_downloader.py     — Descarga eventos Cultura Galicia → SQL
│   ├── scrapMeteo.py             — Scraping estaciones MeteoGalicia → CSV
│   ├── caminos_de_santiago.csv   — Geometría GPS de los caminos (Xunta)
│   ├── albergues.csv             — Albergues homologados
│   ├── fontes.csv                — Fuentes de agua públicas
│   ├── datos_estaciones_final.csv
│   └── requirements.txt
├── frontend/
│   ├── index.html                — Aplicación web principal
│   └── global.css
├── CONTRIBUTING.md
├── CODE_OF_CONDUCT.md
├── SECURITY.md
├── CHANGELOG.md
└── LICENSE

Configuración

Variables de entorno

Copiar .env.example a .env y rellenar:

METEO_API_KEY=tu_api_key_de_meteogalicia
GRAFANA_URL=http://<ip_host>:3000

Actualización de datos (scripts Python)

Los scripts descargan datos frescos y los persisten en CSV o SQL:

pip install -r backend/requirements.txt
python backend/meteogal_downloader.py
python backend/fiestas_downloader.py

Se recomienda programarlos con crontab para ejecución periódica:

*/30 * * * * /usr/bin/python3 /ruta/backend/meteogal_downloader.py
0 */12 * * * /usr/bin/python3 /ruta/backend/fiestas_downloader.py

Compatibilidad

Componente Versión mínima
Docker 20.10+
Docker Compose 2.0+
Python 3.13+
MariaDB 11 (vía Docker)
Grafana 10+ (vía Docker)

Datos utilizados

Fuente Tipo Formato Actualización
MeteoGalicia API REST (JSON) CSV Cada 30 min (cron)
MeteoGalicia (estaciones) Scraping web CSV Puntual
Cultura Galicia API REST (XML) SQL Cada 12h (cron)
Caminos de Santiago Datos estáticos (Xunta) CSV Puntual
Albergues Datos estáticos (Xunta) CSV Puntual
Fuentes de agua Datos estáticos (OSM/Xunta) CSV Puntual

Contribuir

Consulta CONTRIBUTING.md para instrucciones detalladas sobre cómo configurar el entorno de desarrollo, estándares de código y flujo de Pull Requests.

Código de conducta

Este proyecto adopta el Contributor Covenant. Al participar, te comprometes a mantener un entorno respetuoso y colaborativo.

Seguridad

Para reportar vulnerabilidades, consulta SECURITY.md.

Licencia

Este proyecto está licenciado bajo la licencia MIT. Consulta LICENSE para más detalles.

El submódulo fakelake tiene su propia licencia (Apache 2.0).


Equipo

Consulta MAINTAINERS.md para ver la lista de mantenedores.


HackUDC 2026

About

Proyecto ganador del HackUDC 2026 para el reto de Grafana Labs. CaminoVivo agrega datos meteorológicos, albergues, fuentes de agua, rutas GPS y eventos culturales de fuentes públicas gallegas en una plataforma unificada con visualización interactiva en Grafana.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors