Sistema premium para docentes que permite controlar la asistencia de alumnos de forma automática mediante monitoreo de IP y códigos QR. Olvídate de pasar lista manualmente: el sistema rastrea qué alumnos están realmente conectados a la red del aula durante la clase y almacena su tiempo de presencia en tiempo real.
- 📂 Importación Local Fácil: Lee directamente archivos Excel (
.xlsx) desde la carpeta predeterminada de cursos o permite seleccionarlos manualmente. - 📱 Check-in por QR Estilizado: Al iniciar la clase, se muestra un QR gigante y centrado para que los alumnos lo escaneen desde cualquier rincón del aula grande.
- 🕒 Monitoreo Continuo: Detección de entrada, duración en aula, y salida usando el rastreo en la IP del dispositivo del alumno (previene que un alumno dé presente a otro).
- 📊 Historial Acumulativo: Registro automatizado de asistencia, exportable en múltiples hojas dentro de un mismo archivo Excel para entregar a coordinación.
- 💾 Persistencia de Sesión Completa: Continúa monitoreando incluso si cierras accidentalmente el navegador, el estado se auto-recupera de inmediato.
- 📁 Organización de Salidas: Los reportes del día se guardan ordenadamente en el subdirectorio
/Presentismobajo la carpeta local de cursos, sin mezclar las listas maestras. - 🌐 Lanzador Interactivo y Auto-Configurable: Permite al docente elegir rápidamente qué adaptador de red (WiFi o Ethernet) usar al abrir la aplicación.
- Asegúrate de tener instalado Node.js.
- Alumnos y Docente deben estar conectados a la misma red Wi-Fi/LAN para que el escaneo por QR y rastreo de IP funcione.
Dentro de este repositorio, navega a la carpeta:
backend/Cursos/
Coloca allí los archivos Excel (.xlsx) con las listas de tus alumnos.
(Nota: Estos archivos nunca se subirán a repositorios públicos por configuración de seguridad en .gitignore).
- Windows: Ejecuta el archivo
start_windows.bat(doble clic). - Linux/Mac: Abre un terminal y ejecuta
./start_linux.sh(o dale doble clic si tu entorno lo permite).
⚠️ RESOLUCIÓN DE PROBLEMAS (SI EL PROGRAMA NO ABRE): En Windows: Es normal que al ser un archivo.batdescargado de internet, Windows muestre una pantalla azul diciendo "Windows protegió su PC". 👉 Solución: Haz clic en "Más información" (letras pequeñas en la parte superior) y luego aparecerá el botón "Ejecutar de todas formas".En Linux: Si al hacer doble clic en
start_linux.shse abre como archivo de texto o no hace nada, le faltan permisos de ejecución por seguridad. 👉 Solución: Haz clic derecho enstart_linux.sh-> Propiedades -> Pestaña Permisos -> Marca la casilla "Permitir ejecutar el archivo como un programa". Luego vuelve a darle doble clic.
- Selección de Red: El terminal te preguntará qué IP usar. Elige la correspondiente a tu red local (generalmente donde están los alumnos conectados).
- Configuración Inicial: El navegador se abrirá. Selecciona el curso detectado de la carpeta
backend/Cursos. Establece la duración de la clase y clica en "Iniciar Sesión". - Escaneo de Alumnos: El Panel de Control se abrirá y un gran QR se mostrará temporalmente. Pide a tus alumnos que lo escaneen (o entren a la URL visible en el navegador de su móvil).
- Vigilar y Exportar: Monitorea en la pantalla. Cuando la clase termine, navega al Historial, selecciona el curso y presiona "Exportar Excel".
El sistema reconoce columnas estándar. Tu lista de alumnos (dentro de backend/Cursos/Lista_Alumnos.xlsx) necesita al menos las siguientes cabeceras:
- Email address / Email / ID: Identificador único o correo (obligatorio).
- First name y Last name: Para concatenar Nombre y Apellido.
- Alternativamente, una columna Nombre.
Este proyecto está configurado (vía .gitignore) para IGNORAR archivos .xlsx colocados dentro de backend/Cursos/. De esta manera, si haces un git push, nunca publicarás listas privadas de estudiantes online. El subdirectorio de salida (backend/Cursos/Presentismo/) también es estrictamente ignorado.
Para contribuir a este repositorio:
- Haz un fork de este repositorio.
- Crea una rama para tu feature (
git checkout -b feature/MiNuevaCaracteristica). - Comita tus cambios (
git commit -m 'Agregar: Nueva característica'). - Sube la rama (
git push origin feature/MiNuevaCaracteristica) y envía un Pull Request.