Skip to main content

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)

  1. Open Create Course.
  2. Upload Image (optional but recommended).
  3. Fill in Name and Short Name (mobile).
  4. Choose Status (Active/Inactive) and Is Public.
  5. Select Course Type (Regular/Program) and Course Category.
  6. Select Programming Language (if applicable).
  7. Write a concise, helpful Description.
  8. Save.

Tip: You can create the course as Inactive first, then switch to Active when content is ready.


Field Reference

FieldTypeRequiredExampleNotes
Image (upload)File (PNG/JPG/WebP)Nocover.pngRecommended 1200×630 or 1:1 square; max 5–10 MB.
StatusEnumYesactive / inactiveOnly active courses appear to learners.
Is PublicBooleanYestruetrue = visible to all; false = private/invite/class-code only.
NameStringYesPython BasicsDisplay name (web & app). 4–80 chars.
Short Name (mobile)StringYesPy BasicsUsed in tight UI on mobile. 3–20 chars.
Course TypeEnumYesregular / programregular = standalone; program = multi-course track.
Course CategoryString/EnumYesProgrammingE.g., Programming, Web, AI/ML, Data, Security…
Programming LanguageString/EnumConditionalPythonRequired for coding courses; choose None for non-coding.
DescriptionText/MarkdownYesLearn 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.
  • Status
    • inactive courses are hidden from search and enrollment.
  • Is Public
    • If false, learners need a link, invite, or class code.
  • 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.

  • 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"
}