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 1 — Gamificación​

Requerimiento fuente: requierments/Gamificación - Campus virtual.xlsx (spec v3, reemplaza la propuesta v2) · Gamificación · 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 Lexend—19829-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 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
Fila héroe del cursocourse_hero_row.mustache, core_renderer::full_header() y course_hero_row_context(), SCSS .cdigital-coursehero*course_stats::get_user_progress (reutilizado)19723-2736Implementado
Banner "Tu desempeño académico"Override core_renderer::full_header(), course_info_banner.mustache, setting enablecoursebanner—19723-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_stats—Implementado
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
Card de curso en resultados de búsquedaOverride coursecat_coursebox() y search_courses() (classes/output/core/course_renderer.php), course_search_card.mustache, course_search_header.mustache, course_search_hero.mustache, SCSS scss/coursesearch.scss—19631-1968, 19631-1956, 19793-3712Implementado (hero sin selector de categoría)
Exploración de cursos por categoríasOverride course_category(), coursecat_category(), coursecat_category_content(), coursecat_coursebox() (classes/output/core/course_renderer.php), coursecategory_card.mustache, coursecategory_subcat.mustache, coursecategory_courserow.mustache, extensión de course_search_hero.mustache, SCSS scss/coursecategories.scss, AMD coursecategories.js—19674-15647, 19674-15652Implementado
Sección "Mis Cursos" del Área personalLayout mydashboard.php, miscursos_section.mustache, AMD miscursos_tabs.js, SCSS .cdigital-miscursos*, overrides de block_myoverview (main, view-cards, progress-bar, nav-display-selector, nav-grouping-selector, nav-search-widget, nav-sort-selector) y block_recentlyaccessedcourses/course-card.mustachecourse_stats::get_user_progress (reutilizado)19541-17693Implementado
Filtros de Mis cursos (/my/courses.php)Siete overrides de block_myoverview, AMD mycourses_filters.js, layout mycourses.php y plantilla mycourses.mustache, SCSS .cdigital-tabfilter/.cdigital-viewtoggle—19658-13096Implementado
Panel de Actividades (región de bloques)Layout mydashboard.php, mydashboard.mustache, elimina activity_panel.mustache, SCSS .cdigital-activitypanel——Implementado
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
Drawer "Índice de curso"config.php (usescourseindex), override courseindexdrawercontrols.mustache, courseindex_header.mustache, core_renderer::courseindex_drawer_header(), SCSS .cdigital-ci-* y .drawer-toggler.drawer-left-toggle—19723-2731, 19670-14871Implementado
Marco de secciones del cursoSCSS scss/coursesections.scss + scss/mixins.scss, templates/section_hero_row.mustache, templates/section_navigation_row.mustache, classes/output/core_renderer.php (single_section_num(), section_hero_row_context(), section_navigation_context())—19723-2794, 19756-3011Implementado
Marco del contenido de actividadSCSS nuevo scss/activitypage.scss, registrado en lib.php—19784-6263, 19784-6837Implementado
Calendario restiladoOverrides core_calendar/month_detailed.mustache y month_navigation.mustache, SCSS .cdigital-cal__*——Implementado

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/get_student_panel.php + capacidad viewstudentpanel--Implementado
WS de contexto de actividades (token + capacidades)--Plugin nuevo local_pccntr8203403_iacontext: classes/external/get_activity_context.php + capacidad viewcontext + cache activitycontext--En desarrollo
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 — Navegación​

Requerimiento fuente: requierments/analisis miga de pan.md · Arquitectura: ADR-005

FeatureImpacto — TemaImpacto — PluginFigmaEstado
Drawer de menú móvilOverride theme_boost/primary-drawer-mobile.mustache, AMD frontpage_header_scroll.js—19605-5435Implementado
Miga de panClase nueva classes/cdigitalnavbar.php, override core_renderer::navbar(), setting enablethemebreadcrumb—19613-9788, 19723-2726, 19639-4622Implementado
Pestañas de secciones del curso (format_onetopic)SCSS nuevo scss/coursetabs.scss, registrado en lib.php——Implementado

Transversal — Infraestructura y analítica​

ComponenteImpacto — TemaImpacto — PluginEstadoDocumentación
ML Backend Python (analítica de Moodle)——Fuera del alcance de la entregaML Backend
Subsistema core_ai (OpenAI, Azure, Ollama, DeepSeek)——Fuera del alcance de la entregaProveedores 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.