MemberPulse

Learning Management

Manage courses, enrollments, and track member learning progress

Comprehensive LMS for creating courses, tracking progress, and managing member professional development.

Capabilities

ActionROLE_CLIENT_ADMINROLE_CLIENT_USER
View courses
Create courses
Manage enrollments
View progress
Issue certificates

Features

Course Management

  • Create and edit courses
  • Organize into subjects/modules
  • Multiple content types (video, PDF, text, quiz)
  • Set completion criteria
  • Assign CPD points

Acceptance Criteria

Frontend
  • UI supports the workflows described in this feature.
Backend / API
  • Backend behavior supports this feature as documented.
Permissions
  • Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
  • All business rules for this feature are enforced.
Error Handling
  • Error states return clear messages and appropriate HTTP status codes.

Enrollment Management

  • View all enrollments
  • Manual enrollment
  • Bulk enrollment
  • Track completion rates
  • Send reminders

Acceptance Criteria

Frontend
  • UI supports the workflows described in this feature.
Backend / API
  • Backend behavior supports this feature as documented.
Permissions
  • Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
  • All business rules for this feature are enforced.
Error Handling
  • Error states return clear messages and appropriate HTTP status codes.

Progress Tracking

  • Individual progress view
  • Completion percentages
  • Quiz scores
  • Time spent
  • Certificate status

Acceptance Criteria

Frontend
  • UI supports the workflows described in this feature.
Backend / API
  • Backend behavior supports this feature as documented.
Permissions
  • Access is restricted per the Capabilities matrix on this page (or equivalent role rules).
Business Rules
  • All business rules for this feature are enforced.
Error Handling
  • Error states return clear messages and appropriate HTTP status codes.

Event → Course Automation

Some organizations run live/Zoom events and then repackage the recording + materials as an on-demand course.

Expected workflow:

  1. Select an Event
  2. Choose Create Draft Course from Event
  3. System clones:
    • Event title/description → course title/description
    • Zoom recording (when available) → draft course video content
    • Marketing/handout materials → draft course resources
  4. Course is created in draft state for review/editing before publishing

Acceptance Criteria

Frontend
  • Admin UI provides a “Create course from event” action on the event or within LMS.
  • Generated course is clearly labeled as draft and shows which fields were cloned.
Backend / API
  • Backend can create a draft course from an event and attach cloned assets.
Permissions
  • Only ROLE_CLIENT_ADMIN can run event→course automation.
Business Rules
  • The generated course defaults to draft and is not visible to members until published.
  • If no Zoom recording is available, the course is created without video and flagged for follow-up.
Error Handling
  • If cloning assets fails, the system reports which assets failed and allows retry.

UI Spec (from supplied spreadsheet)

The LMS is backed by the "Courses" section in workspace/sources/entity-registry.csv.

Course list / management (selected fields)
FieldInput TypeRequiredNotes
Course NameTextRequiredmodel: name
Tile Short DescriptionTextRequiredUsed in course tiles
Course CategoryMulti-selectRequiredmodel: courseCategories
Course TypeSelectorRequiredmodel: courseType
Publish Date / TimeDate + TimeRequiredmodel: publishDateTime
Start DateDateRequiredmodel: startDate
Close DateDateNot Requiredmodel: closeDate
CPD PointsNumberRequiredmodel: cpdPoints
Enrollment / progress (member enrollments)
FieldTypeNotes
courseManyToOneCourse
memberProfileManyToOneMemberProfile
statusManyToOneCourseRegistrationStatus
paymentStatusManyToOnePaymentStatus (pending/paid/failed)
enrolledAtdatetime-
completedAtdatetime-
progressPercentagefloat-

Data Model Cross‑Reference (Entities)

Implementation Contracts

Backend (API)

GET    /api/courses                          # List courses
POST   /api/courses                          # Create course
GET    /api/courses/{id}                     # Get course details
PUT    /api/courses/{id}                     # Update course
DELETE /api/courses/{id}                     # Archive course

GET    /api/courses/{id}/enrollments         # List enrollments
POST   /api/courses/{id}/enrollments         # Enroll members
GET    /api/courses/{id}/progress            # Progress report

GET    /api/enrollments/{id}                 # Enrollment details
PUT    /api/enrollments/{id}/complete        # Mark complete

On this page