Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Presently, the LMS implements publish and delete signals for Course Runs in the modulestore. The planned behavior for the XSeries MVP is to fire asynchronous, idempotent requests to PUT or DELETE against a Course Run endpoint in the Programs service, triggered by these signals. That endpoint will, internally, use the opaque_keys shared library to derive Course and Org IDs from the Course Run IDs, and insert data in those tables if none yet exist.

With the recent deployment of edx-organizations (part of the automated certificates work), we now have an authoritative source of truth for Organizations hosted in the LMS, so our tools for backpopulation will use this source for Orgs. 

API

General notes

Unless otherwise specified in endpoint details,

...

Example Response: (see GET response)

XSeries MVP Administration Flow (Otto / CAT)

edx-platform Integration

Author-facing and Learner-facing interfaces related to Programs will be exposed via Studio and LMS, respectively. A new feature flag, ENABLE_PROGRAMS, will be introduced, which will toggle the availability of related functionality in these applications. A new Django setting will be introduced, PROGRAMS_API_URL, which will be required to locate the relevant APIs via HTTP when ENABLE_PROGRAMS is set to true.

Studio Integration: Authoring and Administration

Image Removed

The ENABLE_PROGRAMS feature flag will toggle the availability of a link to access a Program Administration UX in Studio. The Program Admin views will be implemented as Image Added

The Program Admin views will be implemented as a JavaScript single-page application (SPA) which will deployed with the Programs service, and included within the Studio Otto UX via script tags. This client application will use the Program HTTP APIs to perform CRUD on Programs and list related entities (Orgs, Courses, Runs), Runs).

edx-platform Integration

In MVP, learner-facing interfaces related to Programs will be exposed as links from the LMS dashboard.  Post-MVP, we may expose authoring views using JavaScript code embedded in Studio.

A new feature flag, ENABLE_PROGRAMS, will be introduced, which will toggle the availability of program-related functionality.

LMS Integration: Learner Registration / Dashboard

...

The ENABLE_PROGRAMS flag will toggle the inclusion of a section in logic on the LMS dashboard that will present a list of all call to the Programs in which the viewing Learner is registered.  The dashboard API to determine which of their currently-enrolled course runs are associated with programs, and draw a link to that program inline with each.  The link will take the learner to a detailed view of that Program, including courses, course runs, and their completion status within each.

The program detail views will be implemented in JavaScript code which will be deployed with the Programs service, and included within the LMS UX via script tags.  This application will use the Program HTTP APIs and the Enrollment API together to indicate in which of the Program's Course Runs the Learner is presently enrolled.

...