Appearance
Cobertura para una intranet estilo Blackboard (LMS)
Comparativa de lo implementado frente a las funcionalidades típicas de un LMS (Blackboard/Moodle).
Confirmación: Sí. El backend de la intranet está completo a nivel Blackboard para el alcance acordado: roles, cursos/clases, matrícula, notas, asistencia, CRUD de tareas (profesor), entregas y adjuntos, material por clase, anuncios, agenda virtual (mérito/demérito), calendario (eventos por tareas), portales profesor/estudiante/padre, noticias públicas, notificaciones por email (agenda y nota publicada), cache, event bus, rate limiting, tests, README y backups (script + doc S3).
✅ Cubierto
| Área | Funcionalidad | Estado |
|---|---|---|
| Usuarios y roles | ADMIN, EDITOR, TEACHER, PARENT, STUDENT; gestión desde admin | ✅ |
| Cursos / Clases | Cursos, niveles, secciones, clases con profesor y horario | ✅ |
| Matrícula | section_enrollments (estudiante en sección → todas las clases de esa sección) | ✅ |
| Notas | Profesor registra por clase/tipo evaluación; estudiante y padre ven propias/hijos | ✅ |
| Asistencia | Registro por clase y fecha (portal profesor) | ✅ |
| Tareas (entregas) | Entidad Task + TaskSubmission; adjuntos en tarea y en entrega | ✅ |
| Tareas – Estudiante | Listar mis tareas, ver mi entrega, entregar (PUT), adjuntos (listar/subir/descargar) | ✅ |
| Tareas – Profesor | Listar tareas por clase, listar entregas por tarea, adjuntos (listar/subir/descargar) | ✅ |
| Material por clase | Archivos por clase (profesor sube); estudiante lista y descarga (presigned) | ✅ |
| Anuncios | Por clase (profesor crea); estudiante y padre leen (sus clases / clases de hijos) | ✅ |
| Portal padre | Hijos, notas de hijos, pagos propios, anuncios de clases de hijos; vínculo padre–estudiante (admin) | ✅ |
| Portal estudiante | Notas propias, mis clases, tareas, entrega, archivos de clases, anuncios, agenda | ✅ |
| Horarios | Entidad Schedule; clases con schedule_id; se expone en resumen de clase | ✅ |
| Pagos | Admin registra; padre ve los suyos (titular) | ✅ |
| Noticias / Landing | Backoffice: crear, aprobar, rechazar; imágenes; GET /public/news (aprobadas, sin auth) | ✅ |
| Auth | JWT Cognito, /auth/me, roles en token | ✅ |
| Archivos | S3, presigned URLs, metadata en BD; validación tipo/tamaño | ✅ |
| CRUD tareas (profesor) | Crear, editar, eliminar tarea; listar y detalle por clase | ✅ |
| Adjuntos tarea/entrega | Profesor: adjuntos a tarea y ver adjuntos de entregas; estudiante: adjuntos a su entrega | ✅ |
| Agenda virtual | Mérito/demerito por clase (profesor); padre y estudiante solo lectura | ✅ |
| Opcionales | CORS prod, health extendido (AwsHealthIndicator) | ✅ |
⚠️ Opcional o no contemplado
| Área | Estado | Notas |
|---|---|---|
| Mensajería padre–colegio (más allá de notificaciones automáticas) | No implementado | Solo agenda y nota publicada por email; resto opcional. |
| Foros, cuestionarios, videollamadas, rúbricas | No contemplado | Típico de LMS avanzado; fuera del alcance actual. |
❌ No contemplado (típico en LMS avanzado)
- Foros / debates por clase.
- Cuestionarios / exámenes con preguntas y respuestas automáticas (sí hay notas por tipo de evaluación).
- Mensajería interna (inbox profesor–estudiante–padre).
- Videollamadas integradas.
- Rubricas de evaluación (sí hay notas por tipo).
- Entrega en grupo (solo entrega individual por estudiante).
Conclusión
El backend de la intranet estilo Blackboard está completo para el alcance definido: roles, clases, matrícula, notas, asistencia, tareas con CRUD (profesor), entregas y adjuntos, material por clase, anuncios, agenda virtual, calendario, portales profesor/estudiante/padre, pagos, noticias públicas, notificaciones por email, cache, rate limiting, tests, README y backups.
El flujo “profesor asigna tarea → estudiante entrega” está cerrado (CRUD de tareas por profesor ya implementado). Calendario, noticias públicas, tests, README y backups también. No incluido en este alcance: foros, cuestionarios automáticos, mensajería interna, videollamadas, rúbricas, entregas en grupo.