by James McQuillan, Systems Development Team Lead
The Office 365 suite of Moodle plugins provides integration with a wide variety of Office 365 services for Moodle. Notably, this suite currently provides authentication and user sync with Azure AD, activity modules with OneNote, repository access to OneDrive, and Microsoft Teams integration. The plugins are all fully open-source in the spirit of the Moodle community, are developed in-the-open on GitHub, and work extensively with the community for future direction and development.
Remote Learner began working with Microsoft on the Office 365 suite of plugins nearly five years ago and produced an initial set of plugins providing authentication, OneNote integration, and an up-to-date OneDrive repository. Since then, the project has produced 14 Moodle plugins and a wide variety of features that support many Office 365 services and use cases. As the plugins are developed open-source on GitHub, we receive a large amount of feedback and have developed a close relationship with users and the community. This relationship has allowed us to build features users want, provide communication on future roadmaps, and help users succeed in their integration. The community has also contributed a fair amount of code to the plugins which is regularly reviewed and integrated. This community-centered approach has been an important aspect of the project to both Remote Learner and Microsoft and has contributed greatly to the project’s success.
The First Step
Authentication was one of the first features we built, and we wanted to set the community-focused tone of the project. Office 365 supports authentication using OpenID Connect, a standards-based, open authentication scheme. While the project and majority of the plugins are Office 365-specific, using OpenID Connect allowed us to build an authentication plugin that could be used with any OpenID Connect provider, not just Office 365. We have maintained this compatibility and there are plenty of users using this plugin with other OpenID Connect providers. Supporting standards where possible has been an important aspect of this project and we hope to find ways to continue doing this as Moodle and Office 365 evolve.
Throughout the history of the plugins we saw many changes in both Office 365 and Moodle and have adapted the plugins along the way. Development saw the migration from the legacy Office 365 APIs to the modern Graph API, and provided plenty of feedback during development to help Microsoft make the graph API a fantastic platform on which to develop applications. However, this was a unique development challenge. During the migration period, many users had deployed the plugins successfully and were using them in production. Switching over to a new API could not be done quickly and without downtime for users. In addition, because we did not control the servers or Azure accounts of these users, we could not ensure this was done immediately or, in some cases, correctly. To solve for this, we developed a number of improvements to transition between APIs. Intelligent setup tools were developed to detect whether new APIs had been added correctly, and code that could switch between APIs at will was used to transparently enable new APIs as they became available. The result was a smooth transition for users and a path that allowed us to safely build new features that the Graph API enabled.
Office 365 Group support was a large improvement to the plugin suite that was enabled by the Graph API. In the past, we used SharePoint sites to provide shared file repositories among course instructors. This worked, but resulted in a large number of SharePoint sites, and some confusion amongst users as to what these SharePoint sites were actually used for. Office 365 Groups come with their own file repositories, in addition to a number of other group-focused features. To integrate with Groups, we built a synchronization tool to allow Moodle administrators to have a Group created for all or any of their courses. This provided the shared file repository we initially implemented with SharePoint, as well as all the other group-focused features that come along with an Office 365 Group. Today, this is one of the key features of the plugin suite and one that provides significant value to users.
Integration with Microsoft Teams with the next generation of group-focused features added to the plugin suite. Remote Learner worked to integrate the efforts from a number of other developers to bring Moodle and Teams together. The first version of this integration, available now, allows Moodle to be a part of the Microsoft Teams interface. In addition to extending the existing group synchronization to Teams, Moodle can appear as a tab in the Teams interface and blends in with a custom Moodle theme. We’re extremely excited about the future possibilities Teams can provide and continue to work with Microsoft to explore future features.
Remote Learner continues to develop, support, and maintain the Office 365 plugin suite. Working closely with Microsoft and the Moodle community to build great features for users, and we are excited about everything Office 365 can provide to enhance the digital learning experience.