Approach Memo: Studio Copy & Paste for Content Reuse Across Courses

STATUS: IN PROGRESS

Key concept: All levels of the course hierarchy are re-usable in another Open edX course - component, unit, subsection, section

Full user stories here.

 

Deliverable

A lightweight functionality that enables authors to reuse components, units, subsections and sections by sharing directly from one course to another. Reuse functionality will extend to static pages as well. For this first MVP, the content is copied as a one-time action, and any future edits made to either copy won’t be synced. However, it is possible to edit the component independently in its new environment.

 

Benefits:

  • Quick solution to part of the highest majority user story: to enable reuse at all levels of the course

  • Solution temporarily bypasses content libraries/blockstore, in order to create space to fully spec phase 2 

  • Compatible with modulestore courses

  • May replace existing in-course functionality in a simpler, more intuitive way, such as:

  • User learning opportunities:

    • We can test a workflow to learn more authoring UX preferences, which will inform design approaches for phase 2

    • We can learn about how users leverage new functionality to share content, which will inform phase 2 and phase 6

  • Tech learning opportunities:

    • We can start to better understand separation of content and configuration, which will inform phase 4

    • We can begin to work on better ways of managing static assets as content is moved/shared

    • We can explore a new potential authoring plugin interface to implement this

 

Trade-offs:

  • This feature makes one-time copies of the content that are not linked together, meaning that later updates to the original content will not be propagated (as in the Content Library use case).

 

Recommended Approach: 

Build a new feature: Studio Clipboard that enables authors to copy any level of the course hierarchy (component, unit, subsection, section) and paste it into another course.

Full Technical Approach Document here: https://openedx.atlassian.net/wiki/spaces/OEPM/pages/3575611457