Do you use Git to version course content? Kindly provide some inputs

Background

Recently an issue was opened in the MOOC FLOSS repository with a suggestion to add an “Edit” Button to the course content which will allow the students of a course to contribute improvements to the course content.

This is possible in this course as the course content is stored in a Git repository with the content structure matching that of a Open edX course export. So changes are made by committing to the git repository and then importing the contents in openedx to updated the course.

I am finding it hard to come across any discussion related to this practice of storing course content in Git version control. The only thread I found was this one.

Request for inputs

  1. Do you/your organization use Git for course content?
  2. If you do, what is your workflow like? Have you done some form of linking between the content and source (like the edit button) in your setup?
1 Like

@Felipe @mgmdi Do you think this feature would make a good addition to eduNext’s Hooks Extension Framework?

We’d need to hook into the Learning MFE in order to prevent modifying deprecated code, so we’d welcome your advice on whether this is a good approach or not, and how best to go about it.

If I understand correctly, the goal here is to be able to update the course content once the git repository changes.
For the server side, since the event is not originating at the platform, but outside of it (in the git repo), then I don’t see a need for a filter here.
To connect this, I would make a plugin with an API that can be “notified” when the repo changes. Perhaps with a github action if the repo is in github, or other form of CI in case it is not. The API could in turn get the new olx code and import it.

For the Front end side, the “edit” button, the code with links to the repo and all that, need to be somehow added to the Learning MFE. I would love that we have a mechanism so standardized as a filter for that. However that is not covered by the filters framework yet :sob:.

Now, to the specific of reading code from olx into the course. I remember that this was a historical feature. That authors could create content in Olx, push it, and the content store could read from olx directly. I’m talking ages ago. I don’t know if this is supported still.

Welcome to open edX Arunmozhi!

As mentioned in the post you linked to, there are a number of MIT course authors who use git for version control. As far as I know, none of them ask students for contributions, but it’s a very cool idea.

We stopped using the gitreload tool a year or so ago, replacing it with a plugin called edx-sysadmin, GitHub - mitodl/edx-sysadmin: A plugin for SysAdmin panel of Open edX

The plugin includes an endpoint that you can use with github webhooks. When properly configured, whenever a commit is made to the repository the updated course will be imported into edX.

Peter Pinch
MIT Open Learning

Thank you :slight_smile: I am happy to be a part of the community.

The edx-sysadmin tool looks an ideal solution to this use-case, with a very straightforward workflow. Thank you for sharing this.

@Felipe Thank you for the detailed inputs on different aspects of the workflow. Based on what we have in MOOC FLOSS, @pdpinch’s and your inputs, I understand the ideal workflow basically depends on using either CI or Webhooks to trigger the import and use something like the sysadmin plugin to do the OLX import.

Focusing on the requirement to allow students to contribute back to the course, the edit button seems to be the one thing that is clearly missing. I did a small discovery on how to implement such a feature and have it documented here.

As you mention, the tricky part of that implementation seems to be around the Learning MFE. Based on suggestion from @jill I think introducing a event trigger for “unit rendered” and then using that to introduce an Edit link in the HTML seems to a possible way to solve this, as the units’ content are rendered as iframes in the MFE.

If you can kindly take a look at the proposal (when you find some spare time) and provide some feedback, that would be hugely useful.

@pdpinch do you know if these MIT authors version their courses in OLX format, or something else?

Most use OLX. A few use LaTeX as well.

I wish I could share a repo with y’all, but they are all private.

Interesting. Do you know how they convert from LaTeX to OLX?