Open Sourcing ed-lti, the Academic Blogging Service’s LTI Plugin.
In DLAM we have just finished working on a blogging platform (blogs.ed.ac.uk) that allows staff and postgraduate students to create their own WordPress blogs through the use of online forms. As part of the project, we developed a WordPress plugin that allows staff to link VLE (Virtual Learning Environment) courses to blogs on the platform. When VLE users click a pre-configured LTI (Learning Tools Interoperability) link on a course, the VLE passes information to the blogging platform, and in reply the blogging platform usually carries out one of the following actions:
1. Creates a blog for the course.
2. Adds the user to an existing course blog – usually as an author or administrator.
3. Logs the user into an existing course blog.
This is a simplification of the process (for example, I do not discuss student course blogs), but hopefully you get the idea: it was possible to automate blog creation & linking from a VLE through the use of a custom WordPress plugin and LTI technology.
The blogging platform relies on a lot of open source code and, maybe not surprisingly, we are very grateful to the people who created that code. With this in mind, we decided that it would be nice to give back to the software community and in particular those involved with educational technology. So, we decided to open source the ed-lti plugin in the hope that it might prove useful to other institutions who have their own WordPress blogging platform and are interested in VLE integration.
With the decision to open source made, the next step involved getting our code into a state where it was ready to be shared with the rest of the world. This involved adding a README.md file to the plugin with detailed installation instructions. Obviously, people need to know what the plugin does and how they can get it to work with their own blogging platform. We also added a CHANGELOG.md file. This is so that when we make future changes to the plugin we have a place to record those changes, and people using the plugin can see what’s been updated.
The final document that we needed to add to the plugin was a license – so consumers have an idea of what they can and cannot do with the software. Since the LTI plugin relies on licensed third-party code, we needed to do a little bit of research to ensure that our own code was adhering to their license and our licence would not conflict with theirs. In the end – and to cut a long story short – we opted for the GNU General Public License. This ensures that consumers can use the plugin, change it, and copy it, as long as they comply with a couple of simple conditions (the main one being that the source code is included with the software).
With the plugin in pretty good shape (and after running code sniffer to make sure our code was following WordPress coding standards) it was time to host the code on a publicly available platform. At that time, our plugin was being hosted on a private UoE GitLab repository; obviously, not a viable solution. So, we moved the code to GitHub – the home of open source software. And as simple as that, our plugin was open sourced and available to the public. The final post launch step involved adding topics (similar to tags) to our repository on GitHub, so that our plugin is easily findable when people are searching for LTI and WordPress software.
The advantages of open sourcing software
Although, not previously mentioned, we shared the ed-lti plugin with other learning technologists (outside UoE) prior to moving the code to GitHub. We got some invaluable feedback about what worked and what didn’t – and refactored our code accordingly. And that’s that advantage of sharing your code with others: you get feedback about bugs, security issues are picked up, improvements are suggested, etc. You basically get extra sets of eyes on your code, which helps with finding and fixing problems that may have been overlooked.
Checkout the ed-lti plugin in action
If you would like to view the code (or even clone the repo), you can visit the ed-lti plugin home page on GitHub: https://github.com/uoe-dlam/ed-lti