Create e-learning courses with any number of tracked requirements for completion.


  • Allows any content type to be used as an e-learning course, containing any number of graded or ungraded course objects.
  • Course object API to define learning objects that can be added to a workflow
    • Built in support for Drupal nodes to be part of a course requirement workflow, plus support for Content Access and ACL to control access per node-based object
    • Built in support for several non-node course objects (see Getting started)
    • Extensible to allow other content/assessments or non-Drupal (external, 3rd party) objects to be delivered and tracked
  • API to control enroll and take access
  • API for configurable outline access control based on time, conditions (object start, completion, grades)
  • Framework for external learning application integration (such as Moodle)
  • Entity API integration
  • Views integration through Entity, including several default views for reports and managing courses
  • Rules integration through Entity for course enrollments, completion, etc.


  • PHP 5.4.0+
  • Entity API for providing CRUD, Rules, and Views integration.
  • Views for most reports and user transcript.
  • Chaos tools for plugin functionality.
  • Views Bulk Operations for built in functionality like adding, editing, and removing course enrollments
  • Views Data Export for CSV exports of course data (optional, but recommended)
  • Time period for D7 - for setting time periods for enrollment durations/object access (optional, but recommended)
  • UUID

Getting started

Enrollments and attendance

  • Course comes bundled with course_signup, to use Signup as a registration and attendance management system. Attendance can be a requirement for completion of a course.

E-commerce support

  • Course currently supports Ubercart through the bundled course_uc module.


  • Course comes with course_certificate which can award a tokenized PDF Certificate on course completion


  • Course report areas for global (course-level) reports and individual (object-level) reports.
  • API to allow course objects to provide their own reports.


  • Course credit will allow an admin to assign and map credit types to learner profiles and courses. Learners will then be able to receive or claim credit that they are eligible for on completion of a course.
  • Course Moodle Objects for integrating Moodle
  • Course Requirements for requiring completion of other courses for enrollment in another (prerequisites)
  • Course Relationships for building subscriptions or curricula (Courses of Courses)


  • Drop by #drupal-course on IRC


  • This project is sponsored by DLC Solutions for EthosCE, an enterprise-level Learning Management System (LMS).
Supporting organizations: 

Project information