Canvas content updating and imscc

juan_leon1
Community Explorer

For the past decade, I have updated Canvas course sites each term with HTML files generated from a completely separate content management system implemented with Atlassian Confluence. 

The Confluence spaces (each holding the content for a single course) have been highly customized.  The Canvas courses themselves are built from templates.  The content displayed on a Canvas course site is updated every morning from the course's corresponding content 'master' in a Confluence space.  

These updates, automated by scripts, export HTML course pages from Confluence spaces as .zip packages, and the scripts then import those packages to the corresponding courses in Canvas.  The files imported from Confluence overwrite files already present in the Canvas course template.  Finally, the content of such files in the Canvas course is displayed to students via iframes built into the course's template by design.

This approach has worked very well, but it has the disadvantage of requiring a fairly fixed template structure for our Canvas courses.  The file updating/overwriting procedure is 'blind':  The imported .zip of HTML files assumes that certain files exist in the Canvas course's structure available for being overwritten with current content. Only those files have corresponding the iframes present in the course's template. 

Courses that don't stick to our template break the update delivery stream.  They don't provide the files imported from the content management system with the companion file in Canvas that is necessary for updating course content there and displaying it to students via the iframes.

In order to avoid this constraint, I am exploring the following use of a Canvas course's export package:

1) exporting the course's .imscc file

2) modifying pertinent files in the package and then repackaging the files into the .imscc package

3) reimporting the Canvas .imscc file into the course it was exported from

This sequence of actions worked when tested on a small scale, but I have not yet tried to scale up.

In the initial test, I completed a  content 'Reset' for the course in question before doing the content export/reimport. The course held only placeholder/example content.

Were I working with an actual course, I would be worried about losing student information during the export or reimport process.  Perhaps grades or related records could be lost or reset through the .imscc packaging procedure itself?  

There might also be a need for a 'blackout' period while an export/import was going on so that changes applied to the course via the Canvas course site by instructors or students during the content update procedure would not be lost once the course's updated .imscc file was re-imported.

If you have some experience or interest in the finer points of automated content updates to Canvas courses from 3rd party sites, I'd welcome sharing of ideas, cautions, and tips here.  

A couple of important constraints in my environment are:  I do have subaccount admin rights, but  I do not have access to the Canvas API, we are blocked from executing custom scripts on our Canvas pages, and I don't think that developing a custom LTI is feasible for our College at this point.

Thank you,

Juan Leon

0 Likes