cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
kathleen1
Community Participant

Blueprint with automated copy process and centralized administration business model

Jump to solution

We are a fully online college, with terms occurring every 8 weeks. Our courses are centrally authored, created and administered. Instructors have limited permissions and in most cases are not able to make many edits to a course. Courses do not belong to the instructors, and they are not responsible for any type of setup, or copy.

We have a high level of integration between Canvas and our SIS, keying off unique SIS ID's. Many of our course processes are automated using API's. This includes course shell creation, course content copying, student and instructor enrollment, grade extraction. These processes took well over a year to get into place, and we currently do not have the generous availability of our developers time that we had when we were implementing these integrations.

We are once again reviewing the possibility of using blueprint courses. 

Our current course copy process is as follows:
- Course section records are created in our SIS for the expected number of sections for each course title for a given term - this is done many months before the term starts - in some cases a year ahead of time.
- Empty course shells are created in Canvas, based on the above course section entries in SIS, several months before the course start date. This is done via an API
- Student registration opens shortly after the empty Canvas shells have been created. Students can register online, and will automatically be pushed from SIS into the appropriate empty Canvas shell.
- Each course title has a "Master Template". Three weeks before our term starts, the content from each master template is copied into the appropriate empty Canvas sections. This is done using an API, and dates shift forward based on the start and end date in each master template, and the dates on the upcoming term. Correct content is identified based on the SIS ID of each "Canvas Master Template", matching up to the SIS ID of each of the shells. These follow a strict naming convention, and will not work if SIS ID is mis-formed.
- For the 3 weeks prior to the term start date, no changes can be made to the master templates, since new sections get created and copied from the master template as needed during that time frame.
- Once the term starts, changes can then be made to master templates for the next term. This happens frequently.

In the past, our major concerns around blueprint have been twofold:
- How would all of this work with the API? Some really big questions here - manually copying a blueprint course into an empty shell does not associate the destination course with the blueprint master, so it seems the association would have to occur after the copying process (would that create duplicate files?), or the copying process would need to completely change - using the blueprint API instead of the course content copying API?? Additionally, would either of these routes have any impact on all of our other API automated process such as course enrollment and grade extraction.
- Since we make frequent changes to our master templates every term, it seems we would be looking at creating new master templates every term. This alone would be seem to be prohibitive, but additionally, our current course copy procedure is dependent on a consistent SIS ID naming convention of our "master template". SIS ID's are unique identifiers, so we don't know if/how that could work. Also, we have many courses that are integrated (deep links) with various publishers,etc. The courses are integrated and deep links set up, categorized and added to modules in the master template for each course title, and then copy forward each term - minimizing much of the set up in all sections every term. If we frequently had to create new master templates, the overhead for that would be prohibitive.

I'm wondering if anyone has any blueprint experience with a similar centralized and API automated model, or if anyone very familiar with blueprint could weigh in on the feasibility of using blueprint in our model.

Thanks so much for any info or feedback you can offer 🙂

Kathleen Barringer
Excelsior College

1 Solution

Accepted Solutions

Hello @kathleen1,

If you were to use Blueprints, then in your process, you could stop using the copy step in your process as it would no longer be needed. 

You could use API calls to associate the courses to their respective blueprint course based on the naming conventions that you have set-up.  https://canvas.instructure.com/doc/api/blueprint_courses.html#method.master_courses/master_templates...

Once they are associated, you can then use the API call to begin a migration push to the associated courses, which will copy over the content. https://canvas.instructure.com/doc/api/blueprint_courses.html#method.master_courses/master_templates...

If you want changes to potentially be pushed out during the semester if there are changes made to the template, then you should lock those items so instructors can't change them.  If they aren't locked and an instructor edits the item, then a new sync to push out changes may fail to update that item.

Since you have courses with deep links, you may just want to do some testing with them to ensure they still function properly.  If you haven't had any issues with course copy in the past, then most likely it should still work with blueprints.  

Course enrollments aren't affected by blueprinting.  I'm not sure what is involved in your grade extraction to know if blueprinting would affected.  Again I would recommend testing this, but most likely if you haven't had issues with course copies you will be fine with blueprints.

We un-associate our blueprints before courses start to ensure updates aren't accidentally pushed out to live classes which could potentially cause problems that are difficult to clean-up since you can't just undo a sync.  This is definitely not a fun lesson to learn the hard way.

 

View solution in original post

4 Replies
nwilson7
Community Champion

@kathleen1 We don't do anything that extensive but thought I would weigh in on how we made something similar work.  

We use blueprints mainly to control settings.  When we first launched Canvas, we used the blueprint to give a full course template but faculty voted to have that removed so they had more "creative freedom".  Honestly I think it came from many never went in and changed all the template language so they had stuff like "insert your SLO's here" in their published courses.  Anyway, we still use the blueprint for applying certain settings and when we release the course shells, also about 2 months or so before the course, we add the column in the upload file to apply a blueprint.  We then remove that column immediately so that the blueprint(s) get applied once and then it never syncs them again.  We were finding re-applying the blueprint was overriding certain settings like if an instructor changed their homepage to modules, it would switch back to the page we created.  The other nice thing is since we are only syncing the one time, I then use the same blueprint(s) every term and as we want to make changes to the blueprint as the semester progresses, I just go in and do it and it is ready the next time we roll out courses.  This seems to have worked really well for us.  We do use the same other processes, like our SIS creates all the courses using unique SIS IDs and all our enrollments come from our SIS.

It may be helpful to have two sets of templates in your situation (we originally did this too). Since we were initially syncing thousands of courses to a singular blueprint, we created a copy of that that we could use to manually sync if the need came up.  On that one we just used the built in blueprint tool that comes up when you enable a course as a blueprint to associate the "one-off" courses.  This helped so we were not trying to re-sync several thousand courses to associate one new course.

My experience has been once a blueprint is applied if an instructor in the course interacts with that content, it disconnects that asset from future syncing.  For example, if you had a page that instructors were supposed to change the heading from "Teacher Name" to their name, once they changed it to their name, no future syncs would impact that page.  

I know this is no where near as complex as you but thought I would share.

Good luck with everything!

-Nick

kathleen1
Community Participant

Thanks so much for your reply Nick. It sounds like you have a good system going. I had to laugh about instructors not replacing the template text, like "insert your SLO's here" .

 

I think a big issue is that we want it both ways - we do want to be able to update courses with changed content during the term (that's the major reason we are looking into blueprint), but we also want to be able to make edits that won't be pushed out, and will only apply to the courses for the following term. So with that scenario, I think we would need a new blueprint source course each term. I just don't see a way for it to work without huge re-works of our current system or manual fixes that would be subject to user error.

 

 

Hello @kathleen1,

If you were to use Blueprints, then in your process, you could stop using the copy step in your process as it would no longer be needed. 

You could use API calls to associate the courses to their respective blueprint course based on the naming conventions that you have set-up.  https://canvas.instructure.com/doc/api/blueprint_courses.html#method.master_courses/master_templates...

Once they are associated, you can then use the API call to begin a migration push to the associated courses, which will copy over the content. https://canvas.instructure.com/doc/api/blueprint_courses.html#method.master_courses/master_templates...

If you want changes to potentially be pushed out during the semester if there are changes made to the template, then you should lock those items so instructors can't change them.  If they aren't locked and an instructor edits the item, then a new sync to push out changes may fail to update that item.

Since you have courses with deep links, you may just want to do some testing with them to ensure they still function properly.  If you haven't had any issues with course copy in the past, then most likely it should still work with blueprints.  

Course enrollments aren't affected by blueprinting.  I'm not sure what is involved in your grade extraction to know if blueprinting would affected.  Again I would recommend testing this, but most likely if you haven't had issues with course copies you will be fine with blueprints.

We un-associate our blueprints before courses start to ensure updates aren't accidentally pushed out to live classes which could potentially cause problems that are difficult to clean-up since you can't just undo a sync.  This is definitely not a fun lesson to learn the hard way.

 

View solution in original post

Thanks so much James.