You are on page 1of 35

Building a Learning Management System in Drupal

Devin Zuczek (djdevin) Module maintainer, DLC Solutions Scott Rigby (scottrigby) Module maintainer

Assessment, accreditation, and certificates Using Course and other Drupal modules!

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 course
It's easy, really.

Course outline UI

Object configuration

Object access

Workflow

Workflow

Learning material
Adding 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

Book
Checks for view, custom requirements planned

Webform
Checks for submission

Ubercart
selling access to courses blocking progress

Poll
Checks for vote

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.

Crediting
Awarding 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

Course settings

Type mapping

Credit claiming
Learner claim screen

Certificates
Awarding 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 API
Creating 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

API Example

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

You might also like