No description
- HTML 53.3%
- Python 46.7%
| templates | ||
| .gitignore | ||
| app.py | ||
| asistentes_ejemplo.csv | ||
| config.json | ||
| generar_qrs.py | ||
| README.md | ||
| requirements.txt | ||
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
- Genera los QR de prueba:
(aparecen en la carpetapython generar_qrs.pyqrs/, uno por asistente) - Inicia la aplicación:
python app.py - Abre en el navegador: http://localhost:5000
- Muestra un QR impreso o en otro dispositivo frente a la webcam.
- 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 presionarEnterpara 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 presionaEnter(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 QRgenerar_qrs.py— genera los QR de pruebaasistencias.csv— se crea automáticamente con los registrosconfig.json— se crea automáticamente con la configuración
Notas para Windows
- La app usa
cv2.CAP_DSHOWpara 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