From df098e5116d2a14914267ff8f813aefbfa5d6167 Mon Sep 17 00:00:00 2001 From: Carlos Tello Date: Thu, 3 Sep 2026 12:25:16 -0300 Subject: [PATCH] docs: actualizar estructura del proyecto y modulos de gestion en README.md --- .gitignore | 3 ++ README.md | 108 ++++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 81 insertions(+), 30 deletions(-) diff --git a/.gitignore b/.gitignore index de788bd..12a345d 100644 --- a/.gitignore +++ b/.gitignore @@ -57,6 +57,9 @@ cover/ *.mo *.pot +# Examples +example/ + # Django stuff: *.log local_settings.py diff --git a/README.md b/README.md index 7ebefe6..47d0e18 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,23 @@ Plataforma integral de gestión áulica, asignación de espacios, control de hor * **Soporte Multilingüe:** Internacionalización integral (Español e Inglés) compilada con GNU gettext (`pybabel`). * **Tarjetas Estadísticas Interactivas:** Accesos directos rápidos desde el panel general hacia las distintas secciones operativas. +### 🏛️ 8. Sistema Integral de Gestión Institucional (8 Módulos) +El menú desplegable **Gestión** en la barra de navegación organiza las áreas operativas de la universidad: +* **Espacios e Infraestructura:** + * **Edificios y Sedes (`/buildings/list`):** Administración de edificios físicos, arquitectura y estado edilicio. + * **Aulas Presenciales (`/classrooms/list?view_mode=physical`):** Catálogo de aulas físicas por piso, capacidades y zócalos compactos con métricas de ocupación en tiempo real (día, semana, mes). + * **Aulas Virtuales con Reunión (`/classrooms/list?view_mode=virtual`):** Campus Virtual con salas a demanda agrupadas por comisión, capacidad ilimitada ($\infty$) y enlaces directos de acceso a videollamadas (Zoom, Google Meet, Microsoft Teams). + * **Gestión de Ocupación y Métricas (`/admin/occupancy-metrics`):** Dashboard analítico de tasas de ocupación horaria (día, semana, mes), horas pico, distribución por turno y comparativa física vs. virtual. +* **Gestión Académica:** + * **Carreras (`/admin/careers`):** ABM de carreras universitarias y planes de estudio con contador de asignaturas y comisiones activas. + * **Asignaturas (`/admin/subjects`):** Catálogo institucional de materias con créditos, departamentos y filtros por carrera y estado. + * **Comisiones y Cursadas (`/schedule/commissions`):** Gestión de cursadas, turnos, docentes, enlaces virtuales e hitos de evaluación. + * **Ciclo Lectivo (`/admin/academic-terms`):** Modelo y panel de administración de períodos académicos, cuatrimestres y activación del ciclo lectivo en curso. +* **Administración & Seguridad:** + * **Usuarios y Roles RBAC:** Cuentas, asignación de permisos matriciales y auditoría. + * **Tipificaciones de Hitos:** Catálogo de tipos de hitos de evaluación académica. + * **Sincronización Sheets:** Integración con Google Sheets para actualización en lote. + --- ## 🛠️ Stack Tecnológico @@ -160,36 +177,67 @@ Plataforma integral de gestión áulica, asignación de espacios, control de hor ```text admin-edu-space/ ├── app/ -│ ├── __init__.py # Factoría de la aplicación Flask y extensiones -│ ├── models/ # Modelos de base de datos SQLAlchemy -│ │ ├── user.py # Modelo de usuario -│ │ ├── role.py # Roles y matriz de permisos RBAC -│ │ ├── classroom.py # Aulas y capacidades físicas / virtuales -│ │ ├── building.py # Edificios y sedes institucionales -│ │ ├── career.py # Carreras universitarias -│ │ ├── subject.py # Asignaturas y comisiones -│ │ └── reservation.py # Reservas horarias y turnos -│ ├── routes/ # Controladores y rutas (Blueprints) -│ │ ├── auth.py # Autenticación, login y perfil -│ │ ├── main.py # Dashboard y métricas generales -│ │ ├── admin.py # Gestión de usuarios, roles e importación -│ │ ├── classrooms.py # ABM de aulas y equipamiento -│ │ ├── buildings.py # Gestión de sedes y edificios -│ │ ├── schedule.py # Calendario, cartelera del día y reservas -│ │ └── genetic_algorithm.py # Optimizador genético de aulas -│ ├── services/ # Servicios de negocio -│ │ └── sheets_importer.py # Parser y sincronizador de Google Sheets -│ ├── forms/ # Formularios Flask-WTF -│ ├── templates/ # Plantillas Jinja2 (Bootstrap 5) -│ ├── static/ # Archivos CSS, JS e imágenes -│ └── utils/ # Decoradores de autorización y utilidades -├── config/ # Ajustes de configuración -├── translations/ # Catálogos de traducción (es / en) -├── init_db.py # Script DDL y semillero inicial -├── CHANGELOG_SESSION.md # Registro cronológico detallado de cambios -├── requirements.txt # Dependencias del proyecto -├── .env.example # Plantilla de variables de entorno -└── app.py # Punto de entrada de la aplicación +│ ├── __init__.py # Factoría de la aplicación Flask y extensiones +│ ├── forms/ # Formularios Flask-WTF con validación CSRF +│ │ ├── auth.py # Login, perfil y cambio de clave +│ │ ├── building.py # Sedes y edificios +│ │ ├── classroom.py # Aulas y capacidades (con soporte ∞) +│ │ └── reservation.py # Reservas de aulas y horarios +│ ├── models/ # Modelos relacionales SQLAlchemy +│ │ ├── academic_term.py # Ciclos lectivos y períodos académicos (activo/histórico) +│ │ ├── building.py # Sedes y edificios institucionales +│ │ ├── career.py # Carreras y titulaciones universitarias +│ │ ├── classroom.py # Aulas físicas y virtuales con capacidades +│ │ ├── genetic_algorithm.py # Estructuras de optimización heurística +│ │ ├── milestone.py # Tipificaciones de hitos académicos y exámenes +│ │ ├── reservation.py # Reservas horarias, estados y turnos +│ │ ├── role.py # Roles y matriz de permisos granulares RBAC +│ │ ├── subject.py # Asignaturas, materias y comisiones de cursada +│ │ └── user.py # Usuarios, credenciales y asignación de roles +│ ├── routes/ # Controladores y rutas modulares (Blueprints) +│ │ ├── admin.py # Carreras, Asignaturas, Ciclo Lectivo, Tipificaciones, Métricas, Usuarios y Roles +│ │ ├── auth.py # Autenticación, sesiones y perfil +│ │ ├── buildings.py # Gestión de sedes y edificios +│ │ ├── classrooms.py # Aulas presenciales vs. Campus Virtual a demanda y métricas de uso +│ │ ├── genetic_algorithm.py # Optimizador heurístico de asignación de espacios +│ │ ├── main.py # Dashboard principal y métricas rápidas +│ │ └── schedule.py # Calendario interactivo, cartelera del día, comisiones y reservas +│ ├── services/ # Servicios y lógica de negocio +│ │ └── sheets_importer.py # Parser y sincronizador bidireccional de Google Sheets +│ ├── static/ # Recursos estáticos web +│ │ ├── css/ +│ │ │ ├── style.css # Estilos base y utilidades +│ │ │ └── theme.css # Variables CSS para modo claro y modo oscuro +│ │ └── js/ +│ │ ├── genetic-algorithm.js # Lógica de ejecución del algoritmo genético +│ │ ├── main.js # Interacciones globales y filtros dinámicos +│ │ └── theme-toggle.js # Conmutador reactivo de tema con persistencia +│ ├── templates/ # Vistas Jinja2 renderizadas con Bootstrap 5 +│ │ ├── base.html # Plantilla maestra con navbar categorizada y menú Gestión +│ │ ├── dashboard.html # Panel principal de control y métricas +│ │ ├── genetic_optimizer.html # Interfaz del optimizador de espacios +│ │ ├── admin/ +│ │ │ ├── academic_terms/ # Gestión de Ciclos Lectivos y cuatrimestres +│ │ │ ├── careers/ # Gestión de Carreras y titulaciones +│ │ │ ├── metrics/ # Dashboard de Ocupación y Métricas de Espacios +│ │ │ ├── milestone_types/ # Gestión de Tipificaciones de Hitos +│ │ │ ├── roles/ # Gestión de Roles y Matriz de Permisos RBAC +│ │ │ ├── subjects/ # Gestión de Asignaturas y Materias +│ │ │ ├── users/ # Gestión de Usuarios y cuentas +│ │ │ └── import.html # Sincronización con Google Sheets +│ │ ├── auth/ # Vistas de autenticación y perfil de usuario +│ │ ├── buildings/ # Listado, alta y edición de sedes y edificios +│ │ ├── classrooms/ # Listado físico vs virtual, alta, edición y ficha +│ │ └── schedule/ # Calendario (FullCalendar), cartelera del día, comisiones y reservas +│ └── utils/ # Utilidades transversales y decoradores +│ └── decorators.py # Decoradores RBAC (@permission_required, can_manage, etc.) +├── config/ # Configuraciones de entorno (desarrollo, testing, prod) +├── translations/ # Catálogos GNU gettext compilados (es / en) +├── init_db.py # Inicializador DDL y semillero de datos +├── CHANGELOG_SESSION.md # Historial técnico cronológico +├── requirements.txt # Dependencias Python +├── .env.example # Plantilla de variables de entorno +└── app.py # Punto de entrada de la aplicación Flask ``` ---