Introduction
The Learning Management System (LMS) Module provides a comprehensive online learning platform for creating, delivering, and managing educational content. Support both asynchronous self-paced learning and synchronous live classes, with built-in assessments, progress tracking, discussions, and certification.
The LMS module integrates with the Education module to link online courses with program requirements, and can operate standalone for professional development, corporate training, and open enrollment courses.
Key Features
Multi-Media Content
Text, video, documents, and embedded content with resume capability for videos
Flexible Course Structure
Categories → Courses → Chapters → Lessons / Quizzes / Assignments hierarchy
7 Question Types
Single choice, multiple choice, true/false, short answer, essay, fill-in-blank, matching
Quizzes with Auto-Grading
Time limits, multiple attempts, shuffling, negative marking, flexible grading strategies
Assignment Types
File upload, text entry, URL submission, code submission with rubric grading
Progress Tracking
Lesson-level and course-level progress with completion criteria
Discussion Forums
Threaded discussions for collaborative learning
Live Classes
Integration with Zoom, Google Meet, MS Teams for real-time instruction
Batch Management
Cohort-based course delivery with seat limits
Certificate Templates
Custom HTML/CSS certificate design with issuance tracking
Course Reviews
Student ratings and feedback for quality improvement
Categories
LMS Categories organize courses into logical groupings for easy discovery and navigation. Categories help students find relevant courses and provide structure for course catalogs.
Category Information
- Category Name: Descriptive name (e.g., "Business & Management", "Technology", "Healthcare")
- Description: Details about courses in this category
Common Categories
- Academic Subjects (Mathematics, Science, Languages)
- Professional Development (Leadership, Project Management)
- Technical Skills (Programming, Data Science, Design)
- Compliance & Certification (Safety, Regulations)
Courses
LMS Courses are self-contained online learning experiences organized into chapters and lessons. Each course has a structured curriculum, enrollment settings, pricing options, and can link to Education module courses for program integration.
Course Information
- Course Title & Description: Full title, short description, detailed description
- Thumbnail: Course thumbnail image (recommended 1280x720px, 16:9 ratio, max 5MB — JPG, PNG, or WebP). Displayed on course cards, lists, and detail pages.
- Instructor: Primary course instructor (can have multiple mentors)
- Category: Link to course category for organization
- Difficulty Level: Beginner, Intermediate, or Advanced
- Estimated Duration: Expected time to complete the course
- Intro Video: Preview video for prospective students
Course Settings
- Status: Draft → Under Review → Published → Archived lifecycle
- Pricing: Free or paid with price amount
- Enrollment Type: Program-Linked (LET_PROGRAM_LINKED) — auto-enrolled for all students when staff runs "Activate & Enroll"; or Open (LET_OPEN) — students self-enroll via the portal Browse tab regardless of their program
- Max Enrollment: Capacity limit for the course
- Enable Discussions: Turn on/off course discussion forums
- Certificate Template: Link to certificate design for course completion
Education Integration
Courses can link to Education module courses, allowing LMS content to fulfill program requirements and maintaining grade synchronization.
Chapters
Chapters organize course content into modules or units. Each chapter contains lessons and can also hold chapter-level quizzes and assignments as sibling items alongside those lessons. Chapters can be designated as preview chapters for non-enrolled students.
Chapter Configuration
- Chapter Title: Name of the module (e.g., "Introduction to Programming", "Advanced Concepts")
- Description: Overview of what's covered in this chapter
- Sort Order: Sequential ordering of chapters within the course
- Preview Chapter: Allow non-enrolled students to view this chapter as a preview
Chapter Content Management
Each chapter can hold three types of content items that can be freely reordered together:
- Lessons: Text, video, document, or embedded content
- Chapter Quizzes: Assessment quizzes linked directly to the chapter (e.g., end-of-module tests)
- Chapter Assignments: Submission-based assessments linked directly to the chapter (e.g., module projects)
Use the "Manage Content" action on any chapter to add quizzes and assignments, and drag-and-drop to reorder all items within the chapter. The unified sort order determines how content appears to students in the portal.
Best Practices
Use chapter-level quizzes for end-of-module assessments that test the whole chapter. Use lesson-level quizzes (see Lessons) for assessments tied to a specific lesson. Use preview chapters to showcase course quality and attract enrollments.
Lessons
Lessons are individual units of instruction within chapters. Each lesson can contain text, video, documents, or embedded content, with flexible completion criteria and progress tracking. Lessons can also have their own quizzes and assignments attached directly to them for granular, in-lesson assessment placement.
Lesson Types
- Text: Rich text content with formatting and images
- Video: Video lessons with resume capability and progress tracking
- Document: PDF or document downloads
- Embed: Embedded external content (YouTube, Vimeo, interactive tools)
Lesson Configuration
- Lesson Title: Descriptive title for the lesson
- Content: Main lesson content (text, video URL, document URL, embed URL)
- Sort Order: Sequential ordering within the chapter
- Estimated Duration: Expected time to complete the lesson
- Mandatory: Mark if lesson completion is required
- Allow Comments: Enable student comments on the lesson
Lesson-Level Assessments
Quizzes and assignments can be attached directly to a lesson in addition to (or instead of) chapter-level ones. Use the "Manage Content" action on any lesson to add quizzes and assignments and reorder them within that lesson.
- Lesson Quizzes: Appear immediately in context with the lesson content
- Lesson Assignments: Practice tasks or reflections tied to a specific lesson
Assessment Placement Guide
- Chapter-level quiz: End-of-chapter test covering all lessons in the module
- Chapter-level assignment: Module project or comprehensive submission
- Lesson-level quiz: Quick check immediately after a specific lesson
- Lesson-level assignment: Lesson practice task or targeted reflection
Completion Criteria
- View: Simply viewing the lesson marks it complete
- Duration: Must spend minimum duration on the lesson
- Quiz Pass: Must pass associated quiz to complete
- Assignment Submit: Must submit assignment to complete
Video Features
Video lessons track viewing progress and last position, allowing students to resume where they left off. Progress percentage is calculated based on video playback.
Quizzes
Quizzes are assessments with automatic grading for objective questions. Each quiz can have time limits, multiple attempts, question shuffling, and flexible grading strategies based on highest score, latest attempt, or average.
Quiz Configuration
- Quiz Title & Description: Name and instructions for the quiz
- Time Limit: Maximum time allowed to complete the quiz (optional)
- Passing Percentage: Minimum score required to pass
- Max Attempts: Number of times students can retake the quiz
- Shuffle Questions: Randomize question order for each attempt
- Shuffle Options: Randomize answer options within questions
- Creator Tracking: Each quiz tracks its creator (createdByUserId). Instructors see quizzes they created plus quizzes from courses they collaborate on.
Grading Options
- Highest Score: Use the best attempt score
- Latest Attempt: Use the most recent attempt score
- Average Score: Calculate average across all attempts
Feedback Settings
- Show Correct Answers: Display correct answers after submission
- Show Score After Submission: Immediately display score or wait for manual review
Question Bank
Questions are added from a reusable question bank. Each question in the quiz can have custom marks assigned, and the quiz automatically calculates total marks.
Questions
The Question Bank stores reusable questions that can be added to multiple quizzes. Each question has a type, difficulty level, marks, and supports negative marking for incorrect answers.
Question Types
- Single Choice: Multiple options with one correct answer (radio buttons)
- Multiple Choice: Multiple options with one or more correct answers (checkboxes)
- True/False: Binary true or false questions
- Short Answer: Brief text response requiring manual grading
- Essay: Long-form text response requiring manual grading
- Fill in the Blank: Text input for missing words or phrases
- Matching: Match items from left column to right column
Question Configuration
- Question Text: The question prompt
- Question Type: Select from 7 available types
- Difficulty: Easy, Medium, or Hard
- Marks: Points awarded for correct answer
- Negative Marks: Points deducted for incorrect answer (optional)
- Explanation: Explanation shown after answering (optional)
Answer Options
For choice-based questions, add multiple options with correct answer designation and optional explanations. For matching questions, define left-right item pairs.
Auto-Grading
Single choice, multiple choice, true/false, and matching questions are automatically graded. Short answer, essay, and fill-in-blank questions require manual grading.
Question Banks
Question Banks allow instructors to organize reusable questions into named collections for efficient quiz creation. Questions can be grouped by topic, difficulty, or course and reused across multiple quizzes.
Bank Configuration
- Bank Name: Descriptive name (e.g., "Chapter 1 Review", "Final Exam Pool")
- Description: Details about the question collection
- Questions: Ordered list of questions from the question bank
Managing Questions
- Add Questions: Add existing questions to the bank with automatic sort ordering
- Remove Questions: Remove individual questions from the bank
- Reorder: Set question order via the update endpoint
- Duplicate Prevention: Skip duplicates when adding questions already in the bank
Permissions
- Instructors: Full CRUD access (create, read, update, delete)
- Course Reviewers: Read-only access
- Students: No direct access — students interact with questions only through quiz submissions in the student portal
Rubric Management
Rubrics provide structured, criteria-based grading for assignments, quizzes, and education assessment plans. Each rubric defines multiple criteria, and each criterion has performance levels with point values.
Rubric Structure
- Rubric: Top-level container with title and description
- Criteria: Individual grading dimensions (e.g., "Content", "Organization", "Grammar") with optional weight
- Levels: Performance levels per criterion (e.g., "Excellent" = 5pts, "Good" = 3pts, "Needs Improvement" = 1pt)
Usage
- LMS Assignments: Attach a rubric for consistent grading across submissions
- LMS Quizzes: Use rubrics for manual grading of essay and short-answer questions
- Education Assessment Plans: Link rubrics for structured evaluation criteria
- Import or Inline: Rubrics can be imported from existing ones or created inline when setting up assessments
API Endpoints
- CRUD: Full create, read, update, delete at
/lms/rubrics - Nested Creation: Create rubric with criteria and levels in a single request
Assignments
Assignments are submission-based assessments where students upload files, enter text, submit URLs, or submit code. Each assignment supports rubric-based grading, late submissions with penalties, and detailed feedback.
Assignment Types
- File Upload: Students upload files (documents, images, videos, etc.)
- Text Entry: Students enter text responses in a rich text editor
- URL Submission: Students submit links to external work
- Code Submission: Students submit code with syntax highlighting
Assignment Configuration
- Assignment Title & Description: Title and detailed instructions
- Due Date: Submission deadline
- Max Score: Maximum points for the assignment
- Rubric: Detailed grading criteria and breakdown
- Attachment Types: Allowed file types for uploads (PDF, DOC, images, etc.)
- Max File Size: Maximum file size for uploads
Late Submission
- Allow Late Submission: Enable or disable submissions after due date
- Late Penalty Percentage: Deduction for late submissions (e.g., 10% per day)
Grading Process
Assignments progress through Draft → Submitted → Under Review → Graded → Returned status. Graders can assign scores, provide comments, and return assignments for revision if needed.
Enrollments
LMS Enrollments link students to courses and track their learning journey. Each enrollment records the start date, tracks progress percentage, completion status, and can link to program enrollments for academic credit.
Enrollments are created in two ways: automatically for all Program-Linked (LET_PROGRAM_LINKED) courses when a student is activated via "Activate & Enroll"; ormanually by the student via the portal Browse tab for Open (LET_OPEN) courses, which any student can join regardless of their program.
Enrollment Information
- Student & Course: Link student to specific LMS course
- Enrollment Date: When student enrolled in the course
- Program Enrollment: Optional link to Education module program enrollment
- Progress Percentage: Automatically calculated based on lesson completion
- Completion Date: When student completed all course requirements
- Certificate Issued: Flag indicating if certificate was generated
Enrollment Status
- Enrolled: Initially registered for the course
- In Progress: Actively working through course content
- Completed: Finished all requirements
- Dropped: Withdrawn from the course
Progress Calculation
Progress is calculated based on completed lessons divided by total lessons. Mandatory lessons must be completed for course completion, while optional lessons contribute to progress but aren't required.
Progress Tracking
Lesson Progress provides granular tracking of individual lesson completion. The system tracks when students start lessons, how much time they spend, and their completion status, with special video resume capability for video lessons.
Progress Information
- User & Lesson: Links specific user to specific lesson (unique constraint)
- Status: Not Started → In Progress → Completed
- Started On: When student first accessed the lesson
- Completed On: When lesson completion criteria was met
- Time Spent: Total time spent on the lesson
Video Progress
- Video Progress Percentage: How much of the video has been watched
- Last Position: Timestamp where student last stopped watching
- Resume Capability: Automatically resume from last position
Completion Validation
The system validates lesson completion based on the lesson's completion criteria: simple view, minimum duration spent, quiz passed, or assignment submitted.
Submissions
Submissions track student attempts at quizzes and assignments. Quiz submissions are automatically graded for objective questions, while assignment submissions require manual grading and feedback.
Quiz Submissions
- Attempt Tracking: Attempt number, start time, end time, time taken
- Scoring: Total marks, score obtained, percentage, pass/fail status
- Answers: Individual answers for each question with correctness and marks
- Status: In Progress → Submitted → Graded (automatic) or Under Review (manual)
Assignment Submissions
- Submission Content: Text entry, file uploads, URL links, or code
- Late Detection: Automatic flagging of late submissions
- Scoring: Manual score assignment with percentage calculation
- Grader Feedback: Comments and suggestions from grader
- Status Flow: Draft → Submitted → Under Review → Graded → Returned
Grading Workflow
Graders review submissions, assign scores based on rubrics, provide detailed feedback, and can return submissions for revision if needed. Late penalties are automatically applied based on assignment configuration.
Discussions
Discussion forums enable collaborative learning through threaded discussions. Students and instructors can post questions, share insights, and engage in academic discourse within the course community.
Discussion Features
- Discussion Posts: Students create new discussion topics with titles and content
- Threaded Replies: Multiple levels of replies for ongoing conversations
- Author Tracking: Each post and reply links to the author
- Timestamps: Creation dates for chronological ordering
Discussion Status
- Open: Active discussion accepting replies
- Resolved: Question answered or issue resolved
- Closed: Discussion locked, no new replies allowed
Moderation
Instructors and course mentors can moderate discussions, mark questions as resolved, and close threads when appropriate. This maintains quality and prevents spam.
Course Packs
Course Packs bundle multiple courses into discounted packages that students can purchase together. Each pack has its own pricing, thumbnail, and publish status.
Pack Configuration
- Pack Name & Description: Title and details about the bundle
- Thumbnail: Pack thumbnail image (recommended 1280x720px, 16:9 ratio)
- Price: Bundle price (typically less than individual course prices combined)
- Courses: One or more courses included in the pack with display ordering
- Display Order: Controls pack ordering in listings
Publish Status
- Draft: Pack is not visible to students
- Published: Pack is visible and available for purchase
- Active/Inactive: Separate flag to temporarily disable a published pack without unpublishing
Student Experience
Students see published packs in the Browse tab alongside individual courses. Packs that have already been purchased or whose courses are all enrolled are automatically hidden. The cart page shows savings when a pack overlaps with individually added courses.
Access Control
- LMS Manager: Full CRUD access including publish/unpublish
- Instructor: Can view course packs
- Student: Can browse and purchase published packs via the student portal only
Mark Complete (Admin/Instructor Bypass)
Administrators and course instructors can bypass the normal student completion flow and directly mark enrolled students as having completed the entire course. This is useful for:
- Students who completed coursework offline or in-person
- Transfer students with prior equivalent completion
- Administrative overrides when manual completion is needed
- Bulk-completing a cohort of students at once
How It Works
Send a POST request to /lms/courses/:courseId/mark-complete with a list of student IDs. The system will automatically:
- Mark all lessons in the course as Completed for each student
- Create quiz submissions with full marks for any unanswered quizzes
- Create assignment submissions with full score for any unsubmitted assignments
- Set enrollment progress to 100% and status to Completed
- Auto-issue a certificate if a certificate template is linked to the course
Who Can Use This
- Administrators & System Managers: Can mark-complete on any course
- LMS Managers: Can mark-complete on any course
- Instructors: Can mark-complete on courses they own or mentor/collaborate on
Safety
- Students who are not enrolled are safely skipped
- Students already completed with a certificate are skipped (no duplicates)
- Existing quiz/assignment submissions are not overwritten — only missing ones are created
- The response includes per-student status so you know what happened for each one
Batches
Batches organize cohort-based course delivery with specific start and end dates. Each batch has a seat limit, instructor assignment, and can contain multiple live class sessions.
Batch Configuration
- Batch Name: Descriptive name (e.g., "January 2024 Cohort", "Weekend Batch")
- Course: Link to the LMS course being offered
- Instructor: Assigned instructor for the batch
- Start & End Dates: Batch duration
- Seat Limit: Maximum number of students in the batch
- Description: Details about this batch offering
Batch Status
- Draft: Batch being prepared
- Active: Batch currently running
- Completed: Batch finished
- Cancelled: Batch cancelled
Use Cases
Batches enable scheduled course delivery with fixed cohorts, facilitating peer learning, group activities, and synchronized pacing through course content.
Live Classes
Live Classes integrate synchronous virtual instruction with course content. Schedule live sessions using Zoom, Google Meet, Microsoft Teams, or custom meeting platforms, with automatic recording URL storage.
Live Class Configuration
- Class Title & Description: Session name and agenda
- Course & Batch: Link to course and specific batch
- Instructor: Session instructor
- Scheduled Date & Time: When the class occurs
- Duration: Start time and end time
Meeting Integration
- Meeting Provider: Zoom, Google Meet, MS Teams, or Custom
- Meeting URL: Link to join the live session
- Recording URL: Link to session recording (added after class)
Live Class Status
- Scheduled: Class planned but not yet started
- In Progress: Class currently happening
- Completed: Class finished
- Cancelled: Class cancelled
Announcements
Announcements broadcast important information to all enrolled students in a course. Each announcement can be scheduled with start and expiry dates, and can trigger email or push notifications.
Announcement Configuration
- Title & Content: Announcement headline and detailed message
- Course: Which course the announcement is for
- Author: Instructor or staff member posting the announcement
- Announcement Type: Category for filtering (general, urgent, deadline, etc.)
- Send Notification: Trigger email or push notifications to students
- Start Date: When announcement becomes visible
- Expiry Date: When announcement is automatically hidden
Common Use Cases
- Assignment deadlines and extensions
- Course schedule changes
- Exam reminders and instructions
- New content availability
- Live class schedules
Course Reviews
Course Reviews allow students to rate courses and provide feedback after completion or during enrollment. Each student can submit one review per course, with ratings and optional text review.
Review Information
- Course & Student: Link to course and reviewer (unique constraint)
- Rating: Numerical rating (typically 1-5 stars)
- Review Text: Written feedback and comments
- Published Status: Control whether review is publicly visible
Review Moderation
Course administrators can moderate reviews, choosing to publish or hide reviews to maintain quality and appropriateness. This prevents spam and inappropriate content.
Course Quality
Aggregate ratings help prospective students make enrollment decisions and provide instructors with feedback for continuous course improvement.
Certificate Templates
Certificate Templates define the visual design and layout for course completion certificates. Each template uses HTML and CSS for complete design flexibility, with support for dynamic fields like student name, course title, and completion date.
Template Configuration
- Template Name: Descriptive name for the template
- Orientation: Landscape or Portrait
- Paper Size: A4, Letter, or Legal
- Multiple Signatories: Add multiple signatories with name, title, and uploaded signature image per signatory
- HTML Template: Custom HTML structure with dynamic placeholders
- CSS Styling: Custom CSS for visual design
Dynamic Fields
Templates can include placeholders for student name, course title, completion date, certificate number, instructor name, and other dynamic data that's populated when certificates are generated.
Certificates
Certificates are issued to students upon successful course completion. Each certificate has a unique certificate number for verification, issue and expiry dates, and links to the enrollment and certificate template.
Certificate Issuance Modes
Each course can configure how certificates are issued via the certificateIssuanceMode field:
- CERT_AUTO: Certificates are automatically issued when a student completes the course (default behavior when a template is linked)
- CERT_MANUAL: Staff manually issues certificates via
POST /lms/certificates/issuewith the enrollment ID. Useful when additional review is required before certification. - CERT_DISABLED: No certificates are issued for this course
Certificate Information
- Enrollment: Link to the completed course enrollment
- Certificate Number: Unique identifier for verification
- Issue Date: When certificate was issued
- Expiry Date: Optional expiration for time-sensitive certifications
- Template: Certificate template used for design
- QR Code: Always rendered in the bottom-right corner via a fixed overlay. Preview mode shows a sample QR code.
Certificate Status
- Active: Valid certificate
- Expired: Past expiry date
- Revoked: Certificate invalidated
Verification
Certificate numbers enable third-party verification of student credentials. The system can provide a verification portal where employers or other institutions can validate certificate authenticity. The QR code on each certificate links directly to the verification page.