Advice about DB access while migrating courses to Canvas

51 views
Skip to first unread message

Sean Keesler

unread,
Jan 11, 2012, 11:04:59 AM1/11/12
to Canvas LMS Users
We are interested in exploring Canvas as our LMS. We currently have
about 150 courses that are in our homegrown system that we could copy-
paste into Canvas, but some of our designers are wondering about the
need to have DB access in order to gain efficiencies. I am hesitant to
recommend DB access over API access, but I wonder if anyone has
experience where that has helped.

The perceived need is that as we start moving courses by hand from the
legacy system to Canvas, that we'll need some ability to make "bulk"
changes and that having some access to the data for automation of
these changes will make the process faster. One method might be to do
the initial migration into the open source version (where we will have
more access to do such twiggling) and then export courses to common
cartridge and import them into a cloud-based production instance.

Do the API's provide a way to make bulk changes to course content?

--


Sean Keesler
Business Analyst
eCornell
(607) 330-3208 (office)
(607) 227-0276 (cell)

Cody Cutrer

unread,
Jan 11, 2012, 11:14:13 AM1/11/12
to canvas-l...@googlegroups.com
You can view the current API documentation at https://canvas.instructure.com/doc/api/.  The sections that deal with course content are Assignments, Assignment Groups, Discussion Topics, and External Tools.  In short, the APIs for course content are fairly lean at the moment compared to say the APIs for a user to determine their current status and participate in the course.

Cody Cutrer
Software Engineer
Instructure, Inc.

George

unread,
Jan 11, 2012, 11:00:17 PM1/11/12
to Canvas LMS Users
Sean, if you can get the course content into IMS Common Cartridge
format first somehow, I've found the Canvas import to work pretty
decently (once you get it working). Common Cartridge is one of the
import formats supported in the open source version of Canvas, and it
is rumored that the IMS standards organization is nearing completion
of a Common Cartridge builder of some sort that might help to get your
content into this format. There are some other tools out there that
might help, too (eg: http://www.jisc.ac.uk/whatwedo/projects/transcoder.aspx).
All the major LMSs support some degree of Common Cartridge import, so
it might keep your options open if you want to try any other LMSs
while you're at it, too.

Although there are no command-line or batch import tools in Canvas,
you can then use web automation libraries to upload these packages
into Canvas by programmatically "clicking" through the web browser
user interface prompts. So far, I've tried HTTPClient (http://
hc.apache.org/httpclient-3.x/), HTMLUnit (http://
htmlunit.sourceforge.net/), and Selenium (http://seleniumhq.org/) to
try this. Of these three, I've had the greatest success with Selenium.
I'd recommend starting with Selenium and using the Firefox web browser
plugin to record your click path as you walk through a single course
import, export that as a JUnit test case, and then modify that code to
suit your needs. Or since you're only tinkering with 150 courses, I
suppose doing this manually is an option, too.

I'd also recommend that Instructure introduce some content APIs at
some point in the near future for added fun. :-)

Hope this helps,
-George

On Jan 11, 11:14 am, Cody Cutrer <c...@instructure.com> wrote:
> You can view the current API documentation athttps://canvas.instructure.com/doc/api/.  The sections that deal with
Reply all
Reply to author
Forward
0 new messages