Daily Scrum - 03 de Diciembre 2025 (Dashboard Profesor y Roles)

🎯 Objetivo hoy

Crear el dashboard para profesores con gestión de asignaturas, estudiantes y documentos. Implementar sistema de roles.


✅ ¿Qué hice ayer?

  • Chat funcional con historial y sesiones.
  • API optimizada devolviendo solo el último mensaje.

🚀 ¿Qué haré hoy?

  1. Backend - Endpoints de Profesor:
    • GET /professor/subjects - listar asignaturas con contadores.
    • GET /professor/subjects/{subject}/students - estudiantes matriculados.
    • GET/POST/DELETE /professor/subjects/{subject}/documents - gestión documentos.
    • GET /professor/subjects/{subject}/stats - estadísticas de uso.
  2. Frontend - Dashboard:
    • Página principal con tarjetas de asignaturas.
    • Componentes: SubjectCard, StudentList, DocumentManager, StatsOverview.
    • Hooks: useSubjects, useStudents, useDocuments, useDashboardStats.
  3. Sistema de Roles:
    • Guards: RequireProfessor, RequireAdmin.
    • Navegación condicional según rol y asignaturas.
    • Página de Configuración con secciones según rol.

🚧 Obstáculos encontrados

  • DELETE de archivos no existía en RAG service → Añadido endpoint.
  • Campo fecha era obligatorio en upload → Hecho opcional con fecha automática.
  • Botones de SubjectCard se salían del contenedor → Añadido overflow-hidden y truncate.
  • Admin y Configuración se seleccionaban juntos → Añadido end prop en NavLink.

✅ Completado

  • Endpoints de profesor en backend.
  • DELETE endpoint en RAG service.
  • Dashboard con tabs: Overview, Estudiantes, Documentos, Estadísticas.
  • Sistema de 3 roles: student, professor, admin.
  • Navegación condicional (Mis Clases solo si tiene asignaturas).
  • Página de Configuración unificada con secciones por rol.
  • Guards de ruta: RequireProfessor, RequireAdmin.

📝 Decisiones de diseño

  • Admin vs Professor: Admin es rol separado. Solo ve “Mis Clases” si tiene asignaturas asignadas.
  • Configuración: Accesible a todos, pero con secciones diferentes:
    • Todos: Perfil, Notificaciones, Apariencia.
    • Professor/Admin: Configuración del Agente.
    • Solo Admin: Base de Datos RAG, Seguridad.

🔜 Próximos pasos

  • Implementar Admin Dashboard con estadísticas globales.
  • Diálogo para matricular estudiantes.
  • Funcionalidad del tema oscuro/claro.