Skip to content

dmg-cmd/control-presentismo

Repository files navigation

Control de Presentismo Inteligente 🚀

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.

✨ Características Principales

  • 📂 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 /Presentismo bajo 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.

🚀 Guía de Instalación y Uso Rápido

1. Preparación del Entorno

  • 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.

2. Colocar los Cursos

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).

3. Iniciar el Sistema (Terminal)

  • 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 .bat descargado 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.sh se abre como archivo de texto o no hace nada, le faltan permisos de ejecución por seguridad. 👉 Solución: Haz clic derecho en start_linux.sh -> Propiedades -> Pestaña Permisos -> Marca la casilla "Permitir ejecutar el archivo como un programa". Luego vuelve a darle doble clic.

4. Flujo de Trabajo (Docente)

  1. 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).
  2. 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".
  3. 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).
  4. Vigilar y Exportar: Monitorea en la pantalla. Cuando la clase termine, navega al Historial, selecciona el curso y presiona "Exportar Excel".

📊 Estructura del Archivo Excel de Entrada

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.

🔒 Privacidad y Github

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.

🤝 Contribuciones

Para contribuir a este repositorio:

  1. Haz un fork de este repositorio.
  2. Crea una rama para tu feature (git checkout -b feature/MiNuevaCaracteristica).
  3. Comita tus cambios (git commit -m 'Agregar: Nueva característica').
  4. Sube la rama (git push origin feature/MiNuevaCaracteristica) y envía un Pull Request.

About

Control de Presentismo por la IP del teléfono en una LAN

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors