From f6a3f6aedf6d375f9aabd688c9f9554d0a3cd21e Mon Sep 17 00:00:00 2001 From: Nurfog Date: Mon, 27 Apr 2026 12:22:05 -0400 Subject: [PATCH] feat: add PluginBlock component for rendering external web components in sandboxed iframes feat: implement PluginsPage for managing plugins with create, toggle, and delete functionalities feat: create PedagogicalAnalyticsPage for displaying course analytics including quality metrics, discrimination index, and curricular suggestions Co-authored-by: Copilot --- roadmap.md | 21 +- ...0427000001_lesson_collaborative_canvas.sql | 11 + ...2_lesson_collaborative_canvas_revision.sql | 2 + .../migrations/20260427000003_org_plugins.sql | 30 ++ services/cms-service/src/handlers/tasks.rs | 50 +- services/cms-service/src/handlers_plugins.rs | 272 +++++++++++ services/cms-service/src/main.rs | 14 + ...0427000001_lesson_collaborative_canvas.sql | 11 + ...2_lesson_collaborative_canvas_revision.sql | 2 + .../migrations/20260427000003_org_plugins.sql | 15 + services/lms-service/src/handlers.rs | 272 +++++++++++ .../lms-service/src/handlers_pedagogical.rs | 435 ++++++++++++++++++ services/lms-service/src/main.rs | 19 + .../courses/[id]/lessons/[lessonId]/page.tsx | 15 + .../components/CollaborativeWhiteboard.tsx | 388 ++++++++++++++++ .../src/components/blocks/PluginBlock.tsx | 103 +++++ web/experience/src/lib/api.ts | 64 ++- web/studio/src/app/admin/plugins/page.tsx | 379 +++++++++++++++ web/studio/src/app/admin/tasks/page.tsx | 33 +- .../[id]/analytics/pedagogical/page.tsx | 371 +++++++++++++++ .../src/components/CourseEditorLayout.tsx | 4 +- web/studio/src/lib/api.ts | 91 ++++ web/studio/tsconfig.tsbuildinfo | 2 +- 23 files changed, 2580 insertions(+), 24 deletions(-) create mode 100644 services/cms-service/migrations/20260427000001_lesson_collaborative_canvas.sql create mode 100644 services/cms-service/migrations/20260427000002_lesson_collaborative_canvas_revision.sql create mode 100644 services/cms-service/migrations/20260427000003_org_plugins.sql create mode 100644 services/cms-service/src/handlers_plugins.rs create mode 100644 services/lms-service/migrations/20260427000001_lesson_collaborative_canvas.sql create mode 100644 services/lms-service/migrations/20260427000002_lesson_collaborative_canvas_revision.sql create mode 100644 services/lms-service/migrations/20260427000003_org_plugins.sql create mode 100644 services/lms-service/src/handlers_pedagogical.rs create mode 100644 web/experience/src/components/CollaborativeWhiteboard.tsx create mode 100644 web/experience/src/components/blocks/PluginBlock.tsx create mode 100644 web/studio/src/app/admin/plugins/page.tsx create mode 100644 web/studio/src/app/courses/[id]/analytics/pedagogical/page.tsx diff --git a/roadmap.md b/roadmap.md index 4313fe1..e18f1c6 100644 --- a/roadmap.md +++ b/roadmap.md @@ -96,19 +96,19 @@ - [x] **Γ‰tica de Datos**: Herramientas para transparencia en el uso de datos por los modelos de IA local. *(MVP backend + UI Studio: endpoint protegido `/ai/data-ethics/summary` con mΓ©tricas de uso, eventos recientes y campos almacenados; panel Admin en `/admin/data-ethics`.)* ### Fase 33: Aprendizaje Colaborativo SΓ­ncrono 🀝 -- [ ] **Pizarras Compartidas**: Espacio de dibujo colaborativo integrado en lecciones. +- [x] **Pizarras Compartidas**: Espacio de dibujo colaborativo integrado en lecciones. *(MVP completo: backend REST + UI Experience con polling, autosave debounce 1.5s, control de conflictos optimista `revision`/`409` y panel de resoluciΓ³n con diff local vs remoto.)* - [ ] **EdiciΓ³n Multiusuario**: Soporte para documentos compartidos en tiempo real (tipo Google Docs). - [ ] **Salas de Estudio**: Grupos efΓ­meros para resoluciΓ³n de dudas grupales por video. ### Fase 34: AnΓ‘lisis PedagΓ³gico Profundo πŸ“Š -- [ ] **MΓ©tricas de Calidad**: AnΓ‘lisis automΓ‘tico de la efectividad de las lecciones generadas. -- [ ] **Índice de DiscriminaciΓ³n**: EstadΓ­sticas sobre quΓ© preguntas de quiz discriminan mejor el conocimiento. -- [ ] **Sugerencias Curriculares**: IA recomendando cambios en la estructura del curso basada en el rendimiento real. +- [x] **MΓ©tricas de Calidad**: AnΓ‘lisis automΓ‘tico de la efectividad de las lecciones (completion_rate, failure_rate, abandonment, avg_attempts). *(Backend `GET /courses/{id}/pedagogical/quality-metrics` + UI Studio con barras proporcionales.)* +- [x] **Índice de DiscriminaciΓ³n**: EstadΓ­sticas sobre quΓ© preguntas de quiz discriminan mejor el conocimiento. *(Backend `GET /courses/{id}/pedagogical/discrimination-index` con agrupaciΓ³n por `metadata.block_scores` + clasificaciΓ³n Excelente/Buena/Aceptable/Revisar.)* +- [x] **Sugerencias Curriculares**: Reglas automΓ‘ticas (5 tipos) recomendando cambios en la estructura del curso basada en rendimiento real. *(Backend `GET /courses/{id}/pedagogical/suggestions` + panel Studio con severidad alta/media/info/positivo.)* ### Fase 35: Ecosistema de Plugins πŸ”Œ -- [ ] **Arquitectura Modular**: Sistema para que desarrolladores externos agreguen nuevos "Content Blocks". -- [ ] **Soporte para Web Components**: Permitir la inclusiΓ³n de herramientas interactivas externas de forma segura. -- [ ] **OpenCCB Market**: GalerΓ­a interna para descargar y habilitar extensiones. +- [x] **Arquitectura Modular**: Tabla `org_plugins` con CRUD completo en `cms-service` (`GET /plugins`, `POST /plugins`, `PUT /plugins/{id}`, `DELETE /plugins/{id}`). ValidaciΓ³n HTTPS obligatoria. +- [x] **Soporte para Web Components**: Bloque `plugin` en Experience carga el componente en `