Course Management — Create
Admins (or authorized staff) can create new courses from the Backoffice.
This page explains the fields, validation rules, and an example payload.
Where to Find It
Backoffice → Courses → Create Course
Create a Course (Quick Steps)
- Open Create Course.
- Upload Image (optional but recommended).
- Fill in Name and Short Name (mobile).
- Choose Status (Active/Inactive) and Is Public.
- Select Course Type (Regular/Program) and Course Category.
- Select Programming Language (if applicable).
- Write a concise, helpful Description.
- Save.
Tip: You can create the course as Inactive first, then switch to Active when content is ready.
Field Reference
| Field | Type | Required | Example | Notes |
|---|---|---|---|---|
| Image (upload) | File (PNG/JPG/WebP) | No | cover.png | Recommended 1200×630 or 1:1 square; max 5–10 MB. |
| Status | Enum | Yes | active / inactive | Only active courses appear to learners. |
| Is Public | Boolean | Yes | true | true = visible to all; false = private/invite/class-code only. |
| Name | String | Yes | Python Basics | Display name (web & app). 4–80 chars. |
| Short Name (mobile) | String | Yes | Py Basics | Used in tight UI on mobile. 3–20 chars. |
| Course Type | Enum | Yes | regular / program | regular = standalone; program = multi-course track. |
| Course Category | String/Enum | Yes | Programming | E.g., Programming, Web, AI/ML, Data, Security… |
| Programming Language | String/Enum | Conditional | Python | Required for coding courses; choose None for non-coding. |
| Description | Text/Markdown | Yes | Learn Python from zero… | 50–300 words recommended; supports basic Markdown. |
Validation & Rules
- Name
- 4–80 characters; unique within Course Type.
- Reject leading/trailing spaces and duplicate whitespace.
- Short Name
- 3–20 characters; no emojis in v1; avoid special symbols.
- Image
- Formats:
.png,.jpg,.jpeg,.webp. - Max size: 10 MB (recommend ≤ 2 MB for faster load).
- Auto-crop/center if aspect ratio differs; keep focal subject centered.
- Formats:
- Status
inactivecourses are hidden from search and enrollment.
- Is Public
- If
false, learners need a link, invite, or class code.
- If
- Course Type
regular: lessons/modules inside a single course.program: container for multiple courses (enrollment may be at program level).
- Programming Language
- Required if course contains coding activities (Playground/Judge).
- Description
- No raw HTML. Basic Markdown allowed:
*italic*,**bold**, lists, links.
- No raw HTML. Basic Markdown allowed:
Recommended Content Guidelines
- Cover Image: show topic at a glance (language logo + theme).
- Description: first 160 chars = marketing snippet shown in lists.
- Tags/Categories: choose the most specific category available.
Example: Regular Course (JSON)
{
"name": "Python Basics",
"shortName": "Py Basics",
"status": "active",
"isPublic": true,
"courseType": "regular",
"courseCategory": "Programming",
"programmingLanguage": "Python",
"description": "Start coding from zero with Python. Learn variables, data types, control flow, functions, and build a mini project.",
"image": "upload:cover-python-basics.png"
}