KoolTrack
Institución Educativa Juan Rozo · Acacías, Meta
Institución Educativa Juan Rozo
El equipo
Andrés Camilo Clavijo Velasco
Base de datosDavid Santiago Posada Castañeda
Backend y fullstackIvon Eliana Parra Cubillos
Docente líderProblema identificado
El control era manual
Registro manual en papel
Lento, difícil de consultar y con errores humanos.
Padres sin saber
Desconocían a qué hora entraban o salían sus hijos.
Sin trazabilidad
No había historial confiable de la asistencia.
Seguridad escolar
El colegio necesitaba saber quién está dentro.
Registrar en tiempo real quién entra y quién sale.
Objetivo
Diseñar e implementar una plataforma que registre el ingreso y la salida de los estudiantes con códigos QR, guarde la información en una base de datos centralizada y notifique automáticamente a los acudientes por correo.
La solución
Un carnet con QR y una plataforma que avisa sola.
KoolTrack
- Portería con lectura de QR en segundos
- Correo instantáneo al acudiente
- Reportes y control para coordinación
- Asistencia en aula conectada
- Varios colegios en una plataforma
Metodología de desarrollo
Trabajamos con Scrum
Fase 1 · Análisis
Levantamiento de requisitos
Reuniones
Fotos digitales listas; faltan las físicas.
Necesidades
Casos de uso
Fase 2 · Diseño
Mockup
Fase 4 · Pruebas
Prueba piloto
- PilotoQR en cartón
- Impresoen lámina
- Porta carnetuso diario
Diagrama de flujo
Antes y después
Fase 3 · Desarrollo
Sprints y ramas
Arquitectura del sistema · toca cada bloque
Del carnet al acudiente
Modelo de datos
Base de datos
- id
- username, firstname, lastname
- email (acudiente)
- id
- userid → user
- username, hash (SHA-256)
- id
- name, token, location
- schoolcatid → colegio
- id
- userid → user, nodeid → nodes
- direction, status, timecreated
- id
- eventtype, notify_parent
- template_id → templates
- id
- subject, body_html
- variables {{studentname}}
Algoritmo · pruébalo en vivo
Así nace un código QR
sha256(id + hora + azar)
2 · Firma SHA-256-
3 · Contenido del QRSTU|usuario|firma
- Nodo de portería activo
- Formato STU|usuario|firma
- Firma en qrstudent_codes
- Estudiante del colegio
- Registro en nodes_logs
Programación backend
Validar y avisar
local/nodes/classes/manager.php
public static function validate_scan($token, $qr) { // El nodo de portería debe existir y estar activo. $node = $DB->get_record('local_nodes', ['token' => $token, 'active' => 1]); if (!$node) { return ['status' => 'error']; } // QR del carnet: STU|usuario|firma SHA-256. $data = generator::validate_qr($qr, $node->schoolcatid); // Se guarda el registro con la hora exacta. $DB->insert_record('local_nodes_logs', $log); }
Consulta en MariaDB
SELECT l.userid, l.direction, l.timecreated, n.name AS punto FROM mdl_local_nodes_logs l JOIN mdl_local_nodes n ON n.id = l.nodeid WHERE l.timecreated BETWEEN :inicio AND :fin AND l.status = 'success';
Envío inmediato del correo
// Sale en el momento del escaneo, sin cola. $mail = self::build_message_mailer($acudiente, $asunto, $texto); return $mail->send();
Pantallas simples para cada usuario.
Frontend · AJAX y JSON
Portería
// El lector envía el QR al servidor como JSON. const peticion = { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ token: TOKEN, qr: qr }) }; // Hasta 3 intentos si la red falla. const { data } = await fetchJsonWithTimeout( API_URL, peticion, 8000); // Respuesta del servidor: { "status": "success", "user": { "name": "Estudiante", "course": "6-1", "time": "06:42:10 AM" } }
Demostración en vivo
Resultados e impacto
Lo que cambió
- El registro de asistencia es automático y toma segundos.
- Los acudientes reciben la información al instante.
- Coordinación decide con reportes confiables.
Responsabilidad
Uso ético de las TIC
Ley 1581 de 2012
Tratamiento de datos personales de menores con fines educativos.
Datos protegidos
Cada usuario solo ve lo de su colegio y sus cursos.
Autorización institucional
Uso aprobado por la institución y conocido por las familias.
Desarrollo propio
Código escrito por el equipo sobre Moodle, software libre.
Recursos con licencia
Iconos y fuentes libres y la plantilla oficial del concurso.
Seguridad
QR firmados, conexión cifrada y claves fuera del código.
Lo que sigue
KoolTrack 2.0
Innovación
- Identificación biométrica
- Aplicación móvil para acudientes
- Registro sin internet que se envía al volver la conexión
- Analítica predictiva y alertas tempranas
Gracias
La programación al servicio de la seguridad escolar y de las familias.