Skip to main content

Proctoring subsystem for Open edX

Project description

PyPI Travis Codecov Supported Python versions License

This is the exam proctoring subsystem for the Open edX platform.

Overview

Proctored exams are exams with time limits that learners complete while online proctoring software monitors their computers and behavior for activity that might be evidence of cheating. This Python library provides the proctoring implementation used by Open edX.

Documentation

For authoring documentation, see Including Proctored Exams In Your Course.

Installation

To install edx-proctoring:

mkvirtualenv edx-proctoring make install

To run the tests:

make test-all

For a full list of Make targets:

make help

Configuration

In order to use edx-proctoring, you must obtain an account (and secret configuration - see below) with SoftwareSecure, which provides the proctoring review services that edx-proctoring integrates with.

You will need to turn on the ENABLE_SPECIAL_EXAMS in lms.env.json and cms.env.json FEATURES dictionary:

"FEATURES": {
    :
    "ENABLE_SPECIAL_EXAMS": true,
    :
}

Also in your lms.env.json and cms.env.json file please add the following:

"PROCTORING_SETTINGS": {
    "LINK_URLS": {
        "contact_us": "{add link here}",
        "faq": "{add link here}",
        "online_proctoring_rules": "{add link here}",
        "tech_requirements": "{add link here}"
    }
},

In your lms.auth.json file, please add the following secure information:

"PROCTORING_BACKENDS": {
    "software_secure": {
        "crypto_key": "{add SoftwareSecure crypto key here}",
        "exam_register_endpoint": "{add endpoint to SoftwareSecure}",
        "exam_sponsor": "{add SoftwareSecure sponsor}",
        "organization": "{add SoftwareSecure organization}",
        "secret_key": "{add SoftwareSecure secret key}",
        "secret_key_id": "{add SoftwareSecure secret key id}",
        "software_download_url": "{add SoftwareSecure download url}"
    },
    'DEFAULT': 'software_secure'
},

You will need to restart services after these configuration changes for them to take effect.

Email Templates

edx-proctoring provides generic base email templates that are rendered and sent to learners based on changes to the status of a proctored exam attempt. They have been designed such that you may leverage Django template inheritance to customize their content to the proctoring backend. Because proctoring backend plugins are installed in edx-platform, you must create an overriding template in the edx-platform repository. The template path should be emails/proctoring/{backend}/{template_name}. Note that your template can either completely override the base template in edx-proctoring, or it can extend the base template in order to leverage the existing content of the blocks within the base template, particularly if you only need to change a portion of the template.

Debugging

To debug with PDB, run pytest with the -n0 flag. This restricts the number of processes in a way that is compatible with pytest

pytest -n0 [file-path]

License

The code in this repository is licensed under the AGPL 3.0 unless otherwise noted.

Please see LICENSE.txt for details.

How To Contribute

Contributions are very welcome.

Please read How To Contribute for details.

Even though they were written with edx-platform in mind, the guidelines should be followed for Open edX code in general.

Reporting Security Issues

Please do not report security issues in public. Please email security@edx.org.

Getting Help

Have a question about this repository, or about Open edX in general? Please refer to this list of resources if you need any assistance.

Change Log

Unreleased

[2.4.9] - 2020-11-17

  • Fix unbound local variable issue in api.get_attempt_status_summary

  • Added new action to student exam attempt PUT allowing users to reset a completed practice exam.

[2.4.8] - 2020-10-19

  • Created a separate error message for inactive users. Refined the existing error message to only show for network error or service disruption.

[2.4.7] - 2020-10-06

  • Removed the rpnowv4_flow waffle flag to cleanup code

For details of changes prior to this release, please see the GitHub commit history.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

edx-proctoring-2.4.9.tar.gz (571.2 kB view details)

Uploaded Source

Built Distribution

edx_proctoring-2.4.9-py2.py3-none-any.whl (838.9 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file edx-proctoring-2.4.9.tar.gz.

File metadata

  • Download URL: edx-proctoring-2.4.9.tar.gz
  • Upload date:
  • Size: 571.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.5.6

File hashes

Hashes for edx-proctoring-2.4.9.tar.gz
Algorithm Hash digest
SHA256 47e767eeeab01c0ee95e528668d7241fa2ceb398ea0b1ed0b992d7c98ae9bcf4
MD5 5ede8c61cb14f7cec4a2aabb5d3f9978
BLAKE2b-256 790f211009fa0a88f34ded98c0dffe1228439d5fd6f821a07f6fe281a07be4c2

See more details on using hashes here.

Provenance

File details

Details for the file edx_proctoring-2.4.9-py2.py3-none-any.whl.

File metadata

  • Download URL: edx_proctoring-2.4.9-py2.py3-none-any.whl
  • Upload date:
  • Size: 838.9 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.6.1 requests/2.25.0 setuptools/50.3.2 requests-toolbelt/0.9.1 tqdm/4.52.0 CPython/3.5.6

File hashes

Hashes for edx_proctoring-2.4.9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0912183513e7fe2d9e94404ca37b38d5a6232787640f112f7bcb891fac229a3f
MD5 ab7cba1c3f88541080dd6201683ac07d
BLAKE2b-256 07fc3a1377ab3cddaceee0e4afacd80c979d20bf51a8c1e8bbae391c731a01ad

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page