Skip to main content

Learning authoring

Org admins build courses and assignment rules. Members consume what you create.

Deep dives for each Learning surface: Course authoring · Modules & lessons · Assessments & quiz types · Assignment rules · Grading queue · Certificates & completion · Org defaults

Create a course

  1. Open Org → Learning → CoursesNew course.
  2. Set:
    • Title (e.g., "Hazing Prevention 2026")
    • Description
    • Cover image
    • Estimated duration
    • Scope — National (visible across all chapters) or Chapter-scoped
  3. Save and start authoring modules and lessons.

Course authoring with modules. Course authoring with modules.

Modules and lessons

A course is organized as Course → CourseModule → Lesson. Each lesson has one content type:

  • Rich Text (TipTap JSON)
  • Video (OEmbed URL — YouTube, Vimeo, etc.)
  • Document (PDF, with PowerPoint conversion via LibreOffice for inline preview)
  • Image
  • External Link

Lessons have an is_required flag and an order. Drag-reorder is supported in the authoring UI.

Assessments and questions

Attach an Assessment to a module or directly to a course (used as the final assessment). Assessments have:

  • Passing score percent (default 80)
  • Max attempts (default 3)
  • Shuffle questions toggle
  • Time limit in minutes (0 = unlimited)

Question types:

  • Multiple Choice (single correct option)
  • True/False
  • Multi-Select (multiple correct options)
  • Short Answer (auto-graded by text match)
  • Free Form (instructor-graded)

Each question has points and an optional explanation shown after submission. Add QuestionOption rows for choice-based questions and mark the correct one(s).

Assignment rules

Auto-assign a course based on membership status changes:

  1. Open Org → Learning → Assignment RulesNew rule.
  2. Pick the Course.
  3. Set Trigger on statuses — one or more Membership.Status values. When a member's status changes to any of these, the rule fires.
  4. Set Due days after trigger (default 30).
  5. Set Is required (default true) and Is active (default true).
  6. Save.

That's the entire condition surface: which course, which membership statuses trigger it, and how many days members get to finish. There is no rule-level audience filter by chapter, region, or custom-field value — scoping is via the course's own scope (national vs. chapter).

Manual assignment

For one-offs, open the course and assign it directly to a target. CourseAssignment supports targets of type Individual Member, Chapter, or Region.

Grading

Auto-gradable questions (multiple choice, true/false, multi-select, short answer) are scored immediately. Free-form questions go to the grading queue: Org → Learning → Grading. Graders read the answer, assign a score, and add optional feedback. The member gets a notification with the result.

Certificates

When an enrollment reaches passing on the final assessment, a Certificate is generated. Members can download it from their My Learning view.

Org defaults

OrgLearningDefaults lets you specify which membership statuses get auto-assigned to every national-scope course in your org. Use this to enforce "every undergraduate must do all national training" without writing a rule per course.

What's not built today

  • No per-question performance dashboard. Aggregate completion / pass rates are available; per-question breakdowns are not surfaced in the admin UI today.
  • No "minor vs. major edit" versioning workflow distinct from in-place edits. Published content edits affect new enrollments immediately; existing in-progress enrollments retain whatever they were viewing.
  • No standalone "AI-assisted course authoring" feature. (AI Services covers chatbot, search, mentorship, and resume parsing — not course generation.)

Tips

  • Start with shorter courses. A focused 10-minute lesson completes; a 90-minute monster doesn't.
  • Pilot a course on yourself before assigning. Walk through every lesson and every question type from the member view.
  • Use multiple-choice over free-form when you can — auto-grading is much faster to operate.

Last verified against v0.62.1 (2026-05-10).