Skip to main content
POST
/
api
/
microlearning
/
courses
Course Management
curl --request POST \
  --url https://api.example.com/api/microlearning/courses \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "<string>",
  "description": "<string>",
  "area": "<string>",
  "content": {
    "content.videoUrl": "<string>",
    "content.audioUrl": "<string>",
    "content.pdfUrl": "<string>",
    "content.duration": 123
  },
  "quiz": [
    {
      "quiz[].question": "<string>",
      "quiz[].options": [
        {}
      ],
      "quiz[].correctAnswer": 123,
      "quiz[].points": 123
    }
  ],
  "passingScore": 123
}
'
{
  "success": true,
  "message": "<string>",
  "data.course": {},
  "data.courses": [
    {
      "_id": "<string>",
      "title": "<string>",
      "description": "<string>",
      "area": "<string>",
      "content.duration": 123
    }
  ],
  "data.pagination": {
    "page": 123,
    "limit": 123,
    "total": 123,
    "pages": 123
  }
}

Create Course

Create a new microlearning course with multimedia content and quizzes.

Endpoint

POST /api/microlearning/courses

Authentication

Requires authentication and admin role.
Authorization: Bearer YOUR_JWT_TOKEN

Request Body

title
string
required
Course title. Must be between 5-200 characters.
description
string
required
Course description. Must be between 20-1000 characters.
area
string
required
Target area for the course. Options: enfermeria, urgencias, maternidad, administracion, general
content
object
required
Course multimedia content
quiz
array
required
Array of quiz questions (minimum 5, maximum 15 questions)
passingScore
number
Minimum score to pass (50-100). Default: 70

Response

success
boolean
Indicates if the course was created successfully
message
string
Success message
data.course
object
The created course object with all properties and MongoDB _id

Example Request

curl -X POST https://api.cuido.com/api/microlearning/courses \
  -H "Authorization: Bearer YOUR_JWT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Manejo de Emergencias Cardíacas",
    "description": "Aprende las técnicas esenciales para responder efectivamente a emergencias cardíacas en entornos rurales",
    "area": "urgencias",
    "content": {
      "videoUrl": "https://cdn.cuido.com/videos/cardiac-emergencies.mp4",
      "pdfUrl": "https://cdn.cuido.com/pdfs/cardiac-protocol.pdf",
      "duration": 45
    },
    "quiz": [
      {
        "question": "¿Cuál es el primer paso en caso de paro cardíaco?",
        "options": ["Llamar al médico", "Iniciar RCP", "Buscar desfibrilador", "Verificar signos vitales"],
        "correctAnswer": 3,
        "points": 2
      },
      {
        "question": "¿Cuántas compresiones por minuto se recomiendan en RCP?",
        "options": ["60-80", "80-100", "100-120", "120-140"],
        "correctAnswer": 2,
        "points": 1
      }
    ],
    "passingScore": 75
  }'

Get Available Courses

Retrieve a paginated list of active courses with optional filtering.

Endpoint

GET /api/microlearning/courses

Authentication

Requires authentication.

Query Parameters

area
string
Filter courses by area: enfermeria, urgencias, maternidad, administracion, general
page
number
Page number for pagination. Default: 1
limit
number
Number of courses per page. Default: 10

Response

success
boolean
Indicates if the request was successful
data.courses
array
Array of course objects (only active courses)
data.pagination
object
Pagination metadata

Example Request

curl -X GET "https://api.cuido.com/api/microlearning/courses?area=urgencias&page=1&limit=10" \
  -H "Authorization: Bearer YOUR_JWT_TOKEN"

Response Example

{
  "success": true,
  "message": "Cursos obtenidos exitosamente",
  "data": {
    "courses": [
      {
        "_id": "65a1b2c3d4e5f6a7b8c9d0e1",
        "title": "Manejo de Emergencias Cardíacas",
        "description": "Aprende las técnicas esenciales para responder efectivamente a emergencias cardíacas",
        "area": "urgencias",
        "content": {
          "duration": 45
        }
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 10,
      "total": 23,
      "pages": 3
    }
  }
}

Source Code References

  • Routes: src/routes/microLearningRoutes.js:19-20
  • Controller: src/controllers/microLearningController.js:8-40
  • Model: src/models/MicroCourse.js
  • Validator: src/validators/cuidoValidators.js:42

Build docs developers (and LLMs) love