## **Descripción/contexto**
Abordarmos la primera versión del plugin de Learning Paths con su pieza más atómica “módulos”.
En esta primera épica nos vamos a centrar en la “Creación y edición” mientras cerramos la definición de asignación y ejecución.
Los módulos son agrupaciones de actividades, contenidos y recursos multimedia, que pueden asignarse de forma conjunta y que conllevan dependencia/secuencialidad (opcional u obligatoria).
Si hay diferentes actividades puntuables dentro de un módulo, el módulo devolverá una nota media (de aquellas calificables) dentro de Scores, y será posible “expandir” el contenido para ver el detalle de cada una de estas puntuaciones (calificable y no-calificables).
El módulo modificará también el frontal del OnGoing, de manera que debemos poder anidar varias actividades/contenidos/recursos multi-media en dicho OnGoing.
## Prototipo de FIGMA
[https://www.figma.com/file/mgbCZ6EIOUurtNBFI7v9z3/%5BF003%5D-Learning-Paths-1.0---Modules?node-id=372%3A24571&t=yBO4S9NSNRbGtiZx-4](https://www.figma.com/file/mgbCZ6EIOUurtNBFI7v9z3/%5BF003%5D-Learning-Paths-1.0---Modules?node-id=372%3A24571&t=yBO4S9NSNRbGtiZx-4)
## Documentación de referencia/discovery
[Learning Paths 1.0 (Modules)](https://miro.com/app/board/uXjVPEd3ZtM=/?share_link_id=658088365985)
## Criterios de aceptación
### Caso de uso 1
Ruta: Menú> Recorridos educativos
Especificación:
- Se ha creado una sección en el menú llamada
- ES: Recorridos educativos
- EN: Learning Paths
- Icono: Hasta que tengamos la Librería de iconos de BB2. Usamos este en svg:
[modules_library_icon.svg](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/223a0df4-0510-4824-a03d-1f1eda9b7e4f/modules_library_icon.svg)
- Submenú:
- Librería de módulos (Empty si nunca se ha creado un módulo)
- Nuevo módulo
### Caso de uso 2
Ruta: Recorridos educativos > Nuevo módulo > Step 1
Especificación: Datos básicos está compuesto por los siguientes componentes:
- Header
- Icon: El mismo de la sección del menú
- Title: Nuevo Módulo
- Button: Guardar borrador
- Subheader
- Stepper horizontal con 3 pasos:
- Datos básicos
- Configuración
- Estructura
- Estados: Se mantiene activo el step actual para informar al usuario
- Body
- Datos básicos
- Nombre (obligatorio)
- Subtítulo (obligatorio)
- Descripción
- Portada
- Vista previa
- Color
- Imagen destacada
- Tags
- Footer: Button “Siguiente”
### Caso de uso 3
Ruta: Recorridos educativos > Nuevo módulo > Step 2
Especificación: Configuración está compuesto por los siguientes componentes:
- Header
- Icon: El mismo de la sección del menú
- Title: Nombre del módulo que el usuario ha introducido en el step 1.
- Button: Guardar borrador
- Subheader
- Stepper horizontal con 3 pasos:
- Datos básicos
- Configuración
- Estructura
- Estados: Se mantiene activo el step actual para informar al usuario
- Body
- Programa: Selector
- Alert message
- Icon alert
- Texto: Esta configuración filtrará los contenidos y actividades que podrás incluir en este módulo.
- Asignaturas
- Select: Asignatura
- Select: Nivel
- Button: Añadir
- Fila: Label con opciones añadidas + icon eliminar
- Toggle: Añadir otras asignaturas en las que colaboro
- Footer:
- Button left: “Anterior”
- Button right: “Siguiente”
### Caso de uso 4
Ruta: Recorridos educativos > Nuevo módulo > Step 3
Especificación: Estructura está compuesto por los siguientes componentes:
- Header
- Icon: El mismo de la sección del menú
- Title: Nombre del módulo que el usuario ha introducido en el step 1.
- Button: Guardar borrador
- Subheader
- Stepper horizontal con 3 pasos:
- Datos básicos
- Configuración
- Estructura
- Estados: Se mantiene activo el step actual para informar al usuario
- Body - Estados
- **Estado inicial o Empty state:**
- Título: “¡Empecemos a crear!”
- Descripción: “Añade recursos de la librería y ordénalos según desees que le aparezcan al estudiante.”
- Button: Icon “+” + Nuevo recurso
- **1 o más recursos añadidos:**
- Tipo: Listado
- Columnas:
- Recurso
- Preview Recurso
- Icono tipo de recurso
- Título del recurso + elipsis a partir de 40-48 caracteres
- Descripción del recurso + elipsis a partir de 40-48 caracteres
- Tipo
- Toggle:
- Activado: Obligatorio
- Se oculta en la última fila
- Desactivado: Opcional
- Acciones
- Para recursos tipo test: Editar > Abre drawer con la configuración de ese test
- Para resto de recursos: Sin acciones
- Acción principal: Icono “+” + Añadir recurso > Abre drawer de Library
- Footer:
- Button left: Anterior
- Button right:
- Publicar
- Disabled: No se han añadido recursos
- Hover: Añade 2 o más recursos para publicar
- Active: Se han añadido 2 o más recursos
- ~~Publicar y asignar:~~ Esta opción se incluye en otra tarea
[Learning Paths 1.0 - Modules - Asignación](https://www.notion.so/Learning-Paths-1-0-Modules-Asignaci-n-f6af40cd6fc847eeb3f6663aefe60423)
### Caso de uso 5
Ruta: Recorridos educativos > Nuevo módulo > Step 3 > Añadir recurso
Especificación: Al clicar sobre “Añadir recurso” en el paso 3 “Estructura”, se abre un drawer con lo siguiente:
- Título: Icon + Library
- Secciones (tabs)
- Librería
- Nuevo recurso
- Subsecciones
- Contenidos
- Actividades
- Multimedia
- Filtros
- Input: Buscador
- Select: Tipo de recurso
- Contenidos: Documentos
- Actividades: Test, tareas, encuestas
- Multimedia: Vídeo, audio…
- Vista: Listado
- Imagen destacada
- Icono tipo de recurso
- Nombre del recurso
- Footer: Sin acciones. El recurso se añade directamente al hacer clic sobre él.
### Caso de uso 6
Ruta: Recorridos educativos > Nuevo módulo > Guardar borrador
Especificación:
- El módulo se guarda correctamente
- Se muestra la card en Librería de módulos > Borradores
### Caso de uso 7
Ruta: Recorridos educativos > Nuevo módulo > Publicar
Especificación:
- El módulo se publica correctamente
- Se muestra la card en Librería de módulos > Publicados
### Caso de uso 8
Ruta: Recorridos educativos > Librería de módulos > Clic en una card
Especificación:
- Se abre el drawer con más detalle de la card
- Al clicar sobre editar el módulo se abre correctamente en el step 3 “Estructura” con los recursos cargados.
- Permite edición
### Especificaciones de DS/ Responsive
*Detalles de como funcionan nuevos componentes de Bubbles 2.0 o especificaciones de comportamientos de interacción/maquetación en pantallas grandes/pequeñas, etc…*
<aside>
🗒️ **INSTRUCCIONES PARA QA**
*Se incluyen instrucciones detalladas de cómo preparar el entorno para poder probar los criterios: que programa usar, con qué usuario, que debe crearse o asignarse, si se debe subir un recurso, etc…*
</aside>
## Tareas técnicas
- [ ] Tarea 1
- [ ] Tarea 2
- [ ] Tarea 3
## Dependencias
*Las dependencias deben estar mapeadas en la propiedad “pulgin dependency”, pero aquí debemos especificar qué dependencia tenemos a nivel técnico o funcional.*
## Bloqueos
*Por ejemplo los accesos a la API o un tema de infraestructura o actualizaciones de librerías que deben resolverse previamente.*
## Declaración de deuda técnica
- *Design System (A pelo > Bubbles 1.0 > Bubbles 2. 0)*
- *Performance/ Optimización*
- *Deuda de UX por degradación técnica*
## Documentación técnica y/o funcional en GitHub Pages
*Añadir aquí la URL de la/s páginas de GitHub pages*
---
---
## Definition of Ready
- [ ] **1.** Contiene las pantallas de Figma, con sus detalles y aclaraciones, así como todos los estados y el orden que va a ver el usuario.
- [ ] **2.** Las pantallas de Figma contienen las vistas de usuario y admin diferenciadas, detalle de permisos por perfil.
- [ ] **3.** Incluye la descripción y criterios de aceptación, con el detalle funcional y especificaciones técnicas, de forma entendible por cualquier miembro del equipo.
- [ ] **4.** No tiene bloqueos que impidan su desarrollo, como por ejemplo acceso al servicio (API) si es desarrollo Backend.
- [ ] **5.** Si hay dependencias de otros plugins, están identificadas y resueltas.
- [ ] **6.** Las tareas tienen un tamaño.
- [ ] **7.** Puede ser probada por el QA durante el sprint.
- [ ] **8.** Se ha incluido documentación en MIRO de referencia.
## Definition of Done
- [ ] **1.** Todas las pruebas unitarias y funcionales están pasadas y OK
- [ ] **2.** Pruebas en dispositivos / navegadores pasadas y OK *(falta definirlo)*
- [ ] **3.** Pruebas de rendimiento pasadas y OK *(falta definirlo)*
- [ ] **4.** Componentes correctamente integrados desde StoryBook *(verificar si el componente es la versión Bubbles 2.0, documentar deuda técnica en caso contrario)*
- [ ] **5.** Casos borde (empty states, numerales, faltas de conexión, etc...) pasados y OK
- [ ] **6.** Todos los criterios de aceptación validados por QA
- [ ] **7.** Pruebas end to end, para validar que no hay errores por dependencias, pasadas y OK *(definir bien estas pruebas cuando hay más de un plugin implicado)*
- [ ] **8.** Se han incluido los eventos de Elasticsearch
- [ ] **9.** Se ha subido el código a Github
- [ ] **10.** Se ha creado la documentación técnica y subido al repositorio *(Docusaurus → GithubPages?)*
## Notas de la sesión de refinamiento
- Épicas con dependencia (se separan de esta épica)
- Se prioriza refactor del formulario de creación de assets antes de empezar esta épica
- Drawer con el refactor (3 tabs contenidos, actividades, multimedia)
- Refactor de asignables
- Deuda UI @Marta
- Drawer: Nueva versión MVP con selector de categorías
- Librería de módulos (y general): añadir selector “programa” y “asignatura”
- Refactor Configuración (step 1)