Wednesday, December 17, 2014

Office 365 Moodle Integration Project - Progress

Along with the OneNote integration, discussed in my last post, the work with Microsoft Open Technologies has also produced two integrations with Office 365. The first is an integration with Outlook calendars and the second is a OneDrive for Business integration. In this post, I will describe and provide brief demos of the Outlook calendar integration.

The Outlook calendar synchronization allows Moodle calendar events to be synchronized back to your Outlook calendar. If you are someone who uses an Outlook calendar as a key tool, I think you will find this very useful.

This particular functionality has been built to use Office 365 for Business, meaning that it expects everyone on the site to have an Office 365 for Business account. Users without these accounts will not be able to synchronize to their Outlook calendars.

The function will allow Moodle users to connect their personal Moodle calendar, and any course calendars they have access to. To set up the calendars to connect, a local plug-in has been created. As well, a user profile field plug-in has been provided that can be added to each user's profile, providing access to the calendar sync configuration page.

Once I have logged into Moodle with my Office 365 AzureAD account, I will be able to access these functions. Looking at my profile, I will see two Office 365 functions: "AzureAD" and "Office365 Connection". The next image shows this screen:


Clicking through the "Manage" function for the "Office365 Connection", I get to the "Outlook Calendar Sync" page. This is where I can select the specific Moodle event types I want to synchronize back to Outlook:


Once I have selected my calendars, any changes to those Moodle event types will be reflected in my Outlook calendar as well. In this case, I will see any personal Moodle events and any Moodle events from the "Moodle Integration Project" course.


In the above image, there are two events in my course Moodle calendar. On the 14th, there is a personal event, and on the 16th a course event. We can see the details of the course event in the image. When I look over at my Outlook calendar, I see the same two events:


In my next post, I will discuss the OneDrive for Business integration. It takes advantage of Sharepoint to allow shared course directories as well.

If you want any more information on how you can benefit from these developments, contact Remote-Learner at moodleo365@remote-learner.net.

Friday, December 5, 2014

OneNote Moodle Integration Project - Progress



In my last post, I started talking about the work we are doing with Microsoft Open Technologies to create integrations with Moodle and a number of Microsoft technologies and applications. That work has progressed quickly, and we are now testing our first efforts. In this post, I will describe where we are with the OneNote / Moodle integration.

The work so far is focused on providing access to OneNote's notebook pages as repository selections and as assignment plug-ins. The current work has been done for the free, OneNote for Consumer application. In future phases, the commercial OneNote plug-in will also be added.

For the assignment plug-in, the key goal is to allow Moodle assignments to be created in OneNote, using any and all of OneNote's content features. Then, once the student feels their assignment is done, they simply need to click the Moodle assignment's "submit" button, and the student's Moodle assignment submission will be automatically associated with the OneNote page they worked on in OneNote. No downloading and uploading required. No conversion into Moodle compatible content required.

An additional feature developed allows the instructor to provide feedback to the provided submission using OneNote.

To get these features working correctly, a number of problems had to solved:
  • Establish a defined, secure connection between the OneNote application and the Moodle site.
  • Establish a defined, secure connection between each user's Moodle account and their OneNote account.
  • Connect a specific OneNote page in a user's OneNote account with a specific Moodle assignment submission.
  • Connect a specific OneNote page in an instructor's OneNote account with a specific Moodle assignment submission's feedback response.
  • Ensure that a specific submission can be "frozen" at the time of submittal, so that any changes that occur afterward can be prevented or allowed but visible.

I'll describe the approach taken for each problem.

A Moodle local plug-in establishes a secure connection between the specific Moodle site's instance of the Microsoft plug-ins and the Microsoft API's for OneNote. The plug-in works with Microsoft's "Live App management site" (https://account.live.com/developers/applications) to establish unique identifier and secret codes that ensure communication between the Moodle site and the OneNote API's are for the intended purpose. The connections are managed using OAuth 2.


This is set up by a Moodle administrator and configured into the plug-in as above.

A Moodle user can establish a connection to their OneNote account in several ways. In each case, the connection is live for the duration of the Moodle session, but is lost when the Moodle session is complete. Each time a user logs back into the Moodle site, the user will need to login to the OneNote account as well.

The OneNote account connection can be established by accessing the repository plug-in, by using the OneNote block or by using the sign-in button on the assignment plug-in. Using any of these options logs the user in for all OneNote plug-ins for that Moodle session.



The assignment submission plug-in allows the specific assignment to connect to a OneNote page for each user's submission. Once a user has logged into their Microsoft account, the assignment will offer a "Work on this" in OneNote button. Clicking this button will open the OneNote web application in a new browser tab, logged into the user's account.



If the OneNote page has not already been created (if this is the first time the user has opened this assignment), a new page will be created in a section for the Moodle course in a notebook for the Moodle site. Each of these will be created as necessary. Each book/section/page is given a name according to the Moodle site, course name, assignment name, user name and action (submission, feedback). These names are important, but data references are also kept in Moodle to keep the associations.



A user can then work on their OneNote assignment in any of the OneNote applications - web based, desktop application or mobile. When the user is happy with the assignment, in Moodle, they simply need to click the "Save changes" for their OneNote assignment submission. Doing this, records the submission in Moodle, provides a direct link to the OneNote page for the user and the instructors and uploads a zipped submission of the page in HTML format to the Moodle course assignment. This upload provides a snapshot in time of when the assignment was submitted, helping to control what was submitted with any changes made to the page after submittal.



On the instructor side of things, the student's submission is available to be reviewed in OneNote, reviewed as submitted zipped HTML pages and for feedback in OneNote. When the instructor opens the students OneNote submission in OneNote, that page is copied into the instructor's course section in their site notebook with a name identifying the assignment and the student. If the instructor elects to offer feedback using OneNote, a new page will be created in the instructor's notebook containing the content of the submission, allowing the instructor to provide feedback inline in the content. That feedback page will likewise be available to the student, by copying it into the student's notebook when the access it.



We are currently running this work through closed beta-testing, and it will available for more general beta testing in the new year. I think this add-on will be a very useful addition to the Moodle landscape, and look forward to seeing what people can do with it.

If you want any more information on how you can benefit from these developments, contact Remote-Learner at moodleo365@remote-learner.net.