Open edX Course Template Builder

Hello, everyone!

I mentioned this in the Merging edX Courses thread, but I figured I’d bring it up as its own thing as well.

A while ago I created the HarvardX Course Template Builder for our project leads. You answer some questions about your course (length, structure, desired template) and it builds you a blank course that you can import to Studio. It really speeds up the process of clicking “New Unit” over and over.

You are welcome to use it as much as you like. My bosses have ok’d releasing this into the wild, including our usual boilerplate (intro pages and a few sample items). The code is available on a GitHub repo if you want to make your own custom version or just see how it works.

2 Likes

This looks really useful, thanks. I know it got its start as a tool for courses destined for edx.org, but of course it can be used for any Open edX site as well (ideally the name would be openedx_course_templater, but I know it’s awkward to change at this stage).

As the functional lead for learning, I am concerned that all courses for our organization meet clear objective quality criteria and feature the same look and feel. When I leave designers to build courses without a template, I get all kinds of crazy. I’ve created a template that is very specific with the same titles for similar components and a library of reusable components. I would not trust an app to do this with my description of what I want. Further, as I’ve already created a template, I just want to be able to copy it and use it to set up a shell for other courses within the specific curriculum. I don’t see any mechanism for this, and this seems beyond strange. Further, as I create courses, I will need to replicatge them so that others can take them and convert them into languages (e.g., for West Africa, French and local languages).

It looks like the only mechanism for this is to export the course, then import it again - though where it goes, is still a mystery to me. It seems that I need to change the date on the course so that it archives - then I need to figure out how to find that course in the achive. This all seems WAY too cumbersome. Could I be the first to develop a fully fleshed out course template and to appreciate the value of this?

I need to recruit a LMS administrator to spend their full days researching the functionality of this system. Trying to lead volunteers in the design and development of courses is a full time job. Is there a way to recruit that from this community? Everyone at the KeelWorks foundation is unpaid, from the executive director on down. Volunteers are often recent graduates needing experience to qualify for jobs. We help with resumes (whoever is advising graduates needs to get a clue) and we allow them to present their work at KeelWorks as a job.

I find it extremely frustrating to find answers on this system. Key word search doesn’t pull up the simplest words. Trying a complex search such as course + template, doesn’t work. It pulls up anything either word and nothing with both. It would help if it were possible to provide feedback on instructions. For example, how to import a course doesn’t mention where to go to find the imported file. tt mentions working with Windows files, but nothing about Mac (don’t they know about Mac?). It is of little use to tell me how to export and import if I can’t find my import.

When you export a course, you save it as a .tar.gz file (a “tarball”) on your hard drive. When you import a course, it goes into a database on the Open edX server, overwriting the course that you import it to. Archiving a course is an entirely different thing, and you don’t need to do that in order to import or export.

If you want to create a new course using an existing one as a template:

  • Export the template as a tarball
  • Make a new blank course
  • Go into the blank course and import the tarball
  • Use the same tarball for each new course

If you want a particular look across your courses, you will probably want to create a theme for your Open edX instance and/or add a course-wide CSS file that you host centrally for all your courses.

If you want to be able to update all your existing courses when your template changes, that’s more difficult (for a lot of reasons). Some of that can be done with content libraries (easier with the new improvements), and some of that can be done with central hosting (like we do with our FAQ files and course-wide JS and CSS).

You probably want to start a new thread if you’re trying to recruit someone.

Thank you. Colin. You raise an interesting point. Though I tend to create many instances of courses, I have never been long satisfied with a version, no matter how perfect it seemed at launch. Subsequent versions always improved. Though others were still using earlier versions, I never had time to update. Your comments make me think there may be ways to plan better at the start for revisions.

I think I mentioned in my earlier post that I created a course called template. It has the same introductory structure. It has the same wording for assignments with a brief intro and directions (our activities are basically a way for learners to teach back what they learned and to debate that for deeper understanding). It has the same general instructions at the start of lessons, the same structure for module endings. I have created library components so they can be added with all common parts of the already written. This cuts two ways, it reduces labor and it supports consistency.

Using the method you described above would work, but the idea of a way to dynamically update content is intriguing. Though, I am not as concerned about style as I am about content. We will be iterating these courses, eventually, maybe many thousands of times.