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
Do you/your organization use Git for course content?
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?
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 .
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.
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.
@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.