feat: completar fases 3 y 4 del roadmap mvp (gradebook, drag-and-drop, impersonacion) y actualizar README
This commit is contained in:
@@ -1,9 +1,25 @@
|
||||
# Panel de Administración Edu-Space (UniCABA)
|
||||
|
||||
Plataforma integral de gestión áulica, asignación de espacios, control de horarios y reservas académicas para la **Universidad de la Ciudad de Buenos Aires (UniCABA)**.
|
||||
Plataforma integral de gestión áulica, asignación de espacios, control de horarios, seguimiento académico y reservas para la **Universidad de la Ciudad de Buenos Aires (UniCABA)**.
|
||||
|
||||
El proyecto se basa en una arquitectura **desacoplada (Frontend / Backend)** en formato monorepo.
|
||||
|
||||
**Versión Actual:** `2.8.0` (Fases 0 a 4 del Roadmap MVP 100% completadas)
|
||||
**Institución:** Universidad de la Ciudad de Buenos Aires (UniCABA)
|
||||
|
||||
---
|
||||
|
||||
## 🗺️ Estado del Roadmap MVP
|
||||
|
||||
```
|
||||
Fase 0: Desacople y Arquitectura Base [████████████████████] 100% (Completado)
|
||||
Fase 1: Paridad Legacy y Estabilización [████████████████████] 100% (Completado)
|
||||
Fase 2: Co-docencia y Matriz Conflictos [████████████████████] 100% (Completado)
|
||||
Fase 3: Hitos Evaluativos y Calificaciones[████████████████████] 100% (Completado)
|
||||
Fase 4: UI/UX Drag & Drop e Impersonación[████████████████████] 100% (Completado)
|
||||
Fase 5: Despliegue Producción e Integrac.[░░░░░░░░░░░░░░░░░░░░] 0% (Planificada)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🏛️ Sede Institucional y Ubicaciones
|
||||
@@ -71,6 +87,33 @@ El sistema incluye sincronización automatizada con las planillas oficiales de c
|
||||
|
||||
---
|
||||
|
||||
## ⚡ Capacidades Avanzadas de Gestión (Fases 2, 3 y 4 del MVP)
|
||||
|
||||
### 1. Grilla Semanal Interactiva (Drag & Drop) y Validación de Colisiones en Tiempo Real
|
||||
- **FullCalendar Interactivo:** Arrastre y edición de horarios directo en el calendario general de Bedelía (`/schedule/calendar`).
|
||||
- **Sidebar de Comisiones por Asignar:** Panel lateral colapsable con las comisiones sin aula, con arrastre fluido hacia la grilla semanal o diaria.
|
||||
- **Detección Automática de Choques (HTTP 409):** Validación previa ante cada movimiento (`POST /api/v1/reservations/drag-update`) verificando colisiones físicas de aula, superposición docente y límite de aforo. Si hay conflicto, el evento se revierte automáticamente (`info.revert()`) y se notifica al usuario con un Toast explicativo.
|
||||
|
||||
### 2. Modo Impersonación del Superadmin ("Login as")
|
||||
- Permite al Administrador navegar la plataforma adoptando exactamente la perspectiva y permisos de cualquier docente o estudiante.
|
||||
- Activación con un clic (`bi-incognito`) desde el catálogo de usuarios (`/admin/users_list`).
|
||||
- Banner superior permanente de advertencia visual en color ámbar con identificación del usuario adoptado y botón de salida inmediata.
|
||||
- Trazabilidad y auditoría obligatoria inmutable en `audit_logs` (`IMPERSONATE_START` e `IMPERSONATE_END`).
|
||||
|
||||
### 3. Libro de Calificaciones (*Gradebook*) & Cierre Formal de Actas
|
||||
- Matriz bidimensional interactiva de calificaciones por comisión (`/schedule/gradebook/:id`) con autoguardado asíncrono debounced (500 ms).
|
||||
- Cálculo en vivo de promedios ponderados y condiciones académicas (*Promocionado*, *Regular*, *Libre*).
|
||||
- Cierre formal de actas con generación de código inmutable (`ACTA-YYYY-Sem-ID`), auditoría en `audit_logs` y congelamiento de modificaciones.
|
||||
- Soporte para reapertura excepcional justificada por Bedelía.
|
||||
- Portal del Estudiante (`/schedule/my_grades` / `/mis-materias/mis-notas`) para consulta de calificaciones y comprobantes.
|
||||
|
||||
### 4. Co-docencia, Matriz de Conflictos y Regla Diaria
|
||||
- Soporte de cátedras con múltiples docentes por comisión (`CommissionTeacher`).
|
||||
- Excepción por co-docencia: autoriza superposiciones de horario docente si la cátedra cuenta con un co-docente registrado disponible.
|
||||
- Regla restrictiva de cursada diaria: un alumno no puede cursar dos asignaturas regulares el mismo día, con excepciones automáticas para talleres/cursos cortos (`is_short_course`) o autorizaciones especiales emitidas por Bedelía.
|
||||
|
||||
---
|
||||
|
||||
## 📅 Ficha de Reserva & Gestión de Comisiones
|
||||
|
||||
* **Ficha de Reserva Detallada (`/schedule/view_reservation?id={id}`):** Información completa del espacio físico o virtual asignado, capacidad y asistencia prevista, comisión académica vinculada, docente a cargo, botones de acción inmediata (*Modificar Reserva*, *Confirmar Reserva*, *Cancelar Reserva*) y acceso con un clic a la sala de videollamada.
|
||||
@@ -86,7 +129,7 @@ El sistema incluye sincronización automatizada con las planillas oficiales de c
|
||||
### Requisitos previos
|
||||
- Node.js (v18 o superior)
|
||||
- Python 3.10+
|
||||
- PostgreSQL / SQLite
|
||||
- SQLite / PostgreSQL
|
||||
|
||||
### 1. Iniciar el Backend (Flask)
|
||||
```bash
|
||||
@@ -110,10 +153,22 @@ node src/app.js
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Pruebas Automatizadas
|
||||
|
||||
Para ejecutar la suite completa de pruebas unitarias de regresión (Fases 2, 3 y 4):
|
||||
|
||||
```bash
|
||||
cd backend
|
||||
.\venv\Scripts\python.exe -m unittest tests/test_phase2_rules.py tests/test_phase3_gradebook.py tests/test_phase4_interactive_impersonation.py
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📚 Documentación Técnica & Changelogs
|
||||
* [Estado de la Migración y Arquitectura Objetivo UniCABA](ESTADO_MIGRACION_Y_ARQUITECTURA_OBJETIVO.md)
|
||||
* [Roadmap MVP: Fases y Estadios del Proyecto](ROADMAP_MVP.md)
|
||||
* [Changelog Oficial del Proyecto](CHANGELOG.md)
|
||||
* [Changelog Oficial del Proyecto (v2.8.0)](CHANGELOG.md)
|
||||
* [Changelog MVP Consolidado](CHANGELOG_MVP.md)
|
||||
* [Estado de la Migración y Arquitectura Objetivo UniCABA](ESTADO_MIGRACION_Y_ARQUITECTURA_OBJETIVO.md)
|
||||
* [Changelog Detallado: Clases Virtuales y Dashboards](docs/CHANGELOG_VIRTUAL_CLASSES_AND_DASHBOARDS.md)
|
||||
* [Auditoría y Sesión de Reingeniería](docs/CHANGELOG_SESSION.md)
|
||||
* [Guía de Integración de Cronograma](docs/SCHEDULE_INTEGRATION_GUIDE.md)
|
||||
Reference in New Issue
Block a user