Post on 30-Nov-2015
Building a Learning Management Systemin Drupal
Assessment, accreditation, and certificates - Using Course and other Drupal modules!
Devin Zuczek (djdevin)Module maintainer, DLC Solutions
Scott Rigby (scottrigby)Module maintainer
Hi.
We'll be talking about:● Course module and the problem space it
addresses● Initial approaches● Current state of Course module
○ Functionality■ Course objects■ Crediting■ Certificates
○ API○ Interoperability
● Demo/Q & A
The problem
● We wanted the flexibility of Drupal as a CMS and framework
● Plus, the learning capabilities of○ Moodle
■ Quiz, Questionnaire, HTML○ SCORM○ LTI
The (first) solution
● Build a module to create/manage external courses in Drupal, using Course as a wrapper
● Use Moodle (or another 3rd party) as the outline
Problems!● No control over
workflow● Learner in iframe
the whole time● Many intrusions
into 3rd party software
● Hard to tie in Drupal content
But hey!
Drupal already has everything we need!
The ingredients:● Quiz● Webform● Content (CCK)● Book● Registration/Signup● Commerce/Ubercart● Certificate
We just need something to glue it all together and bake up an LMS!
Course 1.0 - The (better) solution
● An object-oriented, pluggable module. Let modules provide course objects
● Use Drupal as the outline○ Treat every object individually○ Automatic instance creation of objects
● Only get important pieces of data from course objects○ Delivering the object○ Reporting/Completions
● Let Drupal and Course manage the objects in a configurable course outline
Building a courseIt's easy, really.
Course outline UI
Object configuration
Object access
Workflow
Workflow
Learning materialAdding objects to the course outline, look at all the built-in support for existing Drupal modules
Basic content
1. Use course_content module to expose content types
2. Create nodes of a specific type through the course outline
3. Completion happens when a user visits the node
Interactive content
● Quiz○ Checks for passing
grade
● Webform○ Checks for
submission
● Poll○ Checks for vote
● Book○ Checks for view,
custom requirements planned
● Ubercart○ selling access to
courses ○ blocking progress
Content privacy
● Restricting course content to enrolled users who have access to the course object
● Content Access (content_access)
● Access Control Lists (acl)○ Together, these allow Course to grant and revoke
access to content based on enrollment in an object.
Attendance and Manual Steps
● Course supports Signup as a course object
● Let users sign up (enroll) for courses, then block progress past certain points
● Signup's built in attendance tracking completes the object, and allows the learner to proceed.
● Similar to Signup, we can block access with a manual course object that does not fulfill itself.
CreditingAwarding credit on course completion
Crediting
● With Course Credit, we can award credit to learners when they complete a course
● Support for○ Variable credit○ Multiple credit types○ Expiration○ Eligibility
Credit claiming
Type mapping
Course settings
Credit claiming
Learner claim screen
CertificatesAwarding pretty PDF certificates on course completion
Certificates
● Certificate module can generate a PDF certificate on course completion
● PDF generation on top of Print module
● Tokenized, node-based templates
● Certificate snapshots
● Map certificate based on profile fields, type of credit claimed, Rules support
Certificate mapping
Reporting
● Course has a built in report area that aggregates all module-provided reports
Course APICreating new course objects
Inheritance Tree (replace with better image)
API Example (course_quiz)
● Course objects declare their class, and context functions
API Example (course_quiz)
Module provides own context ->
Module tracks completion
APIExample
Example from course_quiz
SCORM/LTI and Interoperability
● cck_scorm○ D6 only, uses Moodle functions. Supported by
course_scorm
● Moodle○ Use course_moodle to create Moodle SCORM
objects
● Course LTI (course_lti)○ Provide course as LTI object (provider), use lti
module○ Consume other courses as requirements
Live demo!
Q & A
Class - any questions?
anyone… anyone…?
Credits
Commercially Supported Drupal LMS!
Course is the result of the efforts for many organizations to build a flexible learning platform using Drupal.
Resources
● Course module - D6, D7○ http://drupal.org/project/course○ http://drupal.org/project/course_credit○ http://drupal.org/project/course_relationships
● Certificate module○ http://drupal.org/project/certificate
● Moodle object support○ http://drupal.org/project/course_moodle
● LTI (coming soon)○ http://drupal.org/project/lti
● Quiz○ http://drupal.org/project/quiz