18:59

Sección obligatoria

Para el jurado

Transparencia técnica de 18:59 — PWA de planes de resiliencia familiar desde Portoviejo. Producción: 18-59.grisbope.com.

Guion demo (≈3 minutos)

  1. Abre /auth Entrar como demo (jurado).
  2. En /plan: tablero → plantilla o dirección → fotos → crear plan. También prueba /portoparques (eventos en parques).
  3. Con plantilla verás el perfil de riesgo; con dirección solo la ubicación (sin gemelo inventado).
  4. Perfil del hogar → fotos exterior + interior → Generar plan de acción.
  5. Compartir con comunidad → el % del sector sube en el tablero.
  6. DevTools Offline → plan cacheado (razón de ser PWA).

Auth: Admin API auto-confirm · login · demo@18-59.grisbope.com

Tecnologías OpenAI usadas

Infraestructura / arquitectura

┌─────────────────────────────────────────────────────────┐
│  PWA Next.js 15 + Workbox  ·  https://18-59.grisbope.com │
│  Comunidad · Ubicación (plantilla | dirección) · Fotos  │
│  Vision → Plan → TTS → Tablero                          │
└───────────────┬──────────────────────────┬──────────────┘
                │                          │
                ▼                          ▼
┌──────────────────────────┐   ┌──────────────────────────┐
│ Agente OpenAI            │   │ Supabase                 │
│ Vision · GPT · TTS · RAG │   │ Auth · Storage agregados │
└───────────────┬──────────┘   └──────────────────────────┘
                ▼
┌──────────────────────────┐
│ Corpus Portoviejo + SNGR │
└──────────────────────────┘

Hosting: VPS DigitalOcean (159.65.234.56)
         EasyPanel + Docker Swarm + Traefik + Let's Encrypt
Deploy:  push a main → auto-pull cada 2 min (deploy/auto-pull.sh)
         NO usamos Vercel en producción
Offline: Service Worker + Cache API + localStorage del plan

Flujo de usuario

  1. Landing / instalar PWA → CTA o Auth demo.
  2. Tablero comunitario arriba (métrica en vivo).
  3. Ubicación: plantilla (carga perfil de riesgo) o mi dirección (sin gemelo digital).
  4. Perfil del hogar + fotos (exterior/interior obligatorias).
  5. Un botón: Vision → plan RAG+GPT con citas limpias.
  6. Descargar / offline / compartir → % comunitario sube.

Demo: /plan · /auth · /api/health

Checklist de rúbrica

Objetivos / métricas

Escalabilidad — plantilla territorial

Las capas de riesgo (`src/data/buildings.json`) y el corpus (`src/data/corpus/`) se reemplazan para otra ciudad sin reescribir la app. Roadmap: más fuentes municipales y API pública de perfiles de riesgo.

README: github.com/grisbope/18-59