Parte Diario / Documentación Acceder

Sprint 4: Seguridad y Reportes

1. Objetivo del Sprint

Refinar la seguridad del sistema y habilitar las capacidades de exportación de información consolidada.

2. Planificación de Historias de Usuario

Código Descripción Técnica Puntos Tiempo (Días)
HU17 Motor de filtrado complejo para auditoría (filtros combinados: docente + curso + periodo + fechas + estado). 3 2.0
HU18 Módulo de autogestión y recuperación de credenciales (solicitud del docente, atención del coordinador). 3 2.0
HU19 Interfaz de configuración de parámetros globales (tolerancia por defecto, horario laboral, días laborables). 3 2.0
HU20 Desarrollo de servicios de generación de reportes PDF y Excel con datos filtrados. 5 3.0
Total 14 SP 9 Días

3. Criterios de Éxito

  • Reportes generados con datos consistentes y formato profesional (PDF/Excel).
  • Funcionalidad de recuperación de contraseña operativa (docente solicita → coordinador atiende).
  • Modificación de tiempos de tolerancia reflejada inmediatamente en las reglas del sistema.

4. Estado de Implementación

HU Estado Detalle
HU17 Completado Filtros combinados (docente + curso + periodo + fechas + estado) en Admin\RegistrosController y Coordinador\RegistrosController. Con paginación.
HU18 Completado Docente\SolicitudPasswordController (solicitar) + Admin\SolicitudesController (atender). Flujo completo: docente solicita → admin genera contraseña temporal.
HU19 Completado Admin\ConfigController (tolerancia, horas máximas, días plazo) y horario académico (jornada, días laborables, tolerancia default, uso de franjas) guardados en la tabla singleton horario_academico. Con bloqueo de cambios si ya existen horarios o registros.
HU20 Completado Exportación CSV, PDF (Dompdf) y Excel (PhpSpreadsheet) con filtros combinados desde Admin\ReportesController y Coordinador\ReportesController.

5. Notas Técnicas

  • Para reportes PDF se usa Dompdf 3.1 (instalado vía Composer).
  • Para reportes Excel se usa PhpSpreadsheet 5.8 (phpoffice/phpspreadsheet).
  • Recuperación de contraseñas implementada (Opción A):
    • Docente\SolicitudPasswordController — docente solicita con DNI.
    • Admin\SolicitudesController — admin/coordinador atiende generando contraseña temporal.
    • También disponible: magic links de Shield (login por correo).
  • La configuración global (Admin\ConfigController) tiene validaciones de integridad.

6. Sistema de Auditoría (Implementado)

6.1 Descripción

Se implementó un sistema completo de auditoría que registra automáticamente todas las acciones críticas realizadas por los usuarios en el sistema. La tabla auditoria y el modelo AuditoriaModel ya existían pero estaban sin usar.

6.2 Trait AuditLogger

  • Ubicación: app/Traits/AuditLogger.php
  • Método: logAuditoria($tabla, $accion, $descripcion, $userId = null)
  • Uso: Se agrega use AuditLogger; en cada controlador que necesite registrar acciones
  • Campos que inserta: user_id, tabla_afectada, accion, descripcion_cambio, fecha_evento, direccion_ip

6.3 Acciones que se registran

Controlador Acciones Tabla
Admin\UsuariosController Crear, actualizar, eliminar usuario users
Admin\DocentesController Crear, actualizar, eliminar docente users
Admin\ProgramasController Crear, actualizar, eliminar programa programas
Admin\PeriodosController Crear, actualizar, eliminar, establecer actual periodos_academicos
Admin\ConfigController Guardar configuración y horario académico config_sistema, horario_academico
Admin\SolicitudesController Atender solicitud de contraseña solicitudes_password
Admin\FranjasController Crear, actualizar, eliminar franja franjas_academicas
Admin\FeriadosController Crear, actualizar, eliminar feriado feriados
Admin\RegistrosController Revisar registro (aprobar/observar) registros_sesion
Coordinador\AsignacionesController Crear, actualizar, eliminar asignación asignaciones
Coordinador\RegistrosController Revisar registro registros_sesion
Docente\LoginController Login y logout users
Docente\RegistroController Registrar sesión de clase registros_sesion

6.4 Panel de Auditoría

  • Ruta: GET /admin/auditoria
  • Controlador: Admin\AuditoriaController
  • Vista: admin/auditoria.php
  • Filtros: búsqueda libre, acción, tabla, rango de fechas
  • Paginación: 50 registros por página
  • Sidebar: Sección "Supervisión" → "Auditoría" (separado de "Registros")

6.5 No se requieren migraciones

La tabla auditoria ya existía (migración 000014_CreateAuditoriaTable.php). Solo se activó su uso.