Moodle x Nextcloud: "I enjoy being a part of two open source communities whose efforts empower many people"

Originally published at:

You may have heard about the release of Moodle 3.6, which comes with built-in Nextcloud and was announced last Monday. A great occasion to get to know one of the great minds behind the project: Jan Dageförde, from the University of Münster, who answered a few questions for us.

Who are you and where are you from?

I am a PhD student in information systems at the University of MĂĽnster, Germany. As part of my work for the university, I co-lead the technical team that is responsible for the development and operations of Learnweb, which is a Moodle-based e-learning platform that we offer to more than 45,000 students and 7,500 employees of our University. In that context, my colleagues, a few students, and I developed solutions that integrate Moodle with Nextcloud.

What motivated you to work on Moodle integration in Nextcloud?

In 2015, a consortium of 26 universities launched sciebo, a private cloud storage service that can be used by all staff and students who are affiliated with the University of Münster or one of several other institutions from North Rhine-Westphalia. Like Learnweb, sciebo is based on open source software. However, at that time there was no integration between Learnweb and sciebo, so it was rather complicated to use the two services in combination. This is why, at the end of 2015, we – that is my colleague Tobias Reischmann and I – decided to collaborate with our university's centre for IT infrastructure to create software that integrates these services in a user-friendly way.

How did that go and who did you work with?

In order to start off the integration, we offered a project seminar, which is an elective module for bachelor students of information systems. We were overwhelmed by the sheer number of students who were willing to contribute to the integration. Unfortunately, we could not accept all of them, but we were lucky to work with a group of five motivated students including Nina Herrmann, Lukas Biermann, and Wladislaw Iwanzow. Over the course of one semester, in the winter term of 2016/17, Tobias and I merely served as mentors while the students self-organised their project, conceived ideas for what an integration could look like, and implemented a set of plugins that actually realised this integration.

From the start, our aim was to implement the integration not just with our university in mind, but in a way that the results could be shared with other members from the communities. But even though we held the students to this high standard, we were happy with how they mastered their project seminar and were very proud of their results. They managed to implement the OAuth 2 protocol that is leveraged by the integration for authorising the e-learning platform to manage files on the cloud storage. This required one plugin on each of both ends, which they delivered in production-ready quality. In addition to that, they implemented a prototype of a Moodle activity module that facilitates group work on files in the cloud.

We took over from them when the project seminar ended, polishing their work in order to deploy it at our University. At about the same time, Moodle worked on integrating with other cloud-based tools for file storage and document editing. When I heard that Martin Dougiamas (founder and CEO of Moodle) announced in May 2017 that he wanted to see Moodle “supporting the open source community equally as well (and probably better!)”, I was able to contribute to his initiative by pointing at the plugins that our students created. Over at Moodle they were glad to hear that we already had a solution that achieves this integration. At the same time, we were astonished that our work would be received so well within such a short amount of time.

At that point it was clear that we might be able to incorporate a part of our integration into the Moodle core. However, that could not happen over night as there was still some work ahead of us. We soon released the plugin to the Moodle community. But before the plugin could even be considered for core, we needed to port our own OAuth 2 client to the new Moodle one and add the access controlled link feature, which is used by students to safely hand in student assignments that are stored in the cloud – but without duplicating their files into Moodle. By August 2018, we finally completed this additional work. Since then, we have been working closely with the developers from Moodle HQ and Roeland Douma from Nextcloud to improve the user experience of the integration, resulting in a great product. Two weeks ago, when I told our students that Moodle has accepted one of their plugins to become an official plugin, they all were really happy about it.

Any tips or final thoughts?

After having been to a few MoodleMoots already, this year was my first time at the Nextcloud Conference in Berlin. It was cool to meet a lot of people from the Nextcloud community in person, particularly those who I have been collaborating with to make the Moodle integration happen. This was an awesome opportunity, not just to discuss technical details as well as the general motivation of our work, but even more so to hear about other ideas and accomplishments from the Nextcloud community. I enjoy being a part of two open source communities whose efforts empower many people, including (but not limited to) learners and educators.

Motivated by how well our work is received, we are going to continue working on further Moodle plugins that facilitate e-learning activities, particularly those involving collaboration on files that are stored in the cloud. If you are curious, stay tuned in Moodle’s plugin directory!


Excelente noticia, una de nuestras plataformas de trabajo en la universidad es el Moodle y con esta vinculaciĂłn es fenomenal. Muy buen trabajo el realizado por esos muchachos, solo resta seguir avanzando con nuevas ideas. Felicidades a todos los estudiantes y sus mentores y por supuesto a nextcloud que continua dando pasos firmes en la integraciĂłn de su plataforma con otras.