Saltar al contenido principal

Catálogo de features — impacto y trazabilidad

Esta es la vista maestra de la entrega: una fila por funcionalidad, con su impacto clasificado (qué toca en el tema theme_cdigital y qué toca en el plugin custom local_pccntr8203403_dashboard), el documento de requerimiento que la origina, el nodo de Figma que la diseña y su estado. Cada feature enlaza a su ficha técnica detallada.

Para entender qué componentes se entregan (versiones, madurez, requisitos) ver Entrega. Para cómo se integran y despliegan, ver Integración y despliegue.

Cómo leer la columna de impacto

  • Tema = archivos de theme_cdigital (renderers, plantillas Mustache, SCSS, AMD/JS, layouts).
  • Plugin = clases/servicios de local_pccntr8203403_dashboard (capa de datos y Web Services).
  • = la feature no toca esa capa.

Estados: Implementado (en código y verificado) · Definido (diseño y procedimiento cerrados, sin aplicar) · Decidido (arquitectura decidida, sin construir) · Diferido (pospuesto por dependencia) · Retirado (existió y se eliminó) · Descartado (evaluado y rechazado).


Alcance 2 — Dashboard de aprendizaje

Requerimiento fuente: Lógica Dashboard / Panel aprendizaje (xlsx) · Arquitectura: ADR-002

FeatureImpacto — TemaImpacto — PluginFigmaEstado
Fila "Contenido del curso" + insigniasOverride core_renderer::full_header(), course_content_header.mustache, SCSS .cdigital-coursecontent*/.cdigital-coursebadges*19723-2791Implementado
Banner "Tu desempeño académico"Override core_renderer::full_header(), course_info_banner.mustache, setting enablecoursebanner19723-2780Implementado
Modal "Ver mi avance" (7 cards)course_progress_modal.mustache, core_renderer (datos de las 7 cards), SCSS modalcourse_stats (todas las métricas) + academic_alerts19723-3353Implementado
Motor de alertas académicas (12 tipos)Mapeo código→microcopy/ícono/color en core_rendererdata\academic_alerts (12 evaluadores) + helpers de course_statsImplementado
Stats Row del Área personalLayout mydashboard.php, stats_row.mustache, SCSS .cdigital-learnstatsdata\student_stats (4 conteos)19539-773Implementado
Welcome Hero del Área personalLayout mydashboard.php, welcome_hero.mustache (solo APIs core)19541-3137Implementado
Card "Continúa donde quedaste"Layout mydashboard.php, continue_card.mustache, lógica de URL por formatocourse_stats (get_user_progress, get_user_module_progress)19644-8002Implementado
Card de curso (Mis cursos / Área personal)Override core_course/coursecard.mustache, AMD coursecard_favourite.js, coursecard_teachers.js, repository.jsWS external\get_course_teachers (db/services.php)19658-13142Implementado
Sección "Mis Cursos" del Área personalLayout mydashboard.php, miscursos_section.mustache, AMD miscursos_tabs.js, SCSS .cdigital-miscursos*, overrides block_myoverview/view-cards.mustache y block_recentlyaccessedcourses/course-card.mustachecourse_stats::get_user_progress (reutilizado)19541-17693Implementado
Panel de Actividades (región de bloques)Layout mydashboard.php, mydashboard.mustache, elimina activity_panel.mustache, SCSS .cdigital-activitypanelImplementado
Bloque "Cursos que necesitan atención"SCSS .cdigital-atencion* y override del chrome de bloque en .cdigital-activitypanelBloque nuevo block_pccntr8203403_atencion + data\attention_courses y caché useralerts19735-3646Implementado
Widget "Usuarios en línea"classes/output/online_users.php, onlineusers_widget.mustache, strings onlineusers_*19541-18056Implementado

Alcance 1 — Gamificación

Requerimiento fuente: requierments/Gamificación - Campus virtual.xlsx (spec v3, reemplaza la propuesta v2) · Guía del Sidebar v2.0 · Arquitectura: ADR-004

El motor (niveles, insignias, stash) se resuelve por configuración sobre plugins de comunidad y Moodle nativo; la capa de presentación (Gamification Sidebar) añade overrides de theme y un mini-bloque de solo lectura.

FeatureImpacto — TemaImpacto — PluginFigmaEstado
Gamification Sidebar (Card 1 — gema)classes/output/block_xp_renderer.php, blockxp_levelname.mustache, overrides block_xp/{xp-widget,progress-bar}.mustache, scss/gamification.scss, fuente Lexend19829-3930Implementado (local, curso piloto 3)
Colección de logros + CTA (Cards 2-3)SCSS .cdigital-logros*Bloque nuevo block_pccntr8203403_logros (solo lectura sobre badges)19829-3930Implementado (local, curso piloto 3)
8 niveles XP ("Gemas")— (defaults de admin de block_xp, heredados por curso)Implementado (nivel sitio)
12 insignias de logro (spec v3)— (Moodle Badges nativas; 11 activas + 1 diferida)Implementado (curso piloto 3, validado)
Objetos coleccionables (block_stash)Chrome de card en scss/gamification.scss— (4 objetos existentes, sin cambios funcionales)19829-3930Implementado
Insignia "Aliado Inteligente"— (course badge inactiva; la otorgará local_pccntr8203403_aitutor)Diferido (depende del Alcance 3)

Alcance 3 — Capa de datos para el Agente IA

Requerimiento fuente: Definición de alcance integración IA–Moodle (docx) · Arquitectura: ADR-001

FeatureImpacto -- TemaImpacto -- PluginFigmaEstado
Estructuras de datos serializables--Retornos planos de course_stats / student_stats / academic_alerts--Implementado
WS de contexto del estudiante (token + capacidades)--db/services.php + classes/external/ (funcion get_learner_context)--Decidido -- pendiente de construir
Servicio "Componente IA Externo" (Pruebas)---- (Admin UI: funciones core + token)--Configurado en Pruebas
Drawer IA (Asistente Pedagogico)Override standard_after_main_region_html(), aitutor_drawer.mustache, AMD aitutor.js, SCSS .aitutor-*Funcion send_message en local_pccntr8203403_aitutor (proxy)19561-5832Implementado

Transversal — Portada del sitio

FeatureImpacto — TemaImpacto — PluginFigmaEstado
Carrusel de banners de la portadalib.php (theme_cdigital_get_banner_slides), frontpage.mustache, AMD banner_carousel.js, SCSS .cdigital-banner*, strings frontpage_banner_*19613-6391Implementado

Transversal — Infraestructura y analítica

ComponenteImpacto — TemaImpacto — PluginEstadoDocumentación
ML Backend Python (analítica de Moodle)Activo (4/5 modelos)ML Backend
Subsistema core_ai (OpenAI, Azure, Ollama, DeepSeek)Instalado, pendiente de credencialesProveedores de IA

Mantenimiento: cada vez que una feature cambie de estado, se retire o se añada, esta matriz debe actualizarse junto con la ficha de la feature correspondiente.