feat: fixing certificate and block

This commit is contained in:
2026-04-14 13:07:45 -04:00
parent e0e6655b91
commit 169a0a18a2
21 changed files with 837 additions and 1226 deletions
+140
View File
@@ -0,0 +1,140 @@
# Referencia de API de OpenCCB
Esta guía proporciona detalles técnicos sobre los endpoints disponibles en OpenCCB para desarrolladores e integradores.
## 1. Autenticación y Cuentas
Gestión de registro, login y perfiles organizacionales.
### POST /auth/register
Crea un nuevo usuario vinculado a la organización por defecto.
- **Cuerpo de la Petición ( AuthPayload ):**
```json
{
"email": "string",
"password": "string",
"full_name": "string",
"role": "string (admin | instructor | student)"
}
```
### SSO (OpenID Connect)
OpenCCB soporta integración con proveedores de identidad (IdP) externos como Google, Okta y Azure AD.
- **Configuración**: Los administradores de la organización pueden configurar sus credenciales OIDC en el panel de configuración de Studio.
- **Autoprovisionamiento**: Los nuevos usuarios se crean automáticamente en la plataforma tras una autenticación exitosa.
### LTI 1.3 e Interoperabilidad
OpenCCB actúa como un Tool Provider LTI 1.3 moderno, utilizando OIDC y JWKS para máxima seguridad.
- **JWKS Endpoint**: `/lti/jwks` expone las claves públicas para verificación de firmas.
- **Deep Linking**: Permite que instructores seleccionen cursos o lecciones específicas desde el LMS externo mediante una interfaz de Studio embebida.
- **Autoprovisionamiento**: Los usuarios lanzados vía LTI se crean automáticamente con los roles correspondientes.
```bash
# Registrar un nuevo administrador
curl -X POST "http://localhost:3001/auth/register" \
-H "Content-Type: application/json" \
-d '{"email": "admin@empresa.com", "password": "pass", "full_name": "Admin Name"}'
```
---
## 2. Gestión de Contenidos (CMS)
Herramientas para instructores y administradores.
### POST /courses
Crea un nuevo curso vinculado a la organización del usuario.
- **Lógica**: El `instructor_id` se asigna automáticamente desde el token JWT.
- **Cuerpo ( CreateCourseRequest ):**
```json
{
"title": "string",
"pacing_mode": "string (self_paced | instructor_led)"
}
```
```bash
# Crear curso básico
curl -X POST "http://localhost:3001/courses" \
-H "Authorization: Bearer $TOKEN" \
-d '{"title": "Curso de Rust", "pacing_mode": "self_paced"}'
```
### POST /courses/generate
Utiliza IA para generar la estructura completa de un curso basado en un prompt.
### GET /courses/{id}/export
Exporta un curso completo y su contenido a formato JSON para portabilidad.
### POST /courses/import
Importa un curso a partir de un archivo JSON generado previamente.
### POST /lessons
Agrega contenido multimedia o evaluaciones a un módulo.
- **Configuración Graduable**: Si `is_graded` es true, los puntos sumarán al XP del estudiante en el LMS.
- **Nuevos Tipos Gamificados**:
- `hotspot`: Identificación visual sobre imágenes.
- `memory-match`: Juego de memoria con pares conceptuales.
- `video-marker`: Preguntas interactivas en timestamps específicos del video.
### POST /assets/upload
Sube un archivo multimedia o documento a la biblioteca global de la organización.
---
## 3. Experiencia de Aprendizaje (LMS)
Endpoints para estudiantes y seguimiento de progreso.
### POST /enroll
Inscribe al usuario en un curso.
### POST /grades
Registra el puntaje de una lección y actualiza la gamificación.
### GET /notifications
Obtiene las notificaciones pendientes del usuario.
---
## 4. IA y Analíticas Avanzadas
Funcionalidades inteligentes 100% locales y gratuitas.
### POST /lessons/{id}/transcribe
Inicia el proceso de transcripción y traducción.
### POST /audio/evaluate
Evalúa una respuesta oral del estudiante utilizando IA.
### POST /lessons/{id}/generate-quiz
Genera un quiz basado en el contenido de la lección.
### POST /chat (Streaming)
Conversación en tiempo real con la base de conocimientos (RAG).
### GET /lessons/{id}/heatmap
Devuelve los puntos de concentración de visualización para una lección.
---
## 5. Foros de Discusión (Discussion Forums)
Sistema completo de foros por curso con hilos, respuestas anidadas y moderación.
### GET /courses/{id}/discussions
Lista todos los hilos de discusión de un curso.
### POST /courses/{id}/discussions
Crea un nuevo hilo de discusión.
### POST /posts/{id}/vote
Vota por una respuesta (upvote/downvote).
---
## 6. Anuncios del Curso (Announcements)
| Acción | Método | Endpoint |
|--------|--------|----------|
| Listar | GET | `/courses/{id}/announcements` |
| Crear | POST | `/courses/{id}/announcements` |
| Eliminar | DELETE| `/announcements/{id}` |