# XI. ESPECIFICACIÓN DE CASOS DE USO

## 1. Actores del Sistema

| Actor | Rol | Descripción |
| :--- | :--- | :--- |
| **Docente** | Usuario final | Registra sesiones diarias, consulta horarios e historial. |
| **Coordinador** | Supervisor | Gestiona docentes, cursos, horarios y supervisa registros. |
| **Administrador** | Administrador del sistema | Gestión global con acceso a todos los módulos. |

## 2. Casos de Uso del Docente

### CU-01: Iniciar sesión docente (HU06)
- **Actor:** Docente
- **Depende de:** HU03 (Cuenta creada por coordinador)
- **Descripción:** Permitir al docente ingresar al sistema con DNI y contraseña.
- **Flujo principal:**
  1. El docente ingresa su DNI y contraseña.
  2. El sistema valida las credenciales cifradas.
  3. Si son correctas, redirige al panel de clases del día.
  4. Si es el primer ingreso, solicita cambio de contraseña.
- **Flujo alternativo:**
  - Cuenta bloqueada tras 5 intentos fallidos (15 min de espera).
  - Cuenta desactivada: mensaje "Contacte al coordinador".

### CU-02: Recuperar contraseña (HU18)
- **Actor:** Docente
- **Depende de:** HU06
- **Descripción:** Solicitar al coordinador un restablecimiento de contraseña.
- **Flujo principal:**
  1. El docente ingresa su DNI en el formulario de recuperación.
  2. El sistema registra una solicitud pendiente para el coordinador.
  3. El docente recibe confirmación de que su solicitud fue enviada.

### CU-03: Visualizar clases del día (HU07, HU12)
- **Actor:** Docente
- **Depende de:** HU05, HU06
- **Descripción:** Mostrar al docente las clases programadas en la fecha actual.
- **Criterios de aceptación:**
  - El sistema muestra únicamente las clases de la fecha de hoy.
  - Filtrado exclusivo por el ID del docente autenticado.
  - Cada clase muestra: curso, horario (inicio-fin), estado (pendiente/en tiempo/fuera de plazo).
  - Indicador visual con colores según estado.

### CU-04: Registrar sesión de clase (HU09, HU10)
- **Actor:** Docente
- **Depende de:** CU-03
- **Descripción:** Permitir al docente registrar la sesión realizada dejando evidencia escrita.
- **Flujo principal:**
  1. El docente selecciona una clase de la lista del día.
  2. El sistema verifica: `Hora_Actual > Hora_Fin_Clase`.
  3. Si la clase ya finalizó, habilita el formulario de registro.
  4. El docente ingresa la descripción de la actividad.
  5. El sistema guarda el registro con estado y origen.
- **Flujo alternativo:**
  - `Hora_Actual < Hora_Fin_Clase`: el sistema bloquea el registro y muestra mensaje con la hora de fin.

### CU-05: Clasificación automática del registro (HU11)
- **Actor:** Sistema (automático)
- **Depende de:** CU-04
- **Descripción:** El sistema clasifica automáticamente el registro según la hora de entrega.
- **Reglas:**
  - `Hora_Registro <= Hora_Fin + Tolerancia` → estado `en_tiempo`.
  - `Hora_Registro > Hora_Fin + Tolerancia` → estado `fuera_de_plazo`.
  - La tolerancia se obtiene del horario específico o de la configuración global.

### CU-06: Consultar historial personal (HU13)
- **Actor:** Docente
- **Depende de:** HU09
- **Descripción:** Revisar todos los registros anteriores con filtros.
- **Criterios de aceptación:**
  - Lista paginada (100 registros) ordenada por fecha descendente.
  - Filtros: por curso y rango de fechas.
  - Muestra: fecha, curso, horario, estado, descripción.

### CU-07: Consultar horario semanal (HU08)
- **Actor:** Docente
- **Depende de:** HU05, HU06
- **Descripción:** Visualizar la matriz completa de horario semanal.
- **Criterios de aceptación:**
  - Organizado por días de la semana y franjas horarias.
  - Filtro por periodo académico.
  - Muestra: curso, código, horario, día.

### CU-08: Ver cursos asignados
- **Actor:** Docente
- **Depende de:** HU05, HU06
- **Descripción:** Consultar los cursos que tiene asignados.
- **Criterios de aceptación:**
  - Lista de cursos con cantidad de clases por semana.
  - Solo cursos activos del docente autenticado.

## 3. Casos de Uso del Coordinador

### CU-09: Iniciar sesión del coordinador (HU01)
- **Actor:** Coordinador
- **Depende de:** Ninguna
- **Descripción:** El coordinador accede al panel administrativo.
- **Flujo principal:**
  1. Ingresa credenciales (email/username + contraseña).
  2. El sistema valida contra Shield.
  3. Redirige al dashboard con indicadores del día.

### CU-10: Dashboard de indicadores (HU14)
- **Actor:** Coordinador
- **Depende de:** CU-09
- **Descripción:** Visualizar KPIs del día en tiempo real.
- **Indicadores:**
  - Total de clases programadas hoy.
  - Total de registros realizados.
  - Registros en tiempo vs fuera de plazo.
  - Clases pendientes.
  - Docentes con clases sin registrar.

### CU-11: Gestionar docentes (HU03)
- **Actor:** Coordinador
- **Depende de:** CU-09
- **Descripción:** CRUD completo de cuentas de docentes.
- **Criterios de aceptación:**
  - Crear: nombres, apellidos, DNI, correo, contraseña temporal (DNI).
  - Editar: todos los campos, contraseña opcional.
  - Desactivar/activar: cambio de estado sin eliminar.
  - Eliminar: remueve definitivamente.
  - Validación de DNI y correo únicos.

### CU-12: Gestionar cursos (HU02)
- **Actor:** Coordinador
- **Depende de:** CU-09
- **Descripción:** CRUD completo de cursos.
- **Criterios de aceptación:**
  - Campos: nombre, código, descripción, horas semanales, programa, activo.
  - Vista con horarios asociados a cada curso.
  - Validación de código único.

### CU-13: Gestionar periodos académicos (HU02)
- **Actor:** Coordinador
- **Depende de:** CU-09
- **Descripción:** CRUD de periodos académicos.
- **Criterios de aceptación:**
  - Campos: nombre, fecha inicio, fecha fin, activo.
  - Marcar periodo como actual.
  - Protección contra modificación de fechas si hay registros asociados.

### CU-14: Gestionar horarios de clase (HU04, HU05)
- **Actor:** Coordinador
- **Depende de:** CU-11, CU-12, CU-13
- **Descripción:** Crear y asignar horarios a docentes.
- **Criterios de aceptación:**
  - Selección: curso, docente, día, franja horaria o hora manual.
  - Validación de cruce horario (mismo día y hora).
  - Validación de horas máximas semanales por curso.
  - Tolerancia configurable por horario.

### CU-15: Gestionar asignaciones curso-docente (HU05)
- **Actor:** Coordinador
- **Depende de:** CU-11, CU-12, CU-13
- **Descripción:** Vincular qué cursos dicta cada docente por periodo.
- **Criterios de aceptación:**
  - Asignar curso a docente con periodo opcional.
  - Desasignar.
  - Filtro por periodo.

### CU-16: Gestionar disponibilidad docente (HU04)
**Estado:** Descartado — la funcionalidad fue removida del sistema.
- **Actor:** Coordinador
- **Depende de:** CU-11
- **Descripción:** Registrar la disponibilidad horaria de cada docente.
- **Criterios de aceptación:**
  - Por docente, día y rango horario.
  - Validación: hora inicio < hora fin.

### CU-17: Configurar horario académico (HU04)
- **Actor:** Coordinador
- **Depende de:** CU-09
- **Descripción:** Definir el horario laboral institucional.
- **Criterios de aceptación:**
  - Hora de inicio y fin de la jornada.
  - Días laborables (selección múltiple).
  - Tolerancia por defecto (minutos).
  - Protección contra cambios si hay horarios guardados.

### CU-18: Gestionar feriados (HU04)
- **Actor:** Coordinador
- **Depende de:** CU-17
- **Descripción:** CRUD de días feriados.
- **Criterios de aceptación:**
  - Fecha, descripción, es laborable.
  - Los feriados no laborables se excluyen del calendario activo.

### CU-19: Gestionar franjas académicas (HU04)
- **Actor:** Coordinador
- **Depende de:** CU-17
- **Descripción:** Definir las franjas horarias estándar.
- **Criterios de aceptación:**
  - Nombre, duración (minutos), hora de inicio.
  - El sistema calcula automáticamente la hora de fin.
  - Validación: dentro del horario laboral.
  - Las franjas se usan como plantillas para crear horarios.

### CU-20: Supervisar registros (HU16)
- **Actor:** Coordinador
- **Depende de:** HU09
- **Descripción:** Tabla maestra con todos los registros de la institución.
- **Criterios de aceptación:**
  - Filtros: docente, curso, rango de fechas, estado.
  - Columnas: docente, curso, fecha, hora registro, estado, descripción.

### CU-21: Generar reportes (HU17, HU20)
- **Actor:** Coordinador
- **Depende de:** CU-20
- **Descripción:** Exportar datos consolidados.
- **Criterios de aceptación:**
  - Filtros combinados: docente, curso, periodo, fechas.
  - Exportación a PDF con formato profesional.
  - Exportación a Excel para análisis.

### CU-22: Atender solicitudes de contraseña (HU18)
- **Actor:** Coordinador
- **Depende de:** CU-02, CU-11
- **Descripción:** Gestionar las solicitudes de recuperación de contraseña.
- **Criterios de aceptación:**
  - Ver lista de solicitudes pendientes.
  - Generar contraseña temporal para el docente.
  - Marcar solicitud como atendida.

## 4. Casos de Uso del Administrador

### CU-23: Panel de administración global
- **Actor:** Administrador
- **Descripción:** Acceso completo a todos los módulos del sistema.
- **Funcionalidades:**
  - Dashboard con estadísticas globales.
  - Gestión de docentes, cursos y horarios.
  - Configuración del sistema.
  - Reportes globales.

## 5. Pantallas Principales del Sistema

| Pantalla | Usuario | Descripción |
| :--- | :--- | :--- |
| **Login** | Todos | Autenticación segura con credenciales. |
| **Clases del día** | Docente | Agenda filtrada por fecha actual con indicadores de estado. |
| **Registro de clase** | Docente | Formulario para ingresar evidencia académica. |
| **Historial** | Docente | Buscador de registros propios anteriores con filtros. |
| **Horario semanal** | Docente | Matriz de horarios organizada por días y franjas. |
| **Mis cursos** | Docente | Lista de cursos asignados al docente. |
| **Dashboard** | Coordinador | KPIs del día con métricas y gráficos. |
| **Registros** | Coordinador | Tabla maestra de todos los envíos institucionales. |
| **Gestión (CRUDs)** | Coordinador | Módulos para administrar docentes, cursos, horarios, periodos. |
| **Asignaciones** | Coordinador | Vinculación curso-docente por periodo. |
| **Disponibilidad** | Coordinador | Descartado — removido del sistema. |
| **Configuración** | Coordinador | Horario laboral, feriados, franjas académicas, tolerancia. |
| **Reportes** | Coordinador | Exportación de datos a PDF y Excel. |
| **Solicitudes** | Coordinador | Gestión de recuperación de contraseñas. |
| **Auditoría** | Coordinador | Panel de auditoría general. |

---
- Regresar al [[index|Inicio]]
