Autor

Segunda Vuelta Presidencial Perú 2026 — explorador interactivo de datos públicos

OZ

Oscar Zamora

Ingeniero de software · Exploración de datos con IA + Copilot

⏱️ De datos crudos a producción: ~1 sesión con Copilot CLI

Este explorador nació como una extensión natural del trabajo de primera vuelta: tomar los resultados de la segunda vuelta presidencial del 7 de junio de 2026 y construir vistas interactivas desde cero — usando Copilot CLI como co-piloto para diseñar el esquema, escribir el importer cron-able, la capa de repositorios y el drill-down geográfico completo (continente → país → departamento → provincia → distrito).

"Lo que antes requería días de configuración manual, Copilot CLI lo convirtió en una sesión de iteración continua: schema, queries, vistas, seguridad — todo en conversación."

🗳️ La motivación: datos contra la duda

En una segunda vuelta donde la conversación pública suele polarizarse antes de que los datos sean definitivos, poner los resultados al alcance de todos reduce el ruido y fortalece la confianza. Con ~92 000 mesas repartidas en todo el Perú y el exterior, el fraude no tiene dónde esconderse.

"Si los datos de ONPE son públicos, cualquier ciudadano debe poder explorarlos, filtrarlos y verificarlos por sí mismo — mesa por mesa, acta por acta."

El scraper onpe-scraper-2026-2 corre en GitHub Actions cada 5 minutos durante el escrutinio y publica los archivos de datos como fuente de verdad. Este explorador los consume en tiempo real a través de un importer cron-able que se detiene automáticamente cuando el 100 % de las mesas quedan contabilizadas. La mejor respuesta a la desconfianza es la accesibilidad de los hechos.

🎯 Cómo se construyó

  1. Diseño del schema y pipeline de datos

    Copilot CLI analizó el output del scraper y diseñó un schema relacional normalizado con claves compuestas — todo listo para importaciones idempotentes que pueden repetirse sin duplicar ni corromper datos.
    MySQLSchemaPSR-4

  2. Sincronización automática con parada inteligente

    Un proceso cron consume la fuente pública del scraper cada 5 minutos durante el escrutinio. Cuando detecta que el conteo está al 100 %, cierra el acceso de escritura de forma permanente sin intervención manual.
    CronGitHub ActionsAuto-stop

  3. Drill-down geográfico completo

    Los filtros en cascada (continente → país → departamento → provincia) resuelven correctamente tanto mesas domésticas como del exterior, con toda la lógica de normalización geográfica manejada en la capa de repositorio.
    Geo drill-downPDORepositorio

  4. Auditoría de seguridad pre-launch

    Copilot CLI corrió un agente de revisión de seguridad antes de cada deploy. Se identificaron y corrigieron vulnerabilidades potenciales antes de que el sitio fuera accesible al público.
    Security auditPre-launchZero known issues

🔒 Protecciones de seguridad

El sitio es de solo lectura para el público. El único acceso de escritura existe durante el período de escrutinio y requiere autenticación. Una vez finalizado el conteo, ese acceso queda cerrado permanentemente.

Acceso de escritura
Cerrado al 100%
Una vez completado el escrutinio, ningún agente externo puede modificar los datos.
SQL Injection
Imposible
Toda entrada de usuario pasa por validación de whitelist y bind parametrizado.
XSS
Mitigado
Todo output — HTML e inline scripts — se escapa correctamente antes de renderizar.
Autenticación
Segura
Clave secreta comparada con método resistente a timing attacks.
Inyección de headers
Imposible
Toda entrada que llegue a headers HTTP es filtrada por whitelist antes de usarse.
Auditoría
Verificada
Revisión de seguridad independiente realizada antes del primer deploy en producción.

🔧 Stack técnico

📂 Fuente de datos

Los datos provienen de la web oficial de la ONPE (Oficina Nacional de Procesos Electorales) del Perú, extraídos con el scraper open-source onpe-scraper-2026-2. Esta aplicación no está afiliada ni patrocinada por ONPE. Los datos son de dominio público conforme a la legislación peruana de transparencia.