Docs/Guía de administración/Cursos personalizados

Cursos personalizados

Un curso personalizado es una secuencia con nombre y ordenada de temas de práctica y escenarios de aprendizaje que usted construye a partir del catálogo de contenido de SecureCodingHub. Una vez construido, el curso puede asignarse desde la página Asignaciones igual que una categoría integrada, y los estudiantes lo consumen en línea en /learn/custom/<courseId> como si fuera uno de los cursos estándar.

Cuándo construir un curso personalizado

Las familias OWASP integradas son deliberadamente amplias. Tienen sentido como punto de partida para despliegues a nivel de organización y para paquetes de evidencias de cumplimiento. Pero una vez que su equipo ha hecho una pasada completa, la siguiente asignación casi siempre es más específica — onboarding para nuevas incorporaciones de backend, un repaso enfocado a una clase de vulnerabilidades que sus hallazgos de CodeQL siguen marcando, una puesta al día rápida en los hábitos de codificación segura del stack de lenguaje al que un equipo está a punto de migrar. Ahí es donde los cursos personalizados aportan valor: le permiten reunir exactamente los temas y escenarios que quiere, en el orden que quiere, en un único paquete con nombre.

Dónde se encuentra

Haga clic en Cursos personalizados en la barra lateral bajo la sección Aprendizaje para llegar a la página de lista en /organization/custom-courses. La lista muestra todos los cursos que su organización ha construido, el número de elementos en cada uno, el número de asignaciones que actualmente lo referencian, quién lo creó y cuándo se actualizó por última vez. Haga clic en una fila de curso para abrir el constructor de ese curso; haga clic en + Nuevo curso personalizado arriba a la derecha para crear uno.

Construir un curso

El constructor es un diseño de dos paneles. El panel izquierdo muestra su lista actual de elementos con asas de arrastre para reordenar y un control por fila para eliminar. El panel derecho es el selector — un árbol de categorías, módulos, temas y escenarios extraído del catálogo de contenido en vivo. Los botones Añadir le permiten incorporar elementos con cualquier granularidad:

Añadir a nivel deEfecto
TemaAñade un único tema de práctica. Los estudiantes ven todos los desafíos que contiene, en su propio lenguaje preferido según Preferencias de stack.
EscenarioAñade un único escenario de aprendizaje. Los estudiantes recorren el tutorial paso a paso como en Modo aprendizaje.
MóduloExpande el módulo en sus temas constituyentes y añade cada uno como un elemento separado (de modo que pueda reordenarlos o eliminar algunos después).
CategoríaIgual que Módulo pero a nivel de familia OWASP. Útil como punto de partida que luego recorta.

Guarde el curso en cualquier momento; se permiten guardados parciales. El Name es el único campo obligatorio. Los campos opcionales Description, Icon y Color le permiten dar identidad al curso dentro de la interfaz del estudiante.

Asignar un curso personalizado

Desde Asignaciones → Nueva asignación, elija Personalizado como Área de contenido y seleccione su curso en el desplegable. El resto del formulario de asignación se comporta igual que para el contenido integrado — elija un asignatario (usuario, equipo o toda la organización), elija un plazo, marque como obligatorio u opcional y cree. El progreso del asignatario se sigue elemento por elemento frente al contenido del curso, y la página de Detalle de asignación los agrega en el mismo porcentaje de finalización que usan las asignaciones rastreadas por OWASP.

Editar y eliminar

Abra un curso para cambiar su nombre, descripción, icono, color o lista de elementos. Los cambios en los elementos se aplican inmediatamente a las asignaciones activas — añadir un elemento eleva el denominador para los estudiantes en curso, eliminar uno lo baja. Reordenar no afecta al cálculo de finalización; solo cambia el orden en que se renderizan los elementos en la interfaz del estudiante.

La acción Eliminar marca el curso como inactivo. Deja de aparecer en la lista, en el selector de creación de asignaciones y en la superficie de consumo del estudiante. Las asignaciones históricas que referencian el curso continúan reportando su progreso existente; simplemente no aceptarán nuevos asignatarios una vez el curso desaparezca.

Acceso programático

Todo lo que hay en la interfaz de administración es accesible también desde la API pública — véase API → Cursos personalizados para las formas de petición y respuesta JSON. Las automatizaciones habituales incluyen sincronizar una lista de cursos curados desde un repositorio de control de versiones, y construir cursos de onboarding por equipo de forma programática a partir de los metadatos del equipo.