Course Management — Update
Admins (or authorized staff) can update course details in the Backoffice.
This feature allows you to edit fields such as status, name, category, or even replace the course image.
Where to Find It
Backoffice → Courses → Select a Course → Edit/Update
Update a Course (Quick Steps)
- Open the course you want to edit.
- Click Edit Course.
- Change the fields you want (see below).
- Save changes.
Editable Fields
| Field | Type | Required | Notes |
|---|---|---|---|
| Image (upload) | File (PNG/JPG/WebP) | No | Replace cover image. Same rules as create: ≤ 10 MB, auto-crop. |
| Status | Enum | Yes | active / inactive. Toggle visibility for learners. |
| Is Public | Boolean | Yes | Switch between public discoverable vs private (invite-only/class code). |
| Name | String | Yes | Must remain unique. 4–80 chars. |
| Short Name (mobile) | String | Yes | For compact mobile UIs. 3–20 chars. |
| Course Type | Enum | Yes | Can update between regular and program. ⚠️ Check dependencies. |
| Course Category | String/Enum | Yes | Reassign course to a different category. |
| Programming Language | String/Enum | Conditional | Update only if course content type changes. |
| Description | Text/Markdown | Yes | Refresh with new content description. Supports basic Markdown. |
Validation & Rules
- Unique name check still applies.
- Image replacement must meet same upload guidelines.
- Changing Course Type may affect enrollment and structure:
regular → program: requires linking sub-courses.program → regular: may orphan existing linked courses.
- If switching Status → inactive, learners won’t see the course until re-activated.
- Description updates are live immediately for learners.
Example: Update Request (JSON)
{
"courseId": "12345",
"name": "Python Basics v2",
"shortName": "Py Basics",
"status": "active",
"isPublic": true,
"courseType": "regular",
"courseCategory": "Programming",
"programmingLanguage": "Python",
"description": "Updated: Learn Python with new lessons on data structures and OOP.",
"image": "upload:new-cover.png"
}