The integration of the proctoring system with the Sakai LMS is done using the Learning Tools Interoperability (LTI) and the Supervisor SDK (JavaScript proctoring library). First, you need to place the custom SDK code on one of the HTML pages in the LMS, and then configure the LTI in the course module to access proctoring through the LMS.
In the course module, you must have created a Quiz element to which you want to connect proctoring.
Open the “Tests and Quizzes” page and the “Assessment List” tab. Go to the settings of your quiz and open the “Security and Proctoring” section:
Enter a quiz password in the “Add a password to access the assessment” field and click the “Save” button.
Then return to the “Assessment List” tab and copy the URL from your browser’s address bar:
Save the URL for future reference.
Next, you need to place a special proctoring launch script on the course page. You will be redirected to this page after successful user authorization via LTI.
There is nothing here. This is a service page for proctoring.
NOTE: You need to replace "demo.proctoring.app" with the domain of your proctoring server in the script code.
Go to the “Resources” section and click on the “Upload Files” item in the action menu:
Select the “proctoring.html” file from your computer and click on the “Continue” button:
After returning to the previous page, right-click on the “proctoring.html” file name and select “Copy link address”:
Save the URL for future reference.
Go to the "Site Info" → “External Tools”
section and click on the "Install LTI 1.x Tool"
link. Fill in the following fields:
https://demo.proctoring.app/api/auth/sakai?redirect=<proctoring.html>
where After you complete this step, you will see the tool as shown below:
In order to create a link to the external tool in your course you need to go to the "Site Info" → “External Tools”
section and the "Tool Links"
tab. Click on the "Create Tool Link"
button. In the new window fill in the following fields:
Custom Parameters (key=value on separate lines):
| Key | Value |
| -------- | --------------- |
| template | default |
| members | @ |
| url |
Add Site Link: checked
NOTE: “
” should be changed to the full URL of the quiz and “ ” to the quiz password from section 2;
Now, when a test-taker navigates through the proctoring link, they will begin to take an associated quiz according to the proctoring workflow. Clicking on the proctoring link takes an administrator or teacher to the proctoring interface, where they can access all sessions and their reports created by that link.
To connect the integration API with Sakai, you need to load the following configuration with integration parameters under the proctoring system manager:
JSON
{
"id": "<Host_ID>",
"key": "<License_Key>",
"params": {
"webhooks": {
"sakai": {
"authorizer": "lti",
"integrator": "lti",
"consumerKey": "demo",
"consumerSecret": "secret",
"callbackURL": "query.redirect",
"profile": {
"username": "payload.user_id",
"role": "payload.roles.find(v=>/Instructor/.test(v))?'proctor':'student'",
"nickname": "payload.lis_person_name_full",
"lang": "(payload.launch_presentation_locale||'').slice(0,2)",
"group": "['G',payload.context_id,payload.resource_link_id].join('-')",
"referrer": "payload.launch_presentation_return_url",
"labels": "payload.lis_person_contact_email_primary"
},
"register": {
"identifier": "[payload.user_id,payload.context_id,payload.resource_link_id].join('-').replace(/[^A-Za-z0-9_-]+/g,'_')",
"template": "payload.custom_template||'default'",
"subject": "payload.resource_link_title",
"members": "payload.custom_members==='@'?user.group:payload.custom_members",
"url": "payload.custom_url||payload.launch_presentation_return_url",
"code": "payload.custom_code",
"tags": "payload.lis_person_contact_email_primary"
},
"start": true,
"stop": true,
"pause": true,
"submit": true
}
}
}
}
NOTE: The fields "consumerKey" and "consumerSecret" need to be replaced with a randomly generated sequence of characters (Latin letters of different case and numbers, the recommended length is 24 characters); "id" is the ID of the host (if you do not specify it, a new host will be created); "key" is the license key of this host.