# Base de Conocimiento — Sistema de Evaluación Docente (Klee)

Documentación técnica y funcional del proyecto `evaluacion`. Está pensada para que un
desarrollador nuevo (o un agente de IA) pueda operar sobre el sistema **sin releer todo el código**.

> Última revisión: 2026-08-31 · Rama de trabajo: `yeison` · Rama principal: `master`

## Cómo leer esta base de conocimiento

| Documento | Léelo si necesitas… |
|---|---|
| [01 — Visión general](01-vision-general.md) | Entender qué hace el sistema, quién lo usa y con qué vocabulario de negocio |
| [02 — Arquitectura y framework](02-arquitectura.md) | Entender el framework propio (Klee), el ciclo de una petición, el `core/` |
| [03 — Modelo de datos](03-modelo-datos.md) | Saber qué tablas y vistas existen y qué guarda cada una |
| [04 — Módulos funcionales](04-modulos.md) | Localizar rápidamente el código de un módulo concreto |
| [05 — Flujos de negocio clave](05-flujos-clave.md) | Entender la evaluación, la consolidación, la IA, la sincronización, ODS/labor |
| [06 — Seguridad, roles y permisos](06-seguridad-permisos.md) | Entender autenticación, autorización y los riesgos conocidos |
| [07 — Integraciones externas](07-integraciones.md) | Trabajar con Academusoft, Ollama, Microsoft 365, correo, PDF |
| [08 — Guía de desarrollo](08-guia-desarrollo.md) | Escribir código nuevo respetando las convenciones del proyecto |
| [09 — Operación y deuda técnica](09-operacion-deuda-tecnica.md) | Desplegar, configurar entornos, y saber dónde están las trampas |

## Resumen en 10 líneas

- Aplicación web **PHP** sobre un **framework MVC propio** llamado *Klee* (carpeta `core/`), sin Composer para el autoload propio (autoload manual en `core/AutoLoad.php`).
- Dominio: **evaluación docente universitaria**, desplegada para la **Universidad Compensar** (`gestiondocente.ucompensar.edu.co`).
- Dos aplicaciones que comparten el mismo código: el **backoffice** (`public/admin/`) y el **portal público** de evaluación (`public/`).
- Base de datos **MySQL** `evaluacion_docente`; ~50 tablas y ~35 vistas SQL que hacen el trabajo pesado de joins.
- Cinco perfiles evalúan o son evaluados: **estudiante, docente, director/decano, líder de proceso, coordinador**.
- Todo gira alrededor del **periodo académico** (`periodos`), que es un *filtro de sesión* global.
- Los resultados individuales se **consolidan** en una nota definitiva ponderada por pesos configurables.
- Hay un módulo de **IA** que clasifica comentarios y genera resúmenes por docente vía **Ollama** self-hosted.
- Los datos maestros (estudiantes, docentes, materias) se **sincronizan** desde el API Academusoft de la universidad.
- Además de evaluación, el sistema cubre **labor docente, ODS, requisiciones, escalafón y convocatorias de ascenso**.
