# Courses & lessons

Build a course structure and let learners open lessons and record progress.

Category: Academics
Guide: https://avkul.in/docs/guides/module-lms/
Guided sample demo: https://avkul.in/docs/demo/module-lms/
Snapshot: 11 October 2026

## Features

- Course catalogue
- Modules
- Lessons
- Video assets
- Publishing
- Learner progress

## Access and setup

Intended access: Assigned account with the required permissions
- An assigned school account with the required permissions.
- The academic, student or staff setup used by this workflow.

Permission keys: lms:view, lms:create, lms:update, lms:delete

## Workflow

1. Create a course and its details.
2. Add modules and lessons in the intended order.
3. Attach supported learning media and review visibility.
4. Open the learner course view and track lesson progress.

## Fields and controls

- title (string, declared required)
- description (string, optional)
- subjectId (string, optional)
- classId (string, optional)
- isPublished (boolean, optional)
- sortOrder (number, optional)
- contentType (string, declared required)
- videoUrl (string, optional)
- body (string, optional)
- durationMin (number, optional)

## Current limits

- A course must be available to the learner before it appears in self-service. Video delivery depends on the stored asset and browser support.

## Actual application access

- https://avkul.in/en/school/lms
- https://avkul.in/en/school/lms — select the actual record from this list.

## API reference

- GET /api/v1/lms/courses — List Courses; lms:view
- GET /api/v1/lms/courses/:id — Get Course; lms:view
- POST /api/v1/lms/courses — Create Course; lms:create
- PATCH /api/v1/lms/courses/:id — Update Course; lms:update
- DELETE /api/v1/lms/courses/:id — Remove Course; lms:delete
- POST /api/v1/lms/courses/:id/modules — Add Module; lms:update
- DELETE /api/v1/lms/modules/:id — Remove Module; lms:update
- POST /api/v1/lms/modules/:id/lessons — Add Lesson; lms:update
- DELETE /api/v1/lms/lessons/:id — Remove Lesson; lms:update
- POST /api/v1/lms/lessons/:id/video — Upload Lesson Video; lms:update

## Demo access

No login is required for the guided sample demo. Its fictional records and actions stay in this browser tab; they do not modify ERP records or send messages/payments. An assigned account is required for the actual ERP links.

Source inventory checked on 11 October 2026. This source inventory is not a certification of every external provider or device flow.
