# Cursos

> Cursos con módulos y lecciones en texto, imagen, vídeo o enlace, inscripción y progreso por lección. La estructura existe en la API y la pantalla de cursos de la app se está terminando. Cómo montarlos hoy y cómo venderlos.

El módulo **Cursos** organiza el aprendizaje en tres niveles:

<div class="flow">
<div class="flow-row"><span class="flow-node">Espacio de Cursos</span><span class="flow-arrow">→</span><span class="flow-node">Curso</span><span class="flow-arrow">→</span><span class="flow-node">Módulo</span><span class="flow-arrow">→</span><span class="flow-node">Lección (texto, imagen, vídeo o enlace)</span></div>
</div>

El miembro se inscribe en el curso, sigue las lecciones en orden y el progreso de cada lección queda registrado.

> [!SOON]
> La pantalla de cursos de la app todavía muestra un contenido de ejemplo, y no los cursos de tu comunidad. Crear, editar y seguir cursos desde la interfaz llegará cuando se termine ese módulo. Hasta entonces, la estructura se crea por la API, como muestra este artículo.

## Para qué sirve

| Comunidad | Curso |
|---|---|
| Escuela online | *Excel desde cero*: 6 módulos, 30 lecciones en vídeo |
| RR. HH. de una empresa | *Acogida*: 3 módulos con las políticas de la empresa |
| Mentoría | *Itinerario del mentorizado*: un módulo al mes |

## Cómo funciona

### El curso

| Campo | Para qué |
|---|---|
| Título y slug | El nombre y la dirección del curso |
| Descripción | Lo que se aprende |
| Nivel | Principiante, intermedio o avanzado |
| Imagen | La portada |
| Estado | Nace como **borrador**; una vez publicado, admite inscripciones |

### Módulos y lecciones

Cada curso tiene módulos, en orden, y cada módulo tiene lecciones, en orden. La lección es de un tipo: **texto**, **imagen**, **vídeo** o **enlace**, con su duración.

### Inscripción y progreso

El miembro se inscribe en un curso **publicado** (en un borrador recibe *"This course is not available for enrollment yet."*) y marca el progreso de cada lección. Inscribirse y completar lecciones da puntos en el [ranking](/espacos/ranking): 10 puntos por la inscripción y 25 por cada lección completada.

### Quién puede

| Acción | Quién |
|---|---|
| Crear el espacio de Cursos | Propietario y administrador |
| Crear y editar cursos, módulos y lecciones | Propietario y administrador |
| Inscribirse y hacer las lecciones | Quien ve el espacio (y el curso publicado) |

## Paso a paso (hoy, por la API)

*Rol: propietario o administrador.*

1. Crea el espacio: **Añadir Espacio › Cursos**, con la visibilidad de quien puede hacer el curso.
2. Crea el curso: `POST /api/courses` con `communityId`, `spaceId`, `title`, `slug` y `level`. Guarda el `id`.
3. Crea cada módulo: `POST /api/courses/module` con `courseId` y `title`.
4. Crea cada lección: `POST /api/courses/lesson` con `moduleId`, `title` y `type`.
5. Publícalo: `PUT /api/courses/{id}` con `status: "published"`.

La secuencia completa, con los ids que pasan de un paso a otro y los errores de quien se salta un paso, está en [Orden de creación](/api/ordem-de-criacao#curso).

## Vender el curso

| Modelo | Cómo |
|---|---|
| Curso suelto | Un [producto](/monetizacao/produtos) que da acceso al espacio del curso (**Privada** › **Productos**) |
| Curso incluido en la suscripción | El espacio del curso como **Privada**, liberado para el [plan](/monetizacao/planos), o **Suscriptores** |
| Curso gratuito para miembros | El espacio como **Miembros** |

## Límites actuales

- No hay **certificado** de finalización.
- No hay **examen** con nota mínima.
- No hay **liberación programada** (drip): el acceso va por el espacio, no por la fecha de entrada de cada persona.

## Preguntas frecuentes

**¿Dónde están los vídeos?**
La lección de vídeo apunta al vídeo; también se pueden subir vídeos por la API (`POST /api/upload/content/video`).

**¿Puedo tener varios cursos en un espacio?**
Sí. Un espacio de Cursos es un escaparate de cursos.

**¿El miembro ve el curso en el Feed?**
Sí, como los demás elementos, si tiene acceso al espacio.

## En la API

`POST /api/courses`, `POST /api/courses/module`, `POST /api/courses/lesson`, `PUT /api/courses/{id}`, `PUT` y `DELETE /api/courses/module/{moduleId}` (renombrar, reordenar, eliminar un módulo con sus clases), `PUT` y `DELETE /api/courses/lesson/{lessonId}` (editar, reordenar, mover de módulo, eliminar una clase), `POST /api/courses/{courseId}/enroll`, `POST /api/courses/{courseId}/lesson/{lessonId}/progress`. Consulta [Courses](/api/referencia/courses).

## Relacionados

- [Orden de creación](/api/ordem-de-criacao)
- [Productos](/monetizacao/produtos)
- [Módulos](/conceitos/modulos)
