Skip to content

About

Check-in con QR para la entrada de PyCon Panamá 2026

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Check-in PyCon Panamá 2026

Licencia: MIT Estado web Estado hardware Backend Firmware

Sistema de registro de entrada (check-in) para PyCon Panamá 2026. Tiene dos clientes que comparten el mismo backend:

Cliente Qué es Estado
Página web (index.html) Voluntarios escanean el QR con la cámara del celular o buscan por nombre. ✅ En producción
Kiosco físico (firmware/) ESP32-S3 con un lector QR dedicado, LED y zumbador. 🚧 En diseño (fase 1–2)

Important

La página web solo funciona con una cuenta de voluntario habilitada en Supabase. Sin sesión no puede leer ni marcar nada. El kiosco usa una clave por dispositivo, nunca credenciales de una persona.

Contenido

Arquitectura

flowchart LR
    A[QR del asistente] --> W[Página web<br/>html5-qrcode]
    A --> K[Kiosco ESP32-S3<br/>lector GM65/GM861]
    W -- "RPC con sesión<br/>de voluntario" --> S[(Supabase<br/>checkin_marcar)]
    K -- "HTTPS + x-device-key" --> E[Edge Function<br/>checkin-device]
    E -- "service role" --> S
Loading

Toda la lógica de negocio (validar el token, detectar repetidos, registrar la hora) vive en Supabase. Los clientes solo leen el QR y muestran el resultado. Detalle completo en docs/arquitectura.md.

Inicio rápido

Página web

  1. Copia la configuración pública de Supabase en env.js (URL y clave publicable).

  2. Sirve la carpeta con cualquier servidor estático:

    python3 -m http.server 8000
  3. Abre http://localhost:8000 e inicia sesión con una cuenta de voluntario.

Note

La cámara del navegador requiere HTTPS o localhost. En producción el sitio se publica con GitHub Pages (por eso existe .nojekyll).

Kiosco (ESP32)

Sigue la guía paso a paso en firmware/README.md y el cableado en docs/hardware.md.

Estructura del repositorio

pycon_checkin/
├── index.html                  # Cliente web (voluntarios)
├── env.js                      # Configuración pública de Supabase
├── firmware/                   # Kiosco ESP32-S3 en MicroPython
│   ├── main.py
│   ├── config.example.py
│   └── README.md
├── supabase/
│   ├── functions/checkin-device/index.ts   # Edge Function para dispositivos
│   └── migrations/                         # Tabla de dispositivos
├── docs/
│   ├── arquitectura.md
│   ├── hardware.md
│   ├── plan-proyecto.md
│   ├── operacion-evento.md
│   └── adr/                    # Registros de decisiones de arquitectura
└── .github/                    # Plantillas de issues y PR

Documentación

Documento Para quién
Arquitectura Desarrolladores
Hardware y cableado Quien arma los kioscos
Plan de proyecto Organización y coordinación
Operación el día del evento Voluntarios y responsables de puerta
Decisiones de arquitectura (ADR) Mantenedores
Seguridad Todos
Historial de cambios Todos

Contribuir

Las contribuciones son bienvenidas. Lee CONTRIBUTING.md y el Código de Conducta antes de abrir un PR.

Licencia

MIT © 2026 Python Panamá

About

Check-in con QR para la entrada de PyCon Panamá 2026

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages