using H5P tools outside of a supported LMS?


I am faculty at a university, and I am working with a group of computer scientists who are building a web-based platform for language testing.  My question:  What does my team need to know if we would like to harness the H5P tools for use on a platform that isn't one of the LMSs that are currently supported: technologies required, costs, functionalities? We would like to do multi-site data collection, and local LMS H5P tools don't make this easy, so we are building a custom platform.


serettig's picture

This really depends on what exactly you want to do. First of all, you must be aware of the fact that H5P is not suitable for testing in situations in which cheating has to be prevented under any circumstances. All user input is checked in the browser and could easily be manipulated. It's also very simple to find the answers if you know where to look in the code. 

Data collection across sites should alraedy work in the existing platforms, if you configure all sites to report user actions to a central learning record storage like LearningLocker. You can insert JavaScript code into the pages with H5P content that listen to xAPI statements and then relay them to the lrs. There is a plugin for WordPress which already does this.

Generally, it makes a lot of sense to use one of the existing plugins for a CMS and customize it according to your needs. If you really want to integrate H5P in your own custom system, you'd have to write a custom implementation of H5P by implementing the interface of the PHP core and editor projects. There currently exist several official implementations that you can take as a reference: the Moodle plugin, the Drupal plugin and a WordPress plugin. There are also some plugins written by the community. This requires you to use PHP in your application, however. How to write an implementation is also not documented very well, so you'll have to do a lot of reverse engineering of the existing plugins. The structure of the PHP server can also be quite confusing to newcomers, so you'll have to spend quite some time on this.

I've been working on a re-implementation of the H5P for NodeJS and it has progressed quite a bit already. If your platform technology doesn't work well with PHP you can also check it out as an alternative: You'll find it at Be warned that it's not en par with the official PHP server yet, but (I hope) it has better documentation on how to write an implementation with it.