docs: actualizar estructura del proyecto y modulos de gestion en README.md

This commit is contained in:
Carlos Tello
2026-09-03 12:25:16 -03:00
parent bbe8e220ae
commit df098e5116
2 changed files with 81 additions and 30 deletions
+3
View File
@@ -57,6 +57,9 @@ cover/
*.mo
*.pot
# Examples
example/
# Django stuff:
*.log
local_settings.py
+78 -30
View File
@@ -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
```
---