feat: fixing certificate and block
This commit is contained in:
+140
@@ -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}` |
|
||||
Reference in New Issue
Block a user