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
| Feature | Impacto — Tema | Impacto — Plugin | Figma | Estado |
|---|---|---|---|---|
| Fila "Contenido del curso" + insignias | Override core_renderer::full_header(), course_content_header.mustache, SCSS .cdigital-coursecontent*/.cdigital-coursebadges* | — | 19723-2791 | Implementado |
| Banner "Tu desempeño académico" | Override core_renderer::full_header(), course_info_banner.mustache, setting enablecoursebanner | — | 19723-2780 | Implementado |
| Modal "Ver mi avance" (7 cards) | course_progress_modal.mustache, core_renderer (datos de las 7 cards), SCSS modal | course_stats (todas las métricas) + academic_alerts | 19723-3353 | Implementado |
| Motor de alertas académicas (12 tipos) | Mapeo código→microcopy/ícono/color en core_renderer | data\academic_alerts (12 evaluadores) + helpers de course_stats | — | Implementado |
| Stats Row del Área personal | Layout mydashboard.php, stats_row.mustache, SCSS .cdigital-learnstats | data\student_stats (4 conteos) | 19539-773 | Implementado |
| Welcome Hero del Área personal | Layout mydashboard.php, welcome_hero.mustache (solo APIs core) | — | 19541-3137 | Implementado |
| Card "Continúa donde quedaste" | Layout mydashboard.php, continue_card.mustache, lógica de URL por formato | course_stats (get_user_progress, get_user_module_progress) | 19644-8002 | Implementado |
| Card de curso (Mis cursos / Área personal) | Override core_course/coursecard.mustache, AMD coursecard_favourite.js, coursecard_teachers.js, repository.js | WS external\get_course_teachers (db/services.php) | 19658-13142 | Implementado |
| Sección "Mis Cursos" del Área personal | Layout mydashboard.php, miscursos_section.mustache, AMD miscursos_tabs.js, SCSS .cdigital-miscursos*, overrides block_myoverview/view-cards.mustache y block_recentlyaccessedcourses/course-card.mustache | course_stats::get_user_progress (reutilizado) | 19541-17693 | Implementado |
| 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-activitypanel | Bloque nuevo block_pccntr8203403_atencion + data\attention_courses y caché useralerts | 19735-3646 | Implementado |
| Widget "Usuarios en línea" | classes/output/online_users.php, onlineusers_widget.mustache, strings onlineusers_* | — | 19541-18056 | Implementado |
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.
| Feature | Impacto — Tema | Impacto — Plugin | Figma | Estado |
|---|---|---|---|---|
| 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-3930 | Implementado (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-3930 | Implementado (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-3930 | Implementado |
| 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
| Feature | Impacto -- Tema | Impacto -- Plugin | Figma | Estado |
|---|---|---|---|---|
| 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-5832 | Implementado |
Transversal — Portada del sitio
| Feature | Impacto — Tema | Impacto — Plugin | Figma | Estado |
|---|---|---|---|---|
| Carrusel de banners de la portada | lib.php (theme_cdigital_get_banner_slides), frontpage.mustache, AMD banner_carousel.js, SCSS .cdigital-banner*, strings frontpage_banner_* | — | 19613-6391 | Implementado |
Transversal — Infraestructura y analítica
| Componente | Impacto — Tema | Impacto — Plugin | Estado | Documentación |
|---|---|---|---|---|
| ML Backend Python (analítica de Moodle) | — | — | Activo (4/5 modelos) | ML Backend |
Subsistema core_ai (OpenAI, Azure, Ollama, DeepSeek) | — | — | Instalado, pendiente de credenciales | Proveedores 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.