Aquí se documentarán lo relacionado al nuevo Gestor de clases para el LMS.
Table of Contents | ||
---|---|---|
|
Introducción
Dentro de la iniciativa de migración de LMS se plantea extraer la responsabilidad de la gestión de clases del LMS e implementarla de manera transversal.
Antecedentes
Actualmente la gestión de clases se encuentra dentro del LMS e-stela.
La gestión de clases se realizan dentro de la consola de administrador por los roles ADCOL, DIRECTOR, SUBDIRECTOR y COORDINADOR, este último solo puede gestionar las clases en las que esta inscrito (/wiki/spaces/LMS3/pages/31304469 ).
A una clase se pueden asociar una serie de materias y submaterias tanto editoriales como creadas por el propio colegio.
Servicios Web
EL LMS provee una serie de servicios de consulta de clases:
GET clases /wiki/spaces/LMS3/pages/31297991
GET participantes de clase /wiki/spaces/LMS3/pages/31297996
GET Materias de clase /wiki/spaces/LMS3/pages/31294162
GET Materias de grado /wiki/spaces/LMS3/pages/31294463
Legacy
GET clases /wiki/spaces/LMS3/pages/31295424
GET participantes de clase /wiki/spaces/LMS3/pages/31298201
GetUser Pleno /wiki/spaces/LMS3/pages/31298506
Consumidores de servicios vía SSB
Actualmente en el SSB se encuentran dados de alta como consumidores de servicios del LMS (no legacy salvo materias):
SIF_ALPHA |
SIF_BRP |
SIF_DASH |
SIF_FENIX |
SIF_INGENIAT |
SIF_LMS_CONSR |
SIF_SIS |
SIF_TEST_SSB |
SIF_UNOIECOSYSTEM |
SIF_BRP |
SIF_TEST_CCORP |
SIF_UNOIECOSYSTEM |
DsEstelaIntegrationProd |
eStelaIntegrationApi |
neds_stn |
plataforma_analitica_santillana_pro |
SIF_NETEX_NEDS |
En las últimas 2 semanas se observan consumo de los siguientes:
DsEstelaIntegrationProd |
SIF_DASH |
SIF_NETEX_NEDS |
SIF_AURORA (PRE) |
plataforma_analitica_santillana_pre (PRE) |
Consumidores de servicios directos al LMS
Pendiente del reporte de esta información por Netex.
Eventos de dominio
SchoolClass
schoolclass_created
schoolclass_updated
schoolclass_deleted
UserSchoolClass
user_schoolclass_updated
user_schoolclass_deleted
/wiki/spaces/EDS/pages/18057531
Problemáticas en la gestión de clases
La principal problemática con la actual gestión de clases se haya en que esta ligada al LMS, y requiere del LMS para su gestión y propagación a otras plataformas. Esto, en ocasiones, ha implicado tener que liberar el LMS únicamente para poder proveer las clases a otras plataformas.
Dentro de la propagación de clases por eventos se encuentra la problemática de que, en ocasiones, el LMS envía la creación de clases duplicadas.
El evento user_schoolclass_updated siempre debería mandar el listado de usuarios ligados a la clase completo, esto haría innecesario el evento user_schoolclass_deleted.
Actualmente se permiten varias materias pero se recomienda solo asociar una ya que da problemas en productos como el RLP.
Requisitos
API-FIrst, DDD, hexagonal, Principios SOLID
Debe convivir con e-stela de manera temporal, una empresa (ciclo activo) que gestione clases en GdC no las gestionará en e-stela.
Mantener APIs del LMS sin cambios por los clientes.
Mantener eventos del SMS sin cambios por clientes salvo una mejora contemplada en los participantes de clase (Se plantea que el SMS incluya en el meta el productor del evento)
Enviar notificaciones vía módulo desacoplado con la asignación/desasignación de a clases.
Solo se podrán asignar
Una clase no tiene que tener una materia asignada de manera obligatoria.
Incluir las clases en los servicios userAll
Limitar el numero de alumnos y profesores asignados a una clase (a:60 - p:5) extensible por clase/colegio???.
API
Todas las acciones del api estarán dentro del contexto de colegio nivel ciclo.
Las nuevas APIs del GdC solo devolverán información y permitirán gestionar clases creadas en el Gdc, nunca clases de e-stela.
Estas APIs permitirán realizar las siguientes acciones:
Listar Clases
Obtener detalle de Clase
Crear clase
Editar datos de clase
Listar participantes de clase
Añadir participantes a clase
Eliminar participantes de clase
Las imágenes se almacenarán en S3.
Las imágenes se subirán vía url prefirmada de S3 a un bucket temporal y en los payloads de PUT o POST se enviará la key temporal, el procesado del API se encargará de moverla al bucket S3 definitivo.
El bucket temporal tendrá configurada una política de TTL.
Cuando se deba devolver una imagen en un servicio se creará una url prefirmada de cloudfront.
Eventos
Enviar los siguientes eventos vía SMS:
SchoolClass
schoolclass_created
schoolclass_updated
schoolclass_deleted
UserSchoolClass
user_schoolclass_updated (enviará la lista completa de participantes de la clase, se solicitará a e-stela que se comporte de la misma forma. Una vez realizados los cambios los consumidores de estos eventos podrán cambiar su lógica y dejar de procesar el deleted)
Datos de clase
id (UUID autogenerado)
Nombre
Grupo (CGG)
Participantes (Listado de personaRol)
Materias (actualmente se limitará a una)
Orden (Campo numérico para ordenaciones en fronts)
Color (Por defecto heredará el de la materia pero podrá ser editable)
Icono
Imagen Portada
Activa (booleano)
Editable por profesores (booleano, se asignará el valor False por defecto)
Horario????
Auditoria
Todas las acciones de usuario en el API han de ser logueadas y almacenadas en S3 con un formato que pueda ser consultable vía Athena.
Servicios Legacy
Los siguientes servicios han de servirse a través del SSB, sin ningún cambio por parte de los clientes, desde el nuevo GdC:
GET clases /wiki/spaces/LMS3/pages/31297991
GET participantes de clase /wiki/spaces/LMS3/pages/31297996
GET Materias de clase /wiki/spaces/LMS3/pages/31294162
GET Materias de grado /wiki/spaces/LMS3/pages/31294463
Estos servicios mantendrán la firma actual y se considerarán deprecados, no permitiendo nuevos consumidores. Los actuales consumidores deberán migrarse a las nuevas APIs en un plazo máximo de 1 año desde la retirada de e-stela.
En estos servicios el GdC devolverá tanto las clases creadas en el nuevo sistema como en e-stela.
Los servicios actuales considerados legacy no se migrarán y solo serán contestados por el actual LMS (e-stela) con lo que no habrá visibilidad de las clases creadas en GdC.
Líneas futuras
Permitir asociar alumnos a clases mediante código.
Permitir a los profesores crear clases. (configuración por colegio).
Invitar a otros profesores a mis clases (requiere aceptación para asignarlo como participante).
Generador de horarios https://additioapp.com/generador-de-horarios/
View file | ||
---|---|---|
|
...