No description
  • HTML 53.3%
  • Python 46.7%
Find a file
Fabian Quiñones c8dfe76da1 Primer Commit
2026-09-19 10:23:19 -06:00
templates Primer Commit 2026-09-19 10:23:19 -06:00
.gitignore Primer Commit 2026-09-19 10:23:19 -06:00
app.py Primer Commit 2026-09-19 10:23:19 -06:00
asistentes_ejemplo.csv Primer Commit 2026-09-19 10:23:19 -06:00
config.json Primer Commit 2026-09-19 10:23:19 -06:00
generar_qrs.py Primer Commit 2026-09-19 10:23:19 -06:00
README.md Primer Commit 2026-09-19 10:23:19 -06:00
requirements.txt Primer Commit 2026-09-19 10:23:19 -06:00

Durango SWUG — Registro de Asistencia por QR

Sistema de registro de asistencia con webcam. Escanea un QR que contiene únicamente el ID del participante, consulta sus datos (nombre, empresa, rol) en la base de datos (asistentes_ejemplo.csv), muestra el nombre con animación de confirmación, lo anuncia en voz alta (TTS) y guarda el registro en asistencias.csv.

Requisitos (Windows)

  • Python 3.9+ (marcar "Add to PATH" en el instalador)
  • Webcam funcionando

Instalación

pip install -r requirements.txt
pip install qrcode[pil]   # solo para generar los QR de prueba

Uso

  1. Genera los QR de prueba:
    python generar_qrs.py
    
    (aparecen en la carpeta qrs/, uno por asistente)
  2. Inicia la aplicación:
    python app.py
    
  3. Abre en el navegador: http://localhost:5000
  4. Muestra un QR impreso o en otro dispositivo frente a la webcam.
  5. Si el QR es indetectable: puedes usar la Entrada Manual por Nombre en el panel lateral (o presionar la tecla / en el teclado para enfocar el buscador directamente), escribir el nombre del asistente y presionar Enter para registrarlo.

Qué contiene el QR

El código QR contiene únicamente el ID del asistente, por ejemplo:

1001

o

1829:51482

Al ser escaneado, la aplicación busca este ID en el archivo de base de datos (asistentes_ejemplo.csv) y obtiene automáticamente su nombre y detalles asociados.

Entrada Manual por Teclado (Búsqueda Inversa por Nombre)

En caso de reflejo, pantalla con brillo insuficiente o código dañado:

  • Presiona la tecla / o haz clic en el buscador de la tarjeta "Registro por Nombre".
  • Escribe parte del nombre o apellido (ej. perez, fabian). La búsqueda es insensible a mayúsculas y acentos.
  • Navega las opciones con las flechas ↑ / ↓ y presiona Enter (o haz clic en "Registrar").
  • La asistencia se registrará inmediatamente con confirmación visual y voz TTS.

Configuración (/config)

  • Base de datos de asistentes: archivo CSV con la lista de participantes.
  • XFlip: corrige el reflejo/espejo de la cámara.
  • Columna de nombres: nombre de la columna del nombre en la base de datos (por defecto Nombre).
  • Columna de IDs: nombre de la columna del identificador en la base de datos (por defecto ID).
  • Separador CSV, cooldown entre escaneos, voz TTS y mensaje hablado personalizado.

Archivos

  • app.py — aplicación principal (Flask + OpenCV + SSE + TTS)
  • asistentes_ejemplo.csv — datos de ejemplo para generar QR
  • generar_qrs.py — genera los QR de prueba
  • asistencias.csv — se crea automáticamente con los registros
  • config.json — se crea automáticamente con la configuración

Notas para Windows

  • La app usa cv2.CAP_DSHOW para abrir la cámara más rápido en Windows.
  • Si tienes varias cámaras, cambia el "Índice de la cámara" en /config (0, 1, 2...).
  • El TTS usa las voces SAPI instaladas; la voz en español se selecciona automáticamente si está disponible (Configuración de voz de Windows).
  • Para que otros equipos en la misma red escaneen, abre http://:5000