Module Overview

What is the LMS Module?

The Learning Management System (LMS) module provides a comprehensive platform for creating, managing, and delivering educational courses. It integrates seamlessly with LMS platform, allowing both Super Admins and Company users to create courses, manage enrollments, track progress, and issue certificates.

Key Features

Super Admin Course Management

Create and manage courses with visibility controls (private/public/free) for marketplace distribution

Company Course Creation

Companies can create internal courses for their employees or purchase courses from the marketplace

LMS platform IMOD Integration

Seamless integration with LMS platform for course creation, activities, and certificates

Course Marketplace

Super admin courses can be purchased by companies, providing access to premium educational content

Certificate Management

Create and issue certificates upon course completion with customizable templates

Progress Tracking

Track student progress, completion rates, and generate comprehensive reports

Access Path

Super Admin: Dashboard → LMS → Course
Company User: Dashboard → LMS → Course

Go to LMS Button

Overview

The "Go to LMS" button appears in the top header navigation for both Super Admin and Company users when the LMS module is enabled or purchased. This button provides direct access to the LMS platform where all course creation, management, and learning activities take place.

Button Visibility

  • Super Admin: Button appears when LMS module is enabled in the system
  • Company Users: Button appears when:
    • LMS module is enabled/purchased for the company
    • User has "lms dashboard manage" permission

Button Location

The button is located in the top-right corner of the header navigation bar, styled as a green "Go To LMS" button with a book icon.

Functionality

  1. Click Action: Clicking the "Go to LMS" button redirects users to the LMS platform
  2. SSO Authentication: Users are automatically authenticated via Single Sign-On (SSO) using a secure token
  3. Direct Access: Users land directly in their LMS platform dashboard without needing to log in separately
  4. Platform URL: The button links to the LMS platform URL configured in system settings (config('services.LMS platform.url'))

SSO Login Process

How SSO Works
  1. User clicks "Go to LMS" button
  2. System creates an SSO token record in the database
  3. User is redirected to: {LMS platform_url}/local/sso/login.php?token={sso_token}
  4. LMS platform validates the token and logs the user in automatically
  5. User gains access to their LMS platform dashboard

Access Control

  • Permission Required: Users must have "lms dashboard manage" permission
  • Module Requirement: LMS module must be enabled/purchased
  • Company Context: Company users access their company's LMS platform workspace
  • Super Admin Context: Super admin accesses the main LMS platform platform

Super Admin LMS Module

Overview

Super Admin LMS module allows administrators to create and manage courses that can be made available to companies through the marketplace. Super admins have full control over course visibility, pricing, and distribution.

Access Path

Super Admin Dashboard → LMS → Course

Course Listing Page

The Super Admin course listing page displays all courses created by the super admin with the following information:

  • Thumbnail: Course image/thumbnail
  • Type: Course type (Course, Program, etc.)
  • Title: Course name
  • Chapters: Number of chapters/modules
  • Enrolled: Number of enrolled students
  • Price: Course price (or "Free" if free)
  • Visibility: Public or Private status (only visible to super admin)
  • Created At: Course creation date
  • Actions: Action buttons for course management

Action Buttons

Each course in the listing has action buttons that allow super admin to manage courses:

Button Icon Functionality When Visible
Edit Price Opens course edit page to modify price and visibility settings For super admin courses (workspace_id = 0)
Edit Course Opens course in LMS platform for editing content, activities, and structure For courses owned by super admin (workspace_id = 0)
View Course Opens course in LMS platform in view mode For purchased courses (bought_course_id is set)

Creating a Course (Super Admin)

  1. Navigate: Super Admin Dashboard → LMS → Course
  2. Click Create: Click the "+" (plus) button in the top-right corner
  3. Redirect to LMS platform: You will be redirected to LMS platform IMOD course creation form: {LMS platform_url}/blocks/iomad_company_admin/company_course_create_form.php
  4. Fill Course Details: Complete the LMS platform course creation form (see "LMS platform Course Creation" section for details)
  5. Save Course: Save the course in LMS platform
  6. Auto-Sync: The course is automatically synced back to the HRIS system
  7. Set Visibility & Price: Return to HRIS and edit the course to set visibility (public/private) and price

Super Admin Course Management Features

  • Course Visibility Control: Set courses as Public (visible in marketplace) or Private (internal only)
  • Pricing Management: Set course prices or mark courses as free
  • Marketplace Distribution: Public courses appear in the marketplace for companies to purchase
  • Course Analytics: View enrollment statistics and course performance
  • Bulk Operations: Manage multiple courses simultaneously

Company LMS Module

Overview

Company LMS module allows companies to create internal courses for their employees or purchase courses from the super admin marketplace. Companies have their own LMS platform workspace where they can manage courses, enroll employees, and track progress.

Access Path

Company Dashboard → LMS → Course

Course Listing Page

Company users see two types of courses in their listing:

  1. Company-Created Courses: Courses created by the company for internal use
  2. Purchased Courses: Courses purchased from the super admin marketplace
  3. Public Courses: Public courses available for purchase (shown with "Buy Now!" button)

Creating a Company Course

  1. Navigate: Company Dashboard → LMS → Course
  2. Click Create: Click the "+" (plus) button in the top-right corner
  3. Redirect to LMS platform: You will be redirected to your company's LMS platform workspace course creation form
  4. Fill Course Details: Complete the LMS platform course creation form (see "LMS platform Course Creation" section)
  5. Save Course: Save the course in LMS platform
  6. Auto-Sync: The course is automatically synced to your company's course list
  7. Assign to Employees: Use the course assignment feature to enroll employees

Purchasing Courses from Marketplace

  1. Browse Courses: View public courses in the course listing (marked with "Buy Now!" button)
  2. Select Course: Click "Buy Now!" on the desired course
  3. Payment:
    • Free Courses: Automatically assigned without payment
    • Paid Courses: Complete payment via Stripe checkout
  4. Access Granted: After successful purchase, the course appears in your company's course list
  5. LMS platform Access: The course is automatically available in your company's LMS platform workspace

Company Course Management Features

  • Internal Course Creation: Create courses specifically for your organization
  • Employee Enrollment: Assign courses to employees individually or in bulk
  • Progress Tracking: Monitor employee progress and completion rates
  • Certificate Management: Issue certificates upon course completion
  • Course Customization: Customize course content to match company needs

Course Visibility Settings

Overview

Course visibility settings control whether a course is available in the marketplace for purchase by companies. Only Super Admins can modify course visibility settings.

Visibility Options

Public (Visibility = 1)
  • Course is visible in the marketplace
  • Companies can see and purchase the course
  • Appears in company course listings with "Buy Now!" button
  • Shown to all companies with LMS module enabled
Private (Visibility = 0)
  • Course is not visible in the marketplace
  • Only visible to super admin
  • Companies cannot see or purchase the course
  • Used for internal super admin courses

How to Change Course Visibility

  1. Navigate: Super Admin Dashboard → LMS → Course
  2. Find Course: Locate the course in the listing
  3. Click Edit Price: Click the dollar sign ($) icon in the Actions column
  4. Edit Form Opens: The course edit page opens with price and visibility options
  5. Select Visibility:
    • Select Public radio button to make course available in marketplace
    • Select Private radio button to hide course from marketplace
  6. Set Price (if applicable): Enter the course price or leave blank for free courses
  7. Save Changes: Click "Update" to save visibility and price settings

Course Pricing Options

  • Free Course: Set is_free = 'on' or price = 0/null
    • No payment required
    • Automatically assigned when company clicks "Buy Now!"
    • Can be public or private
  • Paid Course: Set a price value
    • Requires payment via Stripe
    • Company completes checkout process
    • Access granted after successful payment

Visibility Display in Course Listing

In the Super Admin course listing, visibility is displayed as a badge:

  • Public - Green badge for public courses
  • Private - Red badge for private courses

Important Notes

  • Only Super Admins can see and modify visibility settings
  • Company users only see public courses in their listing
  • Changing visibility from public to private removes the course from marketplace
  • Companies that already purchased a course retain access even if visibility is changed to private

Course Purchase Workflow

Overview

Companies can purchase courses from the super admin marketplace. The purchase workflow handles both free and paid courses, automatically granting access upon successful completion.

Purchase Process for Free Courses

  1. Browse Courses: Company user views public courses in LMS → Course listing
  2. Identify Free Course: Course shows "Free" instead of price
  3. Click Buy Now: Click "Buy Now!" button on the free course
  4. Automatic Assignment:
    • System creates a new course record with bought_course_id pointing to original course
    • Order record is created with payment_status = 'succeeded' and payment_type = 'Free'
    • Course is immediately available in company's course list
  5. Access Granted: Course appears in company's LMS platform workspace automatically

Purchase Process for Paid Courses

  1. Browse Courses: Company user views public courses with prices
  2. Select Course: Click "Buy Now!" button on desired paid course
  3. Validation: System checks:
    • Course exists and is available
    • Company hasn't already purchased the course
    • Course has a valid price
  4. Order Creation: System creates an order record with:
    • Unique order ID
    • Course details
    • Price information
    • Payment status: 'pending'
    • Payment type: 'Stripe'
  5. Stripe Checkout: User is redirected to Stripe checkout page
  6. Payment Processing: User completes payment via Stripe
  7. Success Redirect: After successful payment, user is redirected to success page
  8. Course Assignment:
    • Order payment_status is updated to 'succeeded'
    • New course record is created with bought_course_id
    • CourseOrdered event is triggered
    • Course is synced to company's LMS platform workspace
  9. Access Granted: Course appears in company's course list and LMS platform workspace

Post-Purchase Access

After purchasing a course (free or paid), companies can:

  • View Course: Access course in LMS platform via "View" button (eye icon)
  • Assign to Employees: Use course assignment feature to enroll employees
  • Track Progress: Monitor employee progress and completion
  • Issue Certificates: Generate certificates upon course completion

Purchase Restrictions

  • Companies cannot purchase the same course twice
  • Only public courses are available for purchase
  • Company must have LMS module enabled/purchased
  • User must have appropriate permissions

LMS platform Course Creation - Detailed Guide

Overview

All courses are created directly in the LMS platform. The HRIS system provides a link to LMS platform's course creation form, and courses are automatically synced back to the HRIS system after creation.

Accessing Course Creation Form

  1. From HRIS: Navigate to LMS → Course → Click "+" (Create) button
  2. Redirect: You are redirected to LMS platform course creation form: {LMS platform_url}/blocks/iomad_company_admin/company_course_create_form.php
  3. SSO Login: You are automatically logged in via SSO

LMS platform Course Creation Form - Step by Step

1. General Settings
  • Course Full Name: Enter the complete course title (e.g., "Introduction to Project Management")
  • Course Short Name: Enter a short identifier (e.g., "PROJ101")
  • Course Category: Select the appropriate category for the course
  • Course Summary: Provide a brief description of the course (visible in course listings)
  • Course Start Date: Set when the course becomes available
  • Course End Date: (Optional) Set when the course expires
2. Course Format
  • Format: Choose course format:
    • Topics Format: Organize content by topics/weeks
    • Weekly Format: Organize by weeks
    • Single Activity Format: Single activity per page
    • Social Format: Forum-based learning
  • Number of Sections: Set how many topics/weeks the course will have
  • Hidden Sections: Choose how hidden sections are displayed
3. Appearance
  • Course Image: Upload a course thumbnail/image
  • Course Language: Select the primary language
  • Force Language: Force this language for all course content
  • Course Layout: Choose default page layout
4. Files and Uploads
  • Maximum Upload Size: Set file size limit for course uploads
  • Legacy Files: Enable/disable legacy file handling
5. Completion Tracking
  • Enable Completion Tracking: Turn on completion tracking for the course
  • Completion Requirements: Set what students must complete:
    • Course completion
    • Activity completion
    • Grade requirements
    • Date requirements
6. Groups
  • Group Mode: Choose group settings:
    • No groups
    • Separate groups
    • Visible groups
  • Force Group Mode: Apply group mode to all activities
7. Role Renaming
  • Custom Role Names: Rename roles for this course (e.g., "Student" → "Learner")
8. Tags
  • Course Tags: Add tags to help categorize and find the course

Saving the Course

  1. Review Settings: Review all settings before saving
  2. Click Save: Click "Save and Display" or "Save and Return"
  3. Auto-Sync: Course is automatically synced to HRIS system via webhook/event
  4. Return to HRIS: Course appears in HRIS course listing

Course Sync Process

How Course Sync Works
  1. Course is created/saved in LMS platform
  2. LMS platform triggers webhook/event to HRIS system
  3. HRIS receives course data (title, ID, image, etc.)
  4. HRIS creates/updates course record in database
  5. Course thumbnail/image is downloaded and stored
  6. Course appears in HRIS course listing

After Course Creation

Once the course is created and synced:

  1. Edit Course Content: Click the pencil icon to edit course in LMS platform
  2. Add Activities: Add quizzes, assignments, forums, etc. (see "Creating Activities" section)
  3. Set Visibility: (Super Admin only) Set course as public/private
  4. Set Price: (Super Admin only) Set course price or mark as free
  5. Assign to Users: Enroll students/employees in the course

Creating Activities in LMS platform

Overview

Activities are interactive elements within a LMS platform course that engage students and assess learning. Common activities include assignments, quizzes, forums, and more.

Accessing Activity Creation

  1. Open Course: Click the pencil icon on a course to edit it in LMS platform
  2. Turn Editing On: Click "Turn editing on" button in LMS platform
  3. Add Activity: Click "Add an activity or resource" in the desired section

Available Activity Types

1. Assignment
  • Purpose: Students submit work for grading
  • Settings:
    • Assignment name and description
    • Due date and cut-off date
    • Submission types (file upload, online text, etc.)
    • Maximum file size and allowed file types
    • Grading settings (points, rubric, etc.)
    • Feedback options
  • Grading: Teachers can grade submissions and provide feedback
2. Quiz
  • Purpose: Assess student knowledge with questions
  • Question Types:
    • Multiple choice
    • True/False
    • Short answer
    • Essay
    • Matching
    • Numerical
    • And more...
  • Settings:
    • Time limit
    • Number of attempts
    • Shuffle questions/answers
    • Review options
    • Grade boundaries
3. Forum
  • Purpose: Facilitate discussions
  • Types:
    • Standard forum
    • Single simple discussion
    • Question and Answer forum
  • Settings: Subscription mode, post ratings, etc.
4. Lesson
  • Purpose: Create branching, interactive content
  • Features: Pages with questions, branching paths
5. Workshop
  • Purpose: Peer assessment and collaborative work
  • Features: Students assess each other's work
6. Choice
  • Purpose: Quick polls or voting
  • Settings: Multiple options, limit responses
7. Feedback
  • Purpose: Collect feedback from students
  • Features: Customizable feedback forms

General Activity Creation Steps

  1. Select Activity Type: Choose the activity from the list
  2. Configure Settings:
    • Name and description
    • Availability dates
    • Completion requirements
    • Grade settings
    • Activity-specific settings
  3. Save and Return: Save the activity
  4. Add Content: (For quizzes) Add questions to question bank
  5. Test Activity: Preview and test the activity

Activity Completion Settings

For each activity, you can set completion requirements:

  • Manual Completion: Student marks as complete manually
  • Automatic Completion: Based on:
    • Viewing the activity
    • Receiving a grade
    • Submitting work
    • Meeting grade threshold

Activity Grading

  • Grade Scale: Set point values or use scales
  • Grade Category: Organize grades into categories
  • Grade to Pass: Set minimum grade for passing
  • Aggregation: How grades are calculated (mean, sum, etc.)

Creating Certificates in LMS platform

Overview

Certificates can be issued to students upon course completion. LMS platform supports certificate generation through plugins like "Custom Certificate" or "Simple Certificate".

Prerequisites

  • Certificate plugin must be installed and enabled in LMS platform
  • Course completion tracking must be enabled
  • Course must have completion criteria set

Creating a Certificate Activity

  1. Open Course: Edit the course in LMS platform
  2. Turn Editing On: Enable editing mode
  3. Add Certificate: Click "Add an activity or resource" → Select "Certificate"
  4. Configure Certificate:
    • Name: Certificate name (e.g., "Course Completion Certificate")
    • Description: Brief description of the certificate
    • Certificate Type: Choose certificate template/design
    • Orientation: Portrait or Landscape
    • Border Style: Choose border design
    • Seal: Add official seal/image
    • Signature: Add signature image

Certificate Text Elements

Configure text that appears on the certificate:

  • Certificate Text: Main certificate text (can include placeholders)
  • Available Placeholders:
    • {USERNAME} - Student username
    • {FIRSTNAME} - Student first name
    • {LASTNAME} - Student last name
    • {COURSENAME} - Course name
    • {DATE} - Completion date
    • {GRADE} - Course grade
    • {OUTCOME} - Learning outcomes
    • {CERTIFICATECODE} - Unique certificate code

Certificate Design Elements

  • Background Image: Upload custom background image
  • Watermark: Add watermark image
  • Border Image: Custom border design
  • Colors: Customize text and background colors
  • Fonts: Choose font families and sizes
  • Layout: Position text elements on certificate

Certificate Issuance Settings

  • Issue Options:
    • Issue immediately upon completion
    • Require manual verification
    • Issue after specific date
  • Email Certificate: Automatically email certificate to student
  • Save Certificate: Save PDF to student's files
  • Certificate Code: Generate unique verification code

Course Completion Requirements

Before certificates can be issued, set course completion criteria:

  1. Enable Completion: Course Settings → Completion Tracking → Enable
  2. Set Requirements:
    • Complete all activities
    • Achieve minimum grade
    • Complete specific activities
    • Manual completion by teacher
  3. Save Settings: Save completion criteria

Certificate Generation Process

How Certificates are Generated
  1. Student completes all course requirements
  2. Course completion is automatically recorded
  3. Certificate activity detects completion
  4. Certificate PDF is generated with student details
  5. Certificate is made available to student
  6. Email notification sent (if enabled)
  7. Certificate stored in student's records

Certificate Verification

  • Unique Code: Each certificate has a unique verification code
  • Verification URL: Certificates can be verified via LMS platform verification page
  • PDF Security: Certificates can be password-protected
  • Digital Signature: Add digital signatures for authenticity

Best Practices

  • Design certificates to match your organization's branding
  • Include all relevant information (name, course, date, grade)
  • Use high-quality images and professional layout
  • Test certificate generation before course launch
  • Enable email notifications for automatic distribution
  • Keep certificate templates consistent across courses

LMS platform IMOD Integration

Overview

The HRIS system integrates with LMS platform IMOD (IOMAD) platform through REST API, webhooks, and SSO authentication. This integration enables seamless course management, user synchronization, and data exchange.

Integration Components

1. Single Sign-On (SSO)
  • Purpose: Allow users to access LMS platform without separate login
  • Process:
    1. User clicks "Go to LMS" in HRIS
    2. HRIS generates SSO token
    3. User redirected to LMS platform SSO endpoint
    4. LMS platform validates token and logs user in
  • Security: Tokens are time-limited and single-use
2. REST API Integration
  • API Endpoint: LMS platform Web Services REST API
  • Authentication: Web service token
  • Functions Used:
    • core_course_get_courses - Get course list
    • core_course_get_contents - Get course content
    • core_user_create_users - Create users
    • enrol_manual_enrol_users - Enroll users
    • core_completion_get_course_completion_status - Get progress
    • block_iomad_company_admin_create_companies - Create companies
3. Webhook Events
  • Course Created: LMS platform triggers event when course is created
  • Course Updated: Changes sync back to HRIS
  • User Enrolled: Enrollment events sync to HRIS
  • Course Completed: Completion events trigger certificate generation

Data Synchronization

  • User Sync: Users created in HRIS are automatically created in LMS platform
  • Company Sync: Companies in HRIS map to LMS platform companies
  • Course Sync: Courses created in LMS platform sync to HRIS
  • Progress Sync: Student progress syncs from LMS platform to HRIS
  • Grade Sync: Grades and completion status sync automatically

Configuration

LMS platform integration is configured in system settings:

  • LMS platform URL: Base URL of LMS platform platform
  • API URL: Web services API endpoint
  • Web Service Token: Authentication token for API
  • User ID: LMS platform user ID for API calls

Company Workspace Isolation

Each company has its own LMS platform workspace:

  • Companies can only see their own courses
  • Purchased courses are copied to company workspace
  • User access is restricted to company workspace
  • Super admin has access to all workspaces