Skip to main content

Learning Management (LMS)

Module code LMS · Release R4 · Packaging Add-on · Requirements FR-LMS-*, BR-LMS-* in the PRD and BRD

1. Overview and scope​

LMS is deliberately narrow. The SME need is mandatory and compliance training (POSH, safety, induction, code of conduct, product training for field staff) assigned automatically, with due dates, completion tracking and certificates. Gamification is secondary.

In scope (R4): courses with modules and lessons (video, PDF, text, link); SCORM 1.2 import; assessments (multiple choice) with pass marks and attempts; enrolment rules (on join, by location, department, designation) and manual assignment; due dates with reminders and escalation; certificates with verifiable IDs; points and badges; instructor role; reports; link to the EMP onboarding checklist ("complete POSH course" as a task).

Out of scope: live classes and virtual classroom, content authoring beyond basics, xAPI LRS, paid course marketplace.

2. Learned from the reference product​

Source: Spryple analysis, §12 and §21.10.

  • [Observed] An instructor Course Builder: title, tags, description, difficulty, category, prerequisites, image; content as Module → Section → Content; review and submit (I: LMS).
  • [Observed] Dashboards with courses overview, leaderboard, progress, badges by category and recommended courses; reports of enrolled, completed, badges, points and certificates (I/A/M: LMS).
  • [Observed] Employees use a Course Library, assessments, "Learning Sphere", My Badges and My Certificates (E: LMS).
  • [Observed] Certificates show name, course, date, tenant name, instructor signature and an ID such as CERT250811174612SELE10, with no score (§21.10).
  • [Inferred] No mandatory assignment, due dates, compliance focus or SCORM import are documented; documentation is thin (§12).

3. Our design decisions​

IDDecision [Proposed]Reason
D-LMS-01Compliance first: enrolment rules with due dates and escalation are the core feature.That is what SMEs must prove.
D-LMS-02SCORM 1.2 import instead of a rich builder; a simple builder for basic lessons.Buy content, don't author it.
D-LMS-03Certificates have a verification URL and include score and completion date.Audit and authenticity.
D-LMS-04Recurring courses (e.g. annual POSH refresher) re-enrol automatically.Compliance is periodic.

4. Domain model​

5. State machines​

6. Key business logic​

on emp.employee.joined or emp.job.changed or nightly:
for rule in active assignment rules:
if employee matches rule.applicability and no open or valid completed enrollment:
enrol(employee, rule.course, due = today + rule.due_days, source = RULE)
on lesson completed: update progress ; if all lessons done and no assessment: complete
on attempt: score = correct / total ; passed = score >= pass_percent
if passed: complete, issue certificate (no = CERT + tenant code + sequence), award points
elif attempts == max_attempts: Failed ; notify HR
overdue sweep daily: notify employee ; after N days escalate to line manager

7. Configuration​

SettingTypeDefaultDescription
enrolment.default_due_daysinteger30Due date for rule-based enrolments
enrolment.escalate_after_daysinteger7Overdue days before manager escalation
assessment.default_pass_percentinteger70Pass mark
assessment.default_max_attemptsinteger3Attempts
certificate.templatestringdefaultCertificate layout
gamification.enabledbooleantruePoints and badges
scorm.max_package_mbinteger200Upload limit

8. Screens by persona​

PersonaWebMobile
EmployeeMy learning (assigned, due, overdue), course player, assessments, certificates, badgesCourse player for video and PDF, certificates
InstructorCourse builder, SCORM upload, assessments, learner reports—
Line managerTeam compliance statusTeam status
HR managerAssignment rules, compliance dashboard, overdue escalations—

9. Events​

EventConsumers
lms.enrollment.assignedNTF
lms.enrollment.overdueNTF (employee, then manager)
lms.course.completedEMP (checklist task completion), ENG (optional shout-out)
lms.certificate.issuedNTF

Consumed: emp.employee.joined, emp.job.changed, ext.lwd.reached (close enrolments).

10. API surface​

ResourceMain operations
/v1/lms/courses and nested modules, lessonsCRUD, POST /scorm-import
/v1/lms/assessmentsCRUD, POST /:id/attempts
/v1/lms/assignment-rulesCRUD
/v1/lms/enrollmentsGET mine and team, POST manual assignment
/v1/lms/certificates/:no/verifyPublic verification

Detailed in API endpoints.

11. Permissions​

PermissionScopesDefault roles
lms.course.manageown courses, ORGinstructor, hr_manager
lms.rule.manageORGhr_manager
lms.enrollment.assignTEAM, ORGline_manager, hr_manager
lms.enrollment.readSELF, TEAM, ORGemployee, line_manager, hr_manager
lms.report.exportown courses, ORGinstructor, hr_manager

12. Reports​

ReportContentsReference
Enrolment and completionBy course, department, status[Observed] I: LMS
Compliance statusMandatory courses due, overdue, completed[Proposed]
Certificates issuedWith verification IDs[Observed] §21.10
Badges and points leaderboardBy employee[Observed] I: LMS
Assessment resultsScores and attempts[Proposed]

13. Release and priority​

CapabilityReleaseMoSCoW
Courses, lessons, SCORM import, assessmentsR4Must (if LMS ships)
Assignment rules with due dates and escalationR4Must
Certificates with verificationR4Should
Recurring coursesR4Should
Badges, points, leaderboardsR4Could
Rich course builderR4+Won't (this release)

14. Open questions​

  1. Do we partner for compliance content (POSH, safety) rather than build it? Likely yes.
  2. Is a POSH-only "compliance pack" worth shipping earlier (R2) as part of EMP checklists? To be decided with sales feedback.