# Sprint 1: Gestión Administrativa

## 1. Objetivo del Sprint
Establecer la infraestructura básica del sistema y los módulos de gestión de datos maestros necesarios para la operación académica.

## 2. Planificación de Historias de Usuario
| Código | Descripción Técnica | Puntos | Tiempo (Días) |
| :--- | :--- | :---: | :---: |
| **HU01** | Implementación de autenticación segura para la Coordinación mediante CodeIgniter Shield. | 2 | 1.0 |
| **HU02** | Módulo de gestión (CRUD) de Cursos y Periodos Académicos. | 3 | 2.0 |
| **HU03** | Módulo de gestión de cuentas de usuario para personal Docente con integración Shield. | 3 | 2.0 |
| **HU04** | Interfaz de definición de matrices de horarios institucionales (horario académico, franjas, feriados, disponibilidad docente). | 5 | 3.0 |
| **HU05** | Funcionalidad de asignación de carga horaria a docentes (horarios de clase + asignaciones curso-docente). | 3 | 2.0 |
| **Total** | | **16 SP** | **10 Días** |

## 3. Criterios de Éxito
- Acceso restringido mediante roles de Shield verificado (admin, coordinador, docente).
- Persistencia de datos maestros confirmada en base de datos (cursos, periodos, docentes, horarios).
- Capacidad de generar la carga académica para un docente específico.

## 4. Estado de Implementación

| HU       |  Estado   | Detalle                                                                                                                                    |
| :------- | :-------: | :----------------------------------------------------------------------------------------------------------------------------------------- |
| **HU01** | Completo  | Shield configurado con grupos admin/coordinador/docente, login, registro, magic links, filtros por grupo.                                  |
| **HU02** | Completo  | `Admin\CursosController` y `Admin\PeriodosController` con CRUD completo (index, store, update, destroy). Validación de fechas en periodos. |
| **HU03** | Completo  | `Admin\DocentesController` con CRUD completo. Creación automática de registros en `personal` y `docentes` al crear un Shield user. Formulario con DNI, nombres, apellidos. |
| **HU04** | Completo  | Configuración de horario académico (singleton) integrada en `Admin\ConfigController`, `Admin\FranjasController`, `Admin\FeriadosController`, `Admin\DisponibilidadController` con CRUD completo. Vistas funcionales. |
| **HU05** | Completo  | `Admin\AsignacionesController` y `Admin\HorariosController` con CRUD completo. Detección de conflictos horarios por docente implementada.  |

## 5. Notas Técnicas
- La autenticación usa **CodeIgniter Shield v1.3+** con grupos y permisos granulares.
- El CRUD de docentes (HU03) crea 3 registros en cadena: `users` (Shield) → `personal` → `docentes`. Todo dentro de una transacción.
- `HorariosController` detecta automáticamente si un docente ya tiene una clase en el mismo día y horario para evitar cruces.
- `PeriodosController` valida que `fecha_inicio` sea anterior a `fecha_fin`.
- Todos los modelos corregidos para que sus campos coincidan exactamente con las migraciones.
- `AuthModel.php` reparado (estaba vacío, causaba error fatal).
- Código comentado en minúsculas para facilitar el mantenimiento.

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