openedx / openedx/openedx-core

Making an Open edX Learning Object Repository

Open
#23 3 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
10
Forks
32
Avg merge
2d 17h
Merged PRs (30d)
12

Description

Assume the following:

What would a centralized LOR look like, and what's the easiest way it could work for end users?

Executing in-place

A number of institutions like MIT operate multiple instances and have difficulty managing their content across those instances, leading to various solutions over time. Instead of trying to facilitate content replication across instances, what if we serve content centrally? Not in the sense that there's only ever one server, but in the sense that an organization could choose to manage all their content in one place.

So what could that look like? Some possibilities:

  • An LTI Advantage interface would be a basic requirement.
  • We could expose a separate iframe-based API for the anonymous-user use case. This would drastically lower the burden of using very small pieces of content in random places. We would want to have some API layer over this to do things like iframe-resize messages, so this could likely be encapsulated into a web component.
  • We'd probably need a way to assign things like attempts, hints settings, weighted score, and other settings at the Learning Context level.
  • We may need to create some site <-> learning context mapping so that certain learning contexts only get delivered out of certain domains.
  • The authoring interface is in this new web application.
  • There would be a runtime dependency between LMS instances and one or more LOR instances.
  • Security would be a major concern if we're hosting some shared LOR space. We'd have to make sure frontend code was executed in iframes, and potentially unsafe backend code was executed in sandboxed processes (WASM?).

This could be a pretty jarring authoring experience for course authoring though, particularly if people are bouncing back between the Studio and one or possibly multiple LOR instances.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Begin by reviewing the linked Learning Package and Learning Context issue and the proposed LTI and iframe interfaces; no implementation entry point or acceptance criteria are named. Done would require an agreed LOR design and defined scope, rather than a self-contained code change.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, wasm
Domain
backend-api-design, distributed-systems, security, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.