MetHub
Explorador de la colección del Met Museum
El reto
La API del museo devuelve metadatos incompletos y exige muchas peticiones por búsqueda. La interfaz debía mantenerse rápida y tolerar fallos parciales sin saturar el servicio.
Mi rol
Proyecto en equipo. Mi aporte: la arquitectura del router, el ciclo de render síncrono/asíncrono, el control de peticiones y el algoritmo de comparación de obras.
Decisiones técnicas
- 01
Promise.allSettled en lugar de Promise.all: una obra caída no rompe la galería.
- 02
AbortController y timeouts para descartar peticiones lentas.
- 03
Debounce y bloqueo de inputs para evitar ráfagas de solicitudes.
- 04
Inserción de datos con textContent para prevenir inyección de HTML.
Resultado
Explorador con búsqueda global, navegación por departamentos, galerías paginadas por bloques y comparador lado a lado con delta cronológico.