Skip to main content

Modules

Modules are the individual subjects, disciplines, or units that make up a course. Create modules at the institution level, then attach them to one or more courses.

The module object

{
  "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "code": "CS101",
  "name": "Introduction to Programming",
  "description": "Fundamentals of programming using Python.",
  "syllabus": "Variables, control flow, functions, OOP basics.",
  "workload": 80,
  "credits": 4,
  "modality": "hybrid",
  "level": "undergraduate",
  "is_active": true,
  "is_required": true,
  "institution": {
    "uuid": "550e8400-e29b-41d4-a716-446655440000",
    "name": "Federal University of Technology"
  }
}
FieldTypeDescription
uuidstringUnique identifier
codestringModule code (unique per institution, max 20 chars)
namestringModule name (max 150 chars)
descriptionstringShort description
syllabusstringFull syllabus content
workloadintegerTotal hours (unsigned)
creditsintegerAcademic credits (unsigned)
modalityenumin_person, online, hybrid
levelenumundergraduate, graduate, technical, open
is_activebooleanWhether the module is currently active
is_requiredbooleanWhether the module is mandatory in its course

List modules

GET /modules
curl "https://api.dokstamp.eu/modules?where[level]=undergraduate&sort[column]=name&sort[order]=asc" \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "X-Tenant: {TENANT}"

Create a module

POST /modules
ParameterTypeRequiredDescription
namestringYesModule name
institution_uuidstringYesParent institution UUID
codestringNoModule code (unique per institution)
descriptionstringNoShort description
syllabusstringNoFull syllabus
workloadintegerNoTotal contact hours
creditsintegerNoAcademic credits
modalityenumNoin_person, online, hybrid
levelenumNoundergraduate, graduate, technical, open
is_activebooleanNoDefault: true
is_requiredbooleanNoDefault: false
curl -X POST https://api.dokstamp.eu/modules \
  -H "Authorization: Bearer {TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Tenant: {TENANT}" \
  -d '{
    "name": "Introduction to Programming",
    "code": "CS101",
    "institution_uuid": "550e8400-e29b-41d4-a716-446655440000",
    "workload": 80,
    "credits": 4,
    "modality": "hybrid",
    "level": "undergraduate",
    "is_active": true,
    "is_required": true
  }'

Get, update, delete

GET    /modules/{uuid}
PATCH  /modules/{uuid}
PUT    /modules/{uuid}
DELETE /modules/{uuid}
DELETE /modules/batch/destroy
After creating modules, attach them to a course using POST /courses/{uuid}/attach/modules. See Course Modules.