World Bank Data Browser
Una aplicación web que sincroniza el catálogo de Indicadores del Banco Mundial en PostgreSQL y ofrece un panel para explorar, consultar y descargar datos de desarrollo global.
Resumen
El Banco Mundial publica miles de indicadores de desarrollo — PIB, población, salud, educación, clima — pero la API de Indicadores en crudo es incómoda de explorar y lenta de consultar a escala. World Bank Data Browser lo resuelve: sincroniza todo el catálogo en una base de datos PostgreSQL local, y luego ofrece un panel claro para explorar fuentes, indicadores y países, y para consultar y descargar las series de tiempo detrás de ellos.
Es una plataforma de datos compacta y de extremo a extremo — ingesta, modelado, almacenamiento y entrega — construida con la misma forma que los sistemas de producción.
Qué hace
- Sincronización del catálogo — en el primer arranque trae automáticamente el catálogo completo del Banco Mundial (fuentes, indicadores, países) a Postgres.
- Explorar y buscar — recorre fuentes e indicadores, con búsqueda de texto
difusa impulsada por
pg_trgmde Postgres. - Consultar y descargar — obtén la serie de tiempo de cualquier indicador/país y expórtala para su uso posterior.
- Panel en modo oscuro — una interfaz renderizada en el servidor, sin un build pesado de frontend.
Bajo el capó
- FastAPI sirve tanto las rutas de la API como las páginas renderizadas con Jinja2.
- SQLAlchemy async + Alembic modelan los datos y gestionan las migraciones, que se ejecutan automáticamente al iniciar el contenedor.
- ETL resiliente — el cliente del Banco Mundial usa
httpxcontenacitypara reintentos y backoff, de modo que las fallas transitorias de la API no rompan una sincronización. - PostgreSQL 16 con la extensión
pg_trgmpara búsqueda difusa rápida. - Dockerizado de extremo a extremo con Docker Compose, con un pipeline de GitHub Actions que ejecuta lint y pruebas sobre la misma imagen usada en producción.
Por qué está aquí
Este proyecto es la imagen más clara de cómo trabajo en el lado de datos: tomar
una fuente externa desordenada, hacerla resiliente para ingerir, modelarla
correctamente, y ponerle una interfaz usable encima. También es la base técnica
de las herramientas de IA y productividad que estoy construyendo a continuación
en tools.cyv.me — la misma base de FastAPI, una nueva superficie.