Manager’s Guide

1. System purpose

The OctoProctor proctoring system is designed to validate the results of online assesments when taking tests in learning management systems (LMS) and allows the following:

  • remotely supervision of the test-taker during the assesment;
  • test-taker's identity verification;
  • detect possible violations during the assesment and give a confidence rating;
  • record the session including audio, video from the webcam and desktop;
  • resolve any controversies occuring after the assesment based on the session log.

2. Technical requirements

There are no specific requirements for the administrator's computer. Any contemporary web browser is expected to be used for operation, but Chrome 72+ is recommended.

3. Logging in to the system

In order to log in to the proctoring system you have to open the address of the proctoring system in a web browser and enter your login and password. The user must have the appropriate rights to access the administrator interface.

Log in to the system
Log in to the system
User profile
User profile

After logging in, the top panel of the interface contains the menu buttons for language switching, full screen window expansion, user profile options and the exit button. There is a navigation menu on the left side. And the central section displays a selected partition. To avoid the time display issues, make sure that the time and time zone are correctly set on your computer system settings. In the user profile, you can change the manager's login, password and interface language

4. Configurations management

4.1. Configurations list

Each configuration is an isolated instance of the proctoring system with its own parameters and license. A list of these configurations is presented in the form of a table

The list of configurations
The list of configurations

4.2. Adding a new configuration

There are two options for adding a new entry to the configuration list:

  1. Using the "Add" button (icon +).

Adding a new entry is an entry of the license key and system instance parameters into the configuration list. Configurations are differentiated from each other by host name, one configuration cannot have two different hosts and different configurations cannot have the same host.

The license key contains (encoded):

  • the host name of the system instance;
  • license expiration date;
  • charge unit;
  • volume in charging units

Adding a new configuration
Adding a new configuration

  1. Configuration import via JSON file.

The JSON file for importing the configuration must contain the "key" field and may additionally contain the "params" field with the system instance parameters. For example:

{
 "key": "eyJhbGciOiJS...",
 "params": {
   "webhooks": {
     "jwt": {
       "authorizer": "jwt",
       "integrator": "generic",
       "secretOrKey": "secret",
       "profile": {
         "username": "payload.username",
         "role": "payload.role",
         "nickname": "payload.nickname"
       },
       "register": {
         "name": "payload.name",
         "subject": "payload.subject",
         "url": "payload.url",
         "template": "payload.template"
       }
     }
   }
 }
}

4.3. Integration parameters

The integration parameters define data exchange in between the proctoring system and the LMS. These parameters are specified in the "webhooks" section. The format of the fields is "webhooks..*", where is the name of the integration provider (random text identifier).

Parameters description:

Parameter
Description
webhooks..authorizer
authorization strategy, may have the following values: jwt, lti, plain.
webhooks..integrator
integration provider: generic, lti.
webhooks..secretOrKey
secret key for the integration strategy "jwt".
webhooks..consumerKey
customer key for the integration strategy "lti".
webhooks..consumerSecret
secret key for the integration strategy "lti".
webhooks..callbackURL
redirect page after successful authorisation (e.g, "/"), default value "Referer". Only used when logging in via link, ignored when working via SDK.
webhooks..headers.
custom headers for outgoing requests.
webhooks..profile.
mapping of fields to populate the user's profile, which defines the logic behind the relationship between internal and external fields. External fields are accessible via the "payload" object.
webhooks..register.
mapping of fields to fill in the session parameters, which takes place immediately after the user is authorized and uses the data that is passed along with the user data (the "payload" object).
webhooks..start.
parameters of the handler that is called at session startup and is used to send startup data via the API to the LMS.
webhooks..pause.
handler parameters that are called when the user has been disconnected for more than 2 minutes and are used to send the event data to the LMS via API.
webhooks..stop.
parameters of the handler, which is called when the session is terminated and is used to transmit the termination data via API to the LMS.
webhooks..submit.
parameters of the handler that is called when a session statement is issued or modified and used to send the results to the LMS via the API.

4.4. SDK parameters

The SDK parameters define the settings for the client part of the proctoring system. These settings are specified under "sdk".

Parameters description:

Parameter
Description
sdk.<webcam|screen>.height
maximum image height in pixels.
sdk.<webcam|screen>.width
maximum image width in pixels.
sdk.<webcam|screen>.frameRate
maximum video frame rate.
sdk.<webcam|screen>.bitrate.audio
audio bitrate for video calls in kbps.
sdk.<webcam|screen>.bitrate.video
video stream bitrate for video communication in kbps.
sdk.<webcam|screen>.recorder.audioBitsPerSecond
audio recording bitrate in bit/sec.
sdk.<webcam|screen>.recorder.videoBitsPerSecond
video recording bitrate in bps.
sdk.css.<param>
SDK interface styling parameters, the following variables are supported :
- --background-color: #FFF
- --foreground-color: #000
- --primary-color: #1CA1C1
- --secondary-color: #EBEDF0
- --success-color: #27AE60
- --warning-color: #FFC107
- --danger-color: #FF5C4C
- --info-color: #A8A8A8
- --preview-size: 90px
- --preview-offset-x: 10px
- --preview-offset-y: calc(100vh - 100px)
sdk.iframe.allow (string)
option in IFRAME mode. "allow"
sdk.iframe.sandbox (string)
option in IFRAME mode. "sandbox"

4.5. REST API

Normally such an API is not required as most scripts can be implemented using 'webhooks'. However, in some cases there is a need for direct data access or the ability to change data, in which case the HTTP RESTful API for incoming requests can be useful. The settings for this API are specified in the "rest" section. The format of the settings is "rest..*" where "name" is the name of the API access point (arbitrary text identifier). Incoming request URL format is "/api/rest/:name/:path".

Parameters description:

Parameter
Description
rest..headers.
headers to be contained in the incoming request, if the headings do not match, the request is rejected.
rest..api.
indicates which data model (data collection) is used in the context of the query (e.g. room, user, storage).
rest..api..method
request method: GET, POST, PUT, DELETE.
rest..api..path
relative path of the request, e.g. "/:id". You can specify parameters here by adding a colon before the parameter name.
rest..api..request.
mapping the fields of the incoming request body.
rest..api..response.
mapping of the response body fields to an incoming request.
rest..api..filter
search expression (for methods GET, PUT, DELETE).
rest..api..skip
skip a given number of records at the beginning of the issue (for the method GET).
rest..api..limit
limit the number of records in the output (for the method GET).
rest..api..sort
sort the records in the output (for the method GET).
rest..api..count
counting the number of records found (for the method GET).
rest..api..single
always return only one record, not an array (for the method GET).
rest..api..select
return in the output not all, but only the specified records (for methods GET, PUT, DELETE).
rest..api..populate
filling fields that are references to other data collections (for all methods).

5. Jobs

In the "Jobs" section you can monitor the execution of background tasks, such as collecting statistics on system usage, clearing unnecessary downloaded files, auto-completion and session cleanup. This is actually more system information and is only useful in case of some problems on the server or with integration.

Jobs
Jobs

6. Statistics

The Statistics interface displays the number of active sessions, online users, CPU and RAM usage on the server including all configurations. You can specify the date and time interval for which you want to view the statistics. The top part of the interface displays the maximum values of the indicators that were recorded during the specified time interval. If no date is specified, the data will be displayed for the last hour and the graphs will be updated every minute.

Usage statistics
Usage statistics

7. Journal

The Journal interface displays the log of changes in the proctoring system data. This function is designed to provide transparency and control over user actions in the system.

Journal
Journal

Changes in the “config”, “user”, “room”, “draft” models are saved in the log. If the change is related to a specific user (for example, changed session parameters or logged into the system), then the "actor" of this change is indicated. If the change is not directly related to the user, then "actor" is not specified (for example, when the session status changes). The manager can view the log for all hosts, including the manager's host. The log can be exported to CSV. And using the filter, you can select only the changes of interest from all.