Options
All
  • Public
  • Public/Protected
  • All
Menu

Proctoring Service

The Ultra Extension Framework allows an integration to register as a proctoring service for assessments in Learn Ultra in conjunction with Learn's LTI tool framework.

Learn Proctoring Services

Proctoring services are registered in Learn as an LTI tool. Proctoring placements are used to define a launch point to the proctoring tool. Learn follows the IMS Proctoring Specification to communicate with these tools using LTI. Ultra Extension Framework builds on that with APIs to support UI integration into Learn Ultra providing the ability to enable and configure a proctored assessment directly in Ultra courses. This document will go into detail about how to use the APIs to register as a proctoring service with UEF.

UEF

Each UEF proctoring service is linked to its corresponding LTI proctoring placement in Learn by specifying the same unique handle in both places. All proctoring placements must provide a unique handle, and any UEF proctoring service designed to work with that Learn LTI placement must have the same handle.

sendMessage({
  type: 'proctoring-service:register',
  proctoringPlacementHandle: '<your_unique_handle>',
});

Learn Ultra discovers available proctoring services via its own internal API to Learn, and the unique handles provided by Learn are the source of record. UEF proctoring services will only show up in Ultra UI if Learn reports that a proctoring service with the same unique handle is available for use on the system.

Proctoring Service Configuration

A UEF portal has been added to the Assessment settings panel. After proctoring is enabled on the assessment by an instructor, the portal allows a proctoring service to render its own settings. The portal's selector is course.content.assessment.settings.proctoring.panel.settings, and will pass along the courseId and contentId as parameters in the portal:new message:

{
  "courseId": "<course_id>",
  "contentId": "<content_id>"
}

Saving Configuration

When an instructor saves the Assessment settings, a UEF message will be passed to the extension, and Ultra will wait for the response indicating that the save succeeded or failed. When a successful response is received from the integration, the selected proctoring service will be enabled on the assessment.

The message from Ultra will provide a correlationId that will need to be provided when responding to the message, as well as the courseId, proctoringPlacementHandle and contentId of the item being saved. It will also include the enabled state of proctoring:

{
  "data": {
    "eventType": "proctoring-service:settings-saved",
    "correlationId": "<uuid>",
    "courseId": "<course_id>",
    "contentId": "<content_id>",
    "proctoringPlacementHandle": "<unique_placement_handle>",
    "enabled": <boolean>
  }
}

After sending that message to the extension, UEF expects an extension to check its rendered DOM and save off the corresponding settings by whatever mechanism it communicates to its tool implementation (i.e. via a REST call).

The UEF extension must respond with a success or failure message within 5 seconds:

sendMessage({
  type: 'proctoring-service:settings-saved:response',
  correlationId: '<uuid>',
  success: true,
});

sendMessage({
  type: 'proctoring-service:settings-saved:response',
  correlationId: '<uuid>',
  success: false,
  // you may supply a human readable error message to display to the user
  error: 'There was an error saving the configuration',
});

Generated using TypeDoc