Skip to main content

Creating Learning Management Systems with Drupal

Online learning is a burgeoning sector of the web development space. There are two factors driving this trend are the need for organizations. First the need to teach specific information that isn’t taught in or pertinent to formal education. Secondly, the dropping barrier to entry cost of creating digital learning content and online learning management systems has made it affordable for organizations of any size to implement.

Almost every organization can benefit from an online learning system. Examples include:

  • Training employees or volunteers with specialized information
  • Legally verify communication of policy in human resource departments
  • Providing continuing education to complement existing knowledge and skill set

Specific organizational learning is important for many reasons. Formal education is often very general, and it is impossible to teach all of the many special skills and knowledge niches that businesses and other organizations need their employees to utilize to perform efficiently. Technology evolves rapidly, and the tools and skills employees need can change often. Human resource departments can have the tools they need to both test for necessary basic skills, and onboard or train employees to work at their peak potential with the appropriate and current knowledge and skill sets.

It is often equally important for an organization to verify that they communicated information to employees or volunteers to mitigate legal liability. Forward-thinking organizations have a code of conduct which often all employees must understand. Examples include sexual harassment or acceptable behavior policies. Organizations can avoid lawsuits by being able to prove that they communicated their policies effectively and that their employees understood by passing a quiz.

Businesses or organizations also often have their employees perform work in situations where it may be possible for injury or damage to occur. Training departments must inform their employees about safety procedures.  Companies can both train their employees for skill and protect themselves from legal liability in case of accidents, simultaneously with online learning systems.

The goal of learning is the transmission of information or ideas, and the verification it was received and understood. This concept seems simple enough to put in a sentence, but in practice, it takes the coordination of several disparate factors ranging from content creation and curation to technological integration and digital delivery to the learner on a wide variety of devices.

In the past, only large organizations could afford to create a full-featured online learning system, either by licensing expensive software, or hiring specialized employees or firms to develop all the parts of a customized learning system from scratch.

Today the environment is changing and a wide range of freely available open source software has been developed. The industry is maturing to the point where even small organizations with access to limited technical skills can create online learning experiences and track a learners progress through them.

The learning industry has seen open standards be created and mature, and these technologies have gained a dominant position in the marketplace. The Experience API, also called the Tin Can API, provides a consistent specification for all learning content and learning interaction storage and reporting software to speak the same language, and easily integrate with each other.

At Skvare, we use the power of Drupal to build web solutions for our clients. Its core strengths of content management, integration with web technologies, and a powerful customization potential make it an ideal platform for creating a learning management system.

If you have a Drupal website and know how to install a module, you can build a learning system. Here’s how.

Create content

One of the most intriguing pieces of software in web development is the H5P learning content creation platform. It is an industry-leading alternative to Flash-based content that addresses both the content creation and its delivery.

H5P is a new HTML5 open source, open standards content creation tool that is mobile friendly. Learning content is created directly in the browser, and published on your website, in minutes. Did we mention it’s not Flash?

H5P can work independently, or integrated with Drupal, Wordpress, or Moodle. The H5P Drupal module has a 7.x and 8.x version, and works seamlessly with the existing content management system.

Once the module is installed, go to the content menu, and choose “Add interactive content”. The H5P platform offers a large array of pre-built “content types”, and a thriving community adds more each day.

When adding a piece of interactive learning content in Drupal, the content creator is presented with the H5P builder, and can easily select from the existing types.


H5P has over 40 types of learning content available out of the box, allowing for the creation of quizzes, presentations, and even interactive video. The interface is intuitive and simple. Creating learning content for the web can now be fun and easy. Create a free account on and visit the demo of the H5P content creation interface.

Track user learning interactions

“User learning interactions” is the industry terminology that describes the things learners do on a learning system. The learners are generally shown written content or videos and learning content managers want to know if the learners accessed them. Learners had to take quizzes or tests, and teachers or trainers want to know what they answered, and if they passed.

H5P, being open standards compliant, supports the Tin Can API, and will generate data about the learner interaction with the content, like what the user saw or what answers they provide in response to questions.

To capture the data that H5P generates, install the Tin Can API Drupal module, and it’s H5P submodule. The modules provided by the Tin Can API module can track many different events in Drupal, including content views, quizzes, Vimeo and YouTube video watches, and more. It also provides facilities for developers to track any event.

This module constructs and sends what are called “statements” to a learning record store. A statement is a record of the learning interaction, in an open standard format. For example, the sentence “Bob answered question 3 in Quiz 2 of Course 3 with ‘b’ and it was correct.” would represent an English version of a statement.

Storing Statements

As a user interacts with content and takes quizzes, a lot of Tin Can API statements will be generated and need to be analyzed to see if the LMS should respond with an action, and then the data is aggregated together to make reports. This has traditionally been where the going gets tough and technical for learning management system creators.

Skvare has developed and released its open-source solution, the Drupal Tin Can API Learning Record Store. Tin Can statements are received, validated, and stored as proper Drupal entity types.

Now it is possible to have a native Drupal learning record store (LRS), integrated directly into your website. No need for complicated 3rd party integrations. This solves a host of problems and puts within reach the capability for a non-developer to create a learning system.

To learn more, read our documentation to install the Drupal Tin Can API Learning Record Store.

Learner interaction events and course status

As a learner progresses through a course the learning management system often needs to take certain actions in response to different events as they interact with the material. For instance, when a user completes and passes a quiz a certificate may need to be generated.

Many times organizations need a workflow to present several pieces of learning content for the learning and want to ensure users to view or take them in a certain order. As statements come into the system, the system can change style or content of the presentation or grant access to requisite materials. Status icons or color changes can be used to indicate whether or not a person has passed a particular part of a course. his allows the learner to see at a glance their progress through the course materials and what should be viewed next.

When the learning record store is directly integrated with the learning content management system, the user can see immediately their updated status as they progress through a course.

Drupal has long had a module to respond to events and take actions, the Rules module.

Because the Drupal Tin Can LRS stores the statements as Drupal entities, developers can integrate Rules or any modules that use the Drupal Entity API. For example, an organization requires their learners to take a quiz at the end of the course and they need at least a 75% to pass the course and earn their certificate. Using Rules, we can check if the quiz results were greater than or equal to 75% and if so, generate a pass record for the content and display a message to the user that they’ve passed. If the quiz result was less than 75%, then show a message that they did not pass and need to take the quiz again.


Unlike Wordpress or Moodle, Drupal has a built-in report builder that has been maturing for years and has hundreds of modules that enhance it. This module is called Views. Views can support simple reports, aggregation, charts, graphs, and with its versatile API and add-on modules, just about anything an organization can imagine can be built

Since the Tin Can API statements stored in the Drupal Tin Can LRS Drupal entity types, immediate integration with Views is available, and reports can be built out of the box. For example, your course on your organization’s website contains a video and you’d like to know how users interacted with the video. Did they watch the entire video, did they skip around, did they watch part of it one day and finished the next day? The statements generated from the user’s interaction with the video can be compiled using Views and display the data in a format that fits your needs.

Views can also be used to build custom content elements in the presentation of course material. Truly your imagination is the limit.

Skvare Solutions

We don’t know about you, but we’re excited about the potential. We’ve pointed out how existing open source Drupal modules can be used to build a complete online learning system.

It may be the case that your organization has complex needs, and needs a little help making that happen. If so, don’t worry, call Skvare. We have years of experience building custom online learning systems with Drupal. We have hundreds of contributed modules to work with, and have developed a suite of over 30 modules that we can deploy for our customers.

We build complex course structures. We build complex rules. We build complex reports. We can even build you custom H5P content types for your content creators. If you have existing flash content like what is published by Articulate Storyline software, we can integrate that too.

Skvare builds Drupal learning management systems. Contact us now to learn more.

Share this post