Compare commits

..

4 commits

Author SHA1 Message Date
anhefti
3a8d29fe6e SEBSERV-455 for 1.6 2024-03-12 15:54:06 +01:00
anhefti
0c04a358f4 SEBSERV-455 2024-03-07 16:33:30 +01:00
anhefti
b1bd21c424 Merge branch 'downgrade_exam_config' into dev-1.5 2024-03-07 15:31:08 +01:00
anhefti
a096253e6d fix error on downgrade for SEB Settings 2024-03-04 13:10:39 +01:00
1231 changed files with 10551 additions and 26296 deletions

View file

@ -16,50 +16,89 @@ jobs:
maven-build-reporting:
runs-on: ubuntu-latest
steps:
- name: Get short SHA
uses: benjlevesque/short-sha@v3.0
id: short-sha
- name: Store short SHA as environment variable
run: echo $SHA
env:
SHA: ${{ steps.short-sha.outputs.sha }}
- name: Set env
run: echo "TAG_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Test tag name
run: |
echo $TAG_NAME
echo ${{ env.TAG_NAME }}
-
name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v3
-
name: Build Test Reporting
uses: actions/setup-java@v4
name: Set up JDK 8
uses: actions/setup-java@v3
with:
java-version: '17'
java-version: '8'
distribution: 'adopt'
-
name: Cache Maven packages
uses: actions/cache@v4
uses: actions/cache@v3
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
-
name: Build with Maven
run: mvn clean install -e -P let_reporting -Dsebserver-version="${{ env.TAG_NAME }}-${{ env.SHA }}"
env:
sebserver-version: ${{ env.TAG_NAME }}-${{ env.SHA }}
run: mvn clean install -e -P let_reporting
-
name: Reporting
uses: codecov/codecov-action@v3
with:
flags: unittests
name: SEB Server Build
fail_ci_if_error: false
verbose: false
- name: Simplify package name
maven-build-docker:
needs: maven-build-reporting
# Run only on tagging
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
-
name: Get short SHA
uses: benjlevesque/short-sha@v2.1
id: short-sha
-
name: Store short SHA as environment variable
run: echo $SHA
env:
SHA: ${{ steps.short-sha.outputs.sha }}
-
name: Set env
run: echo "TAG_NAME=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-
name: Test tag name
run: |
echo $TAG_NAME
echo ${{ env.TAG_NAME }}
-
name: Checkout repository
uses: actions/checkout@v3
-
name: Set up JDK 11
uses: actions/setup-java@v3
with:
java-version: '11'
distribution: 'adopt'
-
name: Cache Maven packages
uses: actions/cache@v3
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
-
name: Build with Maven
run: mvn clean install -Dmaven.test.skip=true -Dsebserver-version="${{ env.TAG_NAME }}-${{ env.SHA }}"
env:
sebserver-version: ${{ env.TAG_NAME }}-${{ env.SHA }}
-
name: Simplify package name
run: mv target/seb-server-${{ env.TAG_NAME }}-${{ env.SHA }}.jar target/seb-server.jar
- uses: actions/upload-artifact@v4
-
uses: actions/upload-artifact@v3
with:
name: Package
path: target/seb-server.jar
docker-build:
needs: maven-build-reporting
needs: maven-build-docker
# Run only on tagging
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
@ -81,10 +120,10 @@ jobs:
echo ${{ env.TAG_NAME }}
-
name: Set up QEMU
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3.2.0
uses: docker/setup-buildx-action@v2
-
name: Login to DockerHub
uses: docker/login-action@v2
@ -93,7 +132,7 @@ jobs:
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v3
# Install the cosign tool except on PR
# https://github.com/sigstore/cosign-installer
@ -103,7 +142,7 @@ jobs:
uses: sigstore/cosign-installer@main
-
name: Download a single artifact
uses: actions/download-artifact@v4
uses: actions/download-artifact@v3
with:
name: Package
-
@ -137,15 +176,3 @@ jobs:
env:
COSIGN_EXPERIMENTAL: true
TAGS: ${{ steps.meta.outputs.tags }}
cleanup:
needs: [maven-build-reporting, docker-build]
if: |
always()
runs-on: ubuntu-latest
steps:
-
name: Delete Artifacts
uses: geekyeggo/delete-artifact@v5
with:
name: Package

10
Jenkinsfile vendored
View file

@ -14,16 +14,16 @@ pipeline {
stages {
stage('Maven build') {
steps {
withMaven(maven: 'Maven3.9.6') {
withMaven(maven: 'Maven', options: [findbugsPublisher(disabled: true)]) {
sh "mvn clean install -e -P let_reporting"
}
}
}
stage('Reporting') {
steps {
withMaven(maven: 'Maven3.9.6') {
sh "mvn --batch-mode -V -U -e -P let_reporting pmd:pmd pmd:cpd spotbugs:spotbugs"
withMaven(maven: 'Maven', options: [findbugsPublisher(disabled: true)]) {
sh "mvn --batch-mode -V -U -e -P let_reporting pmd:pmd pmd:cpd findbugs:findbugs spotbugs:spotbugs"
}
}
}
@ -50,6 +50,6 @@ pipeline {
}
triggers {
pollSCM('H/5 * * * *')
}
}
}

View file

@ -1,13 +1,22 @@
Safe Exam Browser (SEB) Server
--------------------------------
Master:
.. image:: https://github.com/SafeExamBrowser/seb-server/actions/workflows/buildReporting.yml/badge.svg?branch=master
:target: https://github.com/SafeExamBrowser/seb-server/actions
.. image:: https://readthedocs.org/projects/seb-server/badge/?version=latest
:target: https://seb-server.readthedocs.io/en/latest/?badge=latest
.. image:: https://codecov.io/gh/SafeExamBrowser/seb-server/branch/master/graph/badge.svg
:target: https://codecov.io/gh/SafeExamBrowser/seb-server
.. image:: https://img.shields.io/github/languages/code-size/SafeExamBrowser/seb-server
:target: https://github.com/SafeExamBrowser/seb-server
Development:
.. image:: https://github.com/SafeExamBrowser/seb-server/actions/workflows/buildReporting.yml/badge.svg?branch=development
:target: https://github.com/SafeExamBrowser/seb-server/actions
.. image:: https://codecov.io/gh/SafeExamBrowser/seb-server/branch/development/graph/badge.svg
:target: https://codecov.io/gh/SafeExamBrowser/seb-server
.. image:: https://img.shields.io/github/last-commit/SafeExamBrowser/seb-server/development?logo=github
:target: https://github.com/SafeExamBrowser/seb-server/tree/development
The Safe Exam Browser Server web application simplifies and centralizes the configuration of Safe Exam Browser clients for exams. It interacts with a learning management or exam system for setting up and conducting e-assessments with Safe Exam Browser. It also improves security by allowing to monitor connected Safe Exam Browser clients in real time during e-assessments.
@ -23,7 +32,7 @@ What is Safe Exam Browser Server (SEB Server)?
While the interaction with SEB is well known in Learning Management Systems (LMS) like `Open edX <https://open.edx.org/>`_,
`Moodle <https://moodle.org/>`_ etc. the SEB Server is an entirely new component to set up secured online exams.
It interacts with the assessments system/LMS as well as with SEB on exam clients. It supports exam scenarios on student owned devices (BYOD)
It interacts with the assessments system/LMS as well as with SEB on exam clients.It supports exam scenarios on student owned devices (BYOD)
and on managed devices.
SEB Server is a modern webservice with a REST API and a GUI service on top of it. SEB Server is written in Java and uses Docker for installation and setup.
@ -31,7 +40,7 @@ SEB Server is a modern webservice with a REST API and a GUI service on top of it
SEB Server provides a range of basic functionalities:
- Built-in institutional multitenancy
- Linking of multiple Learning Management Systems (LMS). Currently supported LMS: `Open edX <https://open.edx.org/>`_, `Moodle <https://moodle.org/>`_, `OLAT <https://www.olat.org/>`_, `ANS <https://ans.app/>`_
- Linking of multiple Learning Management Systems (LMS). Currently supported LMS: `Open edX <https://open.edx.org/>`_, `Moodle <https://moodle.org/>`_, `Open Olat <https://www.openolat.com/>`_, `ANS <https://ans.app/>`_
- Accessing the Course/Exam-API of a linked LMS to import a courses or exams for managing with SEB Server
- Creation and administration of SEB Client Configurations that can be used to startup a SEB and that contains SEB Server connection information for a SEB Client
- Creation and administration of SEB Exam Configurations that can be bound to an imported Exam to automatically configure a SEB Client that connects to an exam that is managed by SEB Server
@ -46,52 +55,74 @@ a more automated and secure setup for high-stake exams.
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-1.5/docs/images/setup_1.png
SEB Server Version 2.0 is out
SEB Server Version 1.5 is out
-------------------------------
With the new SEB Server release, SEB Server makes a major version change from 1.x to 2.x. This is mainly because of the new
Screen Proctoring feature for SEB integrated into SEB Server and the removal of live proctoring with Zoom and Jitsi Meet
that is no longer available for SEB Server version 2.x.
For a migration from a running SEB Server setup with version 1.x to new major version 2.0, please also read the `migration guide <https://seb-server-setup.readthedocs.io/en/latest/major-migration.html>`_.
New Features:
- Screen Proctoring with SEB and SEB Server. Can be enabled and configured for an Exam. SEB takes and sends screen shots plus Metadata to SEB Server. With monitoring and search functionality.
- Moodle Integration: SEB Server Exam creation from Moodle site with new SEB Server Moodle Plugin 2.0.
- Moodle Integration: Auto Login to SEB Server monitoring for Moodle Teacher with dedicated privileges. Comes with Moodle Plugin 2.0
- Exam Test Run. There is now the possibility to apply an test run for an Exam that is in coming up status. Exam is then in "Running" like state and SEB clients can connect as well as supporter can monitor the exam.
- Security: New Application Signature Key (ASK) integration within SEB Server exams and monitoring
- Security: Minimum SEB Client version tracking within SEB Server monitoring
- LMS Integration: Better Moodle integration with new `SEB Server Moodle Plugin <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_
- Exam Maintenance: Added new SEB grouping functionality for Exam (and Exam Template) and Monitoring to be able to view/manage SEB Clients within defined groups (IP range, SEB client OS, ...)
- Exam Maintenance: Batch actions for archive and delete exams
- Exam Maintenance: Added SEB log export for finished and archived exams
- Exam List: Filter for unavailable exams
- Exam Monitoring: Added force SEB Lock Screen feature to be able to send lock screen instruction to SEB client as well as release such from SEB Server
- User Account: Added "Change Password" function also in User Account edit page
Improvements:
- Improvement of user ID resolution and handshake completion for SEB connecting with SEB-Server. SEB client now sent as much client information as possible and finish up the SEB Server handshake more quickly.
- Connection Configuration Improve (or remove) Date Filter.
- DB Migration Table charset fix for all tables, set to "utf8mb4_general"
- New SEB Settings in SEB Server GUI for version 2.0
- Table sort direction selection and table column length selection stick to User Session
Bugfixes:
- Missing Pending Notification Page Update in Monitoring Detail view
- Importing an exam without template throws error
- LMS name resolving sometimes gets "null" values for names
- New Ready State is not involved within the Filter numbers
- Page of ASK Grants in Exam has table selection action problems
- Sorting of start and end-date in Assessment Tool Lookup not working as expected
- Running Exam without LMS is greyed out without reason
- LMS Setup Lookup: Improved parallel data fetch of course and quit data from LMS and added notifications to the UI if background job is still fetching data from LMS in the background
- Zoom Proctoring: Adapted to new Zoom API's, SDK's and Apps
- Zoom Proctoring: Gallery view works now also in the proctoring web-client of the SEB Server
- Open Olat Integration: Added propagation of quit-link and quit-password for exam to Open Olat within the SEB restriction
- Monitoring: Improved performance for active monitoring
- Migration: Improved migration and added database table-char-set check
- SEB Settings: Added various new SEB Settings within the SEB Server database and Configuration Template (not yet in Exam Configuration UI)
- Added Tool-Tips also for list filters / various text and minor UI improvements
Bugfixes:
- Exam Configuration status change to "Archived" is possible for up-coming exams
- Fix handling of invalid SEB Server monitoring UI sessions
- Open Olat LMS Setup access deadlock (serialized token request for LMS Template)
- Fixed exam update background process to update sometimes exams from LMS where nothing changed on LMS side
- Zoom proctoring multiplied participants on room change
- SEB Restriction warning on Exam seems to be not present when restriction fails
- Certificate cannot be imported
- Configuration Template: Filtering column "View": Paging in attribute list shows only one page
- Exam Configuration export SEB Settings should export current settings
- Exam: Name and Date filter does not work correctly
- Export Exam Connection Configuration, special characters in exam name cut of file name
- Zoom proctoring gallery view seems not to work because of cross-origin settings
Docker-Image:
SEB - SEB Server Compatibility
------------------------------
The table below shows available and upcoming SEB client versions that has SEB Server integration support and are compatible with particular
SEB Server versions. There is an entry for each platform with a beta or testing release date and an official release date.
SEB Server version. There is an entry for each platform with a beta or testing release date and a official release date.
**SEB Server Version 2.0.x**
**SEB Server Version 1.5.X**
.. csv-table::
:header: "Platform / OS", "Release Version"
:header: "Platform / OS", "Beta/RC Version", "Release Version"
"SEB Client for iOS", "3.4 (3.3.3 without screen proctoring)"
"SEB Client for Mac", "3.4"
"SEB Client for Windows", "3.8"
"SEB Client for iOS", "ASK: 3.3", "3.1 (ASK: 3.3)"
"SEB Client for Mac", "ASK: 3.3pre", "3.1 (Zoom: 3.2/ASK: 3.3)"
"SEB Client for Windows", "--", "3.5.0 "
**SEB Server Version 1.4.X**
.. csv-table::
:header: "Platform / OS", "Beta/RC Version", "Release Version"
"SEB Client for iOS", "3.1 Beta", "3.1 (Zoom: 3.2) "
"SEB Client for Mac", "3.1/3.2 Preview", "3.1 (Zoom: 3.2)"
"SEB Client for Windows", "--", "Version 3.3.2 - 3.4.0"
Install SEB Server
------------------
@ -103,62 +134,7 @@ Getting started with SEB Server
For a complete SEB Server user guide please go to `SEB Server User Guide <https://seb-server.readthedocs.io/en/latest/#>`_
Project Background
------------------
The SEB Server is currently build and maintained by `ETH Zürich <https://ethz.ch/en.html>`_ and by the `Swiss MOOC Service <https://www.swissmooc.ch/>`_ that is founded by leading Swiss universities EPFL, ETH, SUPSI, USI and HES-SO. The Swiss MOOC Service was financially supported from 2018-2020 by the `Swissuniversities´ P5 program <https://www.swissuniversities.ch/themen/digitalisierung/p-5-wissenschaftliche-information>`_.
Contributing to SEB Server
---------------------------
We want to make contributing to this project as easy and transparent as possible, whether it's:
- Give us a star
- Reporting a bug
- Submitting a fix
- Proposing new features
- Becoming a SEB Alliance member
We use github to host code, to track issues and feature requests, as well as accept pull requests.
And we use `Github issues <https://github.com/SafeExamBrowser/seb-server/issues>`_ to track public bugs.
Report a bug by [opening a new issue]();
**Before enter a new bug-report, ensure the bug was not already reported**
Please fill and provide all the information suggested by the bug-report template
Great Bug Reports tend to have:
- A quick summary and/or background
- Steps to reproduce
- Be specific and give sample code if you can. Can also be Pseudocode.
- What you expected would happen
- What actually happens
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
**We Use Git-Flow for Code Contributions**
Pull requests are the best way to propose changes to the codebase. We use `Github Flow <https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow>`_. We actively welcome your pull requests:
1. Fork the repo and create your branch from `development`. The development branch always has the newest changes.
2. If you've added code that should be tested, add tests.
3. If you introduce new API also add clear documentation.
4. Ensure the test suite passes.
5. Make sure your code lints.
6. Issue that pull request!
**Use a Consistent Coding Style**
Have a close look to the existing code stile that is used within SEB Server and adapt to it as close as possible.
We reserve the right to adapt contributed code to the code style matching SEB Server code style before or after a pull request.
**Any contributions you make will be under the Mozilla Public License Version 2.0**
In short, when you submit code changes, your submissions are understood to be under the same `Mozilla Public License <https://github.com/SafeExamBrowser/seb-server?tab=MPL-2.0-1-ov-file>`_ that covers the project. Feel free to contact the maintainers if that's a concern.
**Becoming a SEB Alliance member**
The `SEB Alliance <https://www.safeexambrowser.org/alliance/members.html>`_ is the body which sustains ongoing funding of the Safe Exam Browser open source project to continue its maintenance, development and support activities. ETH Zurich provides the infrastructure for the management and the software engineering of the SEB project and appoints an alliance manager who will provide administrative support to the SEB Alliance, and ensure the day-to-day running of the SEB Alliance. ETH Zurich leads the Alliance and offers different contribution levels to parties interested in the evolution of the SEB open source project.
More information about `joining <https://www.safeexambrowser.org/alliance/join.html>`_ the Alliance is available in our `benefits <https://www.safeexambrowser.org/alliance/benefits.html>`_ and `documents <https://www.safeexambrowser.org/alliance/documents.html>`_ section.

15
codecov.yml Normal file
View file

@ -0,0 +1,15 @@
coverage:
precision: 2
round: down
range: "30..70"
status:
project:
default:
threshold: 5%
patch: off
github_checks:
annotations: false
fixes:
-"::seb-server/"

View file

@ -1,4 +1,4 @@
FROM eclipse-temurin:17-jre
FROM openjdk:11-jre-stretch
ENV SERVER_PORT="8080"
ENV JMX_PORT=
@ -38,4 +38,4 @@ CMD if [ "x${JMX_PORT}" = "x" ] ; \
--spring.config.location=file:/sebserver/config/spring/,classpath:/config/; \
fi
EXPOSE $SERVER_PORT $JMX_PORT
EXPOSE $SERVER_PORT $JMX_PORT

View file

@ -18,7 +18,7 @@ Once a certificate has been uploaded to SEB Server it can be used for various ot
One feature that also comes with the SEB Server version 1.2 is the ability to encrypt a connection configuration with a certificate
that has the right purpose (Identity) to do so. If you need this feature already, please have a look at: :ref:`connection-configuration-label`.
Other planed features are the import of certificate encrypted exam configurations as well as to embed certificates within an exam configuration
to allow certificate pinning between SEB and LMS/Assessment Tool.
to allow certificate pinning between SEB and LMS.
There is currently certificate upload support for two version of certificates:
@ -39,7 +39,7 @@ This are usually password protected certificates in different file-formats. SEB
.. image:: images/certificates/cert_list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/certificates/cert_list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/certificates/cert_list.png
Use Cases

View file

@ -16,7 +16,7 @@ a specific template by name for example.
.. image:: images/config_templates/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/config_templates/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/config_templates/list.png
To create a new exam configuration template, use the "Add Configuration Template" action from the right action pane. You will see the creation form
with a name and description for the new template. At least a unique name is mandatory, and the description is optional.
@ -32,7 +32,7 @@ SEB Server. The name of an attribute is composed of the internal attribute name
.. image:: images/config_templates/templateView.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/config_templates/templateView.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/config_templates/templateView.png
The type of the attribute defines the input field type and cannot be changed in any way. The view defines the tab on which the settings attribute is placed.
And the group defines the named group where a settings attribute belongs to.
@ -59,7 +59,7 @@ use the "View Configuration Template" action from the right action pane.
.. image:: images/config_templates/templateAttribute.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/config_templates/templateAttribute.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/config_templates/templateAttribute.png
Back in the exam configuration template view you are able to create a new SEB exam configuration directly from this template by using the "Create Exam Configuration"
action from the right action pane. The application will present you a creation dialog within a pop-up where you can define a name and description for the
@ -67,7 +67,7 @@ new SEB exam configuration. At least a unique name is mandatory.
.. image:: images/config_templates/createConfig.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/config_templates/createConfig.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/config_templates/createConfig.png
After defining a name and description for the new SEB exam configuration you can click on "OK" to do so, and the application will show you the new created
SEB exam configuration in the usual place.

View file

@ -21,7 +21,7 @@ This feature is currently in an experimental state and may be changed and / or e
An new feature since SEB Server version 1.2 is the integrated certificate store where an administrator is able to upload and register
certificates. The certificates can then be used to encrypt and secure a connection configuration for example. Or as planned for another
SEB Server release, to embed into an exam configuration for SEB to allow certificate pinning on SEB - LMS/Assessment Tool communication.
SEB Server release, to embed into an exam configuration for SEB to allow certificate pinning on SEB - LMS communication.
.. toctree::

View file

@ -34,7 +34,7 @@ of the "Configuration" section on the menu on the left hand side.
.. image:: images/connection_config/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/connection_config/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/connection_config/list.png
The list shows the name, the date of creation and the status of the connection configurations in a column. With SEB Server administrator role
also an institution column is shown because a SEB Server administrator is able to see all connection configurations of all institutions.
@ -46,7 +46,7 @@ or remove selection to hide all fallback related attributes.
.. image:: images/connection_config/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/connection_config/new.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/connection_config/new.png
Short description of all attributes of a connection configuration:
@ -67,8 +67,7 @@ Short description of all attributes of a connection configuration:
A connection configuration may also contain and define a fallback strategy that takes place when SEB Server service is not available while
a SEB client tries to connect to the SEB Server.
.. note::
.. note::
A fallback case only takes place when SEB client is within the connection process (handshake) with the SEB Server and the SEB Server service is unavailable.
If a SEB client is already connected to the SEB Server and the user has started an exam, the SEB will just proceed with the exam even
when the SEB Server connection is (temporarily) unavailable.
@ -92,30 +91,6 @@ configuration settings in the following ways:
- Connection configuration with "Starting an Exam" setting and fallback strategy:
Show warning with options "retry", "fallback" (load Fallback URL) and "quit".
**New: Exam Selection for dedicated Client Configurations**
This is a new feature since SEB Server Version 1.6. and allows to select existing exams within a Connection Configuration to reduce the possible
Exams that SEB presents to a student when a Connection Configuration is loaded by SEB that has no dedicated Exam preselection (downloaded from the Exam view)
In this case SEB always presented all currently running Exams from the SEB Server to the student for selection. With this
feature it is now possible to reduce this choice for a specific Client Configuration by selecting the Exams that shall be shown to a student
when SEB loads the respective Connection Configuration.
.. note::
Since the Exam selection is stored with SEB Server and not exported to an Connection Configuration it is also possible
to change the Exam selection for a certain Connection Configuration after the Connection Configuration was downloaded.
SEB will always present the running exams exclusively from actual Exam selection from Connection Configuration on the SEB Server.
If an Connection Configuration has no Exam selection all still running exams are presented to the student as it was before.
To select dedicated Exams for a Connection Configuration you can go to the Connection Configuration edit view and select
these exams with the multi selector. It is also possible to filter the list by typing in the letters containing in the Exam name of interest.
.. image:: images/connection_config/examSelection.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/connection_config/examSelection.png
Use Cases
---------

View file

@ -1,7 +1,7 @@
Prepare Exam
=============
This chapter is about setting up and prepare a already imported exam on SEB Server. If you don't have imported a course or quiz from LMS/Assessment Tool
This chapter is about setting up and prepare a already imported exam on SEB Server. If you don't have imported a course or quiz from LMS
as an exam into SEB Server, please see the previous chapter for detailed guidance about hot to import an exam.
To find a specific exam that has already been imported, go to "Exam Administration" / "Exam" on the navigation menu on the left hand side to
@ -9,12 +9,12 @@ see a list of all available exams. You are able to filter and sort the list as u
.. note::
The Date-Filter above "Start-Time" is usually set to the date one year before now or to some other default date in the past
and is applied to the end-date of the exam or quiz. The list shows all running or up-coming exams and only hides finished or
and is applied to the end-date of the exam or quiz. The list shows all running or up-comming exams and only hides finished or
archived exams that has an end-date before the Date-Filter date.
Double click on the list entry of the exam or select the list entry and use the "View Exam" action of the action pane on the right hand side to
open the exam in the detail view. Within the detail view of the exam you are able to edit the exam attributes, apply SEB exam configuration and
indicators for monitoring as well as defining details of the SEB restriction if this feature is available from the LMS/Assessment Tool.
indicators for monitoring as well as defining details of the SEB restriction if this feature is available from the LMS.
.. note::
If an exam is already running but is missing some essential setup, this is noted by the system. In the exam detail view the system
@ -23,17 +23,17 @@ indicators for monitoring as well as defining details of the SEB restriction if
.. image:: images/exam/examNotReady.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examNotReady.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examNotReady.png
At the beginning of the page - if there is no note - you see all the details of the exam.
- **Name**: Is the name of the course, defines on the LMS/Assessment Tool
- **LMS/Assessment Tool Setup**: Is the name of the LMS/Assessment Tool Setup on the SEB Server from which the course was imported
- **Start-Time**: Is the date and time when the exam is starting. This is defined on the LMS/Assessment Tool
- **End-Time**: Is the date and time when the exam ends. This is defined on the LMS/Assessment Tool
- **LMS/Assessment Tool Exam Identifier**: Is the identity of the course on the LMS/Assessment Tool (external identifier/primary key)
- **LMS/Assessment Tool Exam URL**: Is the start URL of the course/exam
- **Name**: Is the name of the course, defines on the LMS
- **LMS Setup**: Is the name of the LMS Setup on the SEB Server from which the course was imported
- **Start-Time**: Is the date and time when the exam is starting. This is defined on the LMS
- **End-Time**: Is the date and time when the exam ends. This is defined on the LMS
- **LMS Exam Identifier**: Is the identity of the course on the LMS (external identifier/primary key)
- **LMS Exam URL**: Is the start URL of the course/exam
To edit the SEB Server relevant attributes you can use
the "Edit Exam" action from the action pane on the right hand side to switch to the exam edit mode. In the exam edit mode you can modify
@ -70,22 +70,12 @@ the pop-up shows the description and the status of the selected configuration.
.. image:: images/exam/addExamConfig.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/addExamConfig.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/addExamConfig.png
There is also the possibility to encrypt the SEB exam configuration by a password. This is done before the SEB configuration is send to a connecting
SEB client. Since in the most cases the SEB client connections are over HTTPS / TSL there is already a good protection in place and an
SEB client. Since in the moste cases the SEB client connections are over HTTPS / TSL there is alrady a good protection in place and an
additional encryption of the SEB exam configuration is not recommended. Anyway, if you decide the use the additional password encryption, the SEB
client that receives the encrypted SEB exam configuration will prompt the user for the password to proceed and connect to the LMS/Assessment Tool.
With SEB Server Version 1.6 it is possible to change the Exam Configuration encryption password of an applied Exam Configuration.
The new action "Edit Encryption Password" can be used to open up the original apply dialog and to change the password:
.. note::
The Encryption Password for applied Exam Configuration can only be changes when there are no active SEB clients available for the exam.
.. image:: images/exam/editEncryptionPassword.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/editEncryptionPassword.png
client that receives the encrypted SEB exam configuration will prompt the user for the password to proceed and connect to the LMS.
.. note::
If you need to use the same SEB exam configuration for different exams, you can just make a copy of a SEB exam configuration that is already used
@ -96,19 +86,19 @@ The new action "Edit Encryption Password" can be used to open up the original ap
generate a copy of the original SEB exam configuration with the new name and description and will lead you to the details page of the copy configuration.
Click the "OK" button on the pop-up to apply the selected SEB exam configuration. You will see the applied SEB exam configuration in the list.
If the automated SEB restriction feature is supported by the LMS/Assessment Tool of the exam, the application of a SEB exam configuration will automatically update
If the automated SEB restriction feature is supported by the LMS of the exam, the application of a SEB exam configuration will automatically update
the SEB restriction details with the generated Config-Key. See :ref:`sebRestriction-label` for more information.
.. image:: images/exam/examConfig.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examConfig.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examConfig.png
To just generate the Config-Key for testing purposes or to manually apply it on an LMS/Assessment Tool without the automated SEB restriction feature you can
To just generate the Config-Key for testing purposes or to manually apply it on an LMS without the automated SEB restriction feature you can
use the "Export Config-Key" action to generate the key. The Config-Key is presented by a pop-up and can be selected and copied to the clip-board.
For more information about the Config-Key its purpose and use, please visit the `SEB documentation <https://www.safeexambrowser.org/developer/seb-config-key.html>`_.
To remove an already applied SEB exam configuration from the exam, select the SEB exam configuration in the table and use the "Delete Exam Configuration"
action form the right action pane. If the automated SEB restriction feature is supported by the LMS/Assessment Tool of the exam, the removal of a SEB exam configuration will
action form the right action pane. If the automated SEB restriction feature is supported by the LMS of the exam, the removal of a SEB exam configuration will
automatically update the SEB restriction details and remove the Config-Key form the restriction details. See :ref:`sebRestriction-label` for more information.
Once you have removed a SEB exam configuration from the exam you are able to apply another one to the exam.
@ -162,7 +152,7 @@ your institution use the type information of the exam to set them into context.
**Archive an exam**
Since SEB Server version 1.4 it is possible to archive an exam that has been finished. An archived exam and all its data is still available
on the SEB Server but read only and the exam is not been updated from the LMS/Assessment Tool data anymore and it is not possible to run this exam again.
on the SEB Server but read only and the exam is not been updated from the LMS data anymore and it is not possible to run this exam again.
This is a good use-case to organize your exams since archived exam are not shown in the Exam list with the default filter anymore. They are
only shown if the status filter of the exam list is explicitly set to Archived status. An they are shown within the new "Finished Exam"
@ -170,10 +160,10 @@ section in the monitoring view.
.. image:: images/exam/archiveExamsFilter.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/archiveExamsFilter.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/archiveExamsFilter.png
This is also a good use-case if you want to remove an LMS/Assessment Tool and LMS/Assessment Tool Setup but still want to be able to access the exams data on the SEB Server.
In this case you can archive all exams from that LMS/Assessment Tool Setup before deactivating or deleting the respective LMS/Assessment Tool Setup.
This is also a good use-case if you want to remove an LMS and LMS Setup but still want to be able to access the exams data on the SEB Server.
In this case you can archive all exams from that LMS Setup before deactivating or deleting the respective LMS Setup.
To archive a finished exam you just have to use the "Archive Exam" action on the right action pane of the exam view:
@ -196,7 +186,7 @@ If you have "Exam Administrator" privileges you are able to entirely delete an e
.. image:: images/exam/deleteExam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/deleteExam.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/deleteExam.png
- Within the delete exam dialog you see a list of a dependencies that also will be deleted. Please check them carefully before deletion.
- Use the below action to either delete the exam or cancel the action and go back to the exam view.

View file

@ -24,7 +24,7 @@ for this feature.
.. image:: images/exam/examASK.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASK.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASK.png
Within this settings page you can enable or disable the feature any time also during a running exam. On the exam page you can see if the feature is enabled
when the shield-icon is not strike-through.
@ -36,7 +36,7 @@ ASK for the same build.
.. image:: images/exam/examASKedit.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKedit.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKedit.png
In the following list you can see all APK that has been sent to the SEB Server by connected SEB clients. For a particular ASK you can also see
how many SEB Clients has been sent this ASK and has the same signature.
@ -47,7 +47,7 @@ below. You can give a name for the grant and save the grant by using "OK" action
.. image:: images/exam/examASKgrant.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKgrant.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKgrant.png
You see all granted ASKs within the second list with the ASK hash and the name that was given on grant. All explicitly granted ASKs from that list are
considered trusted for the exam. And future SEB client connection that connects with one of the ASKs from this list are granted. All SEB clients that
@ -65,7 +65,7 @@ SEB connections are marked red and with the tag "- ASK Grant Denied" after the s
.. image:: images/exam/examASKMonitoring1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKMonitoring1.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKMonitoring1.png
In the detail view of a SEB client connection you can see this too and you are able to apply a grant for a denied APK afterwards by using the
"Grant App Signature Key" action from the right action pane. This will open a pop-up with the ASK hash and an input field for the name of the
@ -73,11 +73,11 @@ grant.
.. image:: images/exam/examASKMonitoring2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKMonitoring2.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKMonitoring2.png
.. image:: images/exam/examASKMonitoring3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examASKMonitoring3.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examASKMonitoring3.png
After you have granted a unknown ASK, the grant is also applied to the respective SEB connection and to all following SEB connections that

View file

@ -33,7 +33,7 @@ Client groups are located on an Exam setup page after the indicators at the end
.. image:: images/exam/examClientgroupAdd.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupAdd.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupAdd.png
To add a new SEB Client Group use the respective action from the right action pane. You will be presented with the SEB Client Group edit page
where you are able to give the new SEB Client Group a name and choose a type of the client group that you want to create.
@ -45,7 +45,7 @@ the group type. With the additional, specific inputs, the SEB Client Group can b
.. image:: images/exam/examClientgroupIP.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupIP.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupIP.png
For the IP range group type you can give a valid IP range defined with a start IP address and an end IP address. This two inputs are mandatory
and must be valid IPv4 addresses. The range must be a valid range and will be inclusive on the IP match (range-start >= IP <= range-end).
@ -54,7 +54,7 @@ For the SEB OS grouping type you have to choose the OS type from the given types
.. image:: images/exam/examClientgroupWin.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupWin.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupWin.png
If you have finished up your SEB Client Group definition you can save it with the "Save" action from the right action pane or cancel the modifications and
go back to the Exam page. You will see your created SEB Client Groups within its respective section on the Exam page and are able to edit them again, or delete
@ -62,7 +62,7 @@ a certain SEB Client group from the list.
.. image:: images/exam/examClientgroups.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroups.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroups.png
Monitoring with SEB Client Groups
---------------------------------
@ -73,7 +73,7 @@ depending on what group(s) a particular SEB applies to.
.. image:: images/exam/examClientgroupMonitoring1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupMonitoring1.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupMonitoring1.png
With the "Client Group Filter" on the right action pane, you are able to show/hide individual groups. With this filtering you can adapt your monitoring view
for specialized monitoring view, to only see SEB client connection from one particular room for example or of one particular client OS.
@ -86,4 +86,4 @@ for specialized monitoring view, to only see SEB client connection from one part
.. image:: images/exam/examClientgroupMonitoring2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examClientgroupMonitoring2.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examClientgroupMonitoring2.png

View file

@ -8,7 +8,7 @@ Overview
An exam configuration defines all the SEB settings for an exam. A SEB client that is connecting to SEB Server
and an exam defined by the SEB Server is downloading this exam configuration from SEB Server and reconfigure itself before accessing the
exam on the learning management system (LMS/Assessment Tool) and present it to the user.
exam on the learning management system (LMS) and present it to the user.
.. note::
For more information and detailed description of the SEB settings, see `SEB Configuration <https://www.safeexambrowser.org/windows/win_usermanual_en.html#configuration>`_.
@ -26,7 +26,7 @@ filter use the clear symbol right to the lens symbol. See :ref:`gui-label` for m
.. image:: images/exam_config/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/list.png
To view details of a specific exam configuration either double-click on a list entry or select a list entry and use the "View Exam Configuration"
action from the right action pane. In the detail view all general settings are shown and also a list of exams that uses this exam configuration.
@ -46,7 +46,7 @@ is assigned to an exam, the status changes automatically to "In Use" and the SEB
.. image:: images/exam_config/view.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/view.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/view.png
An exam configuration has a general settings part (like other domain objects has within SEB Server) that defines the name, description and status
of the exam configuration that are used to maintain the exam configurations SEB Server internally. And an exam configuration has, separated from
@ -64,7 +64,7 @@ while also publish them to exams that uses this exam configuration.
.. image:: images/exam_config/settings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/settings.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/settings.png
.. note::
Changes in SEB settings must be published to be available on exports, exams, or other uses. Before publishing they are not
@ -86,14 +86,14 @@ from the right action pane in the SEB settings view. This will start a usual bro
of the file of an exam configuration is "SEBExamSettings.seb".
SEB Server supports also the `SEB Config-Key <https://safeexambrowser.org/developer/seb-config-key.html>`_ that is used to validate the SEB configuration
on the LMS/Assessment Tool and adds a higher security level to the exam. This is supported if the specific type of LMS/Assessment Tool supports the automated SEB restriction feature. Anyways
on the LMS and adds a higher security level to the exam. This is supported if the specific type of LMS supports the automated SEB restriction feature. Anyways
sometimes it may be needed to manually extract the `SEB Config-Key <https://safeexambrowser.org/developer/seb-config-key.html>`_ for an exam configuration.
Therefore, one can use the "Export Client-Key" action from the right action pane to generate the Config-Key from the actual saved SEB settings revision
of the exam configuration. The key will be presented by a pop-up dialog where it can be copied for further use.
.. image:: images/exam_config/config_key.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/config_key.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/config_key.png
Batch Actions
@ -110,7 +110,7 @@ For list multi-selection documentation see :ref:`List Multi-Selection <listmulti
.. image:: images/exam_config/batch-actions.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/batch-actions.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/batch-actions.png
@ -121,7 +121,7 @@ With this batch action you are able to change the state of all selected exam con
.. image:: images/exam_config/batch-actions_statechange.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/batch-actions_statechange.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/batch-actions_statechange.png
Within the batch-action pop-up you can see how many exam configurations you have selected for the action. Now you are able to select the target state
to where you would like to change all selected exam configurations state to. Then you can apply the batch action with "Change State" or cancel the batch-action.
@ -131,7 +131,7 @@ has been applied and how many has failed.
.. image:: images/exam_config/batch-actions_statechange_finished.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_config/batch-actions_statechange_finished.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_config/batch-actions_statechange_finished.png
**Reset To Template Settings**
@ -223,8 +223,8 @@ to another exam that has to be configured for SEB.
**Generate and Export the Config-Key of an Exam Configuration**
Usually the `SEB Config-Key <https://safeexambrowser.org/developer/seb-config-key.html>`_ that is used to validate the SEB configuration
on the LMS/Assessment Tool is propagated automatically to a LMS/Assessment Tool by the SEB Server with the automated SEB restriction feature. But For testing purposes you need to generate and export the
`SEB Config-Key <https://safeexambrowser.org/developer/seb-config-key.html>`_ and set it manually on the LMS/Assessment Tool.
on the LMS is propagated automatically to a LMS by the SEB Server with the automated SEB restriction feature. But For testing purposes you need to generate and export the
`SEB Config-Key <https://safeexambrowser.org/developer/seb-config-key.html>`_ and set it manually on the LMS.
- Sign into SEB Server with your exam administrator role account.
- Navigate to the "Exam Configuration" menu within the SEB Configuration section on the left-hand side.
@ -281,7 +281,7 @@ In the current version of SEB Server, there are some differences to some SEB set
- Additional Dictionaries: There are only the SEB client default dictionaries available in the current SEB Server version.
- Additional Resources: Additional resources are currently not available in the current SEB Server version.
- Embedded Certificates: There is currently no certificate management possible on current SEB Server version.
- Browser Exam Key: There is currently no possibility to generate the Browser Exam Key on the SEB Server. But an already generated Browser Exam Key may be used within the SEB restriction feature on the exam configuration if this feature is supported by the LMS/Assessment Tool in use.
- Browser Exam Key: There is currently no possibility to generate the Browser Exam Key on the SEB Server. But an already generated Browser Exam Key may be used within the SEB restriction feature on the exam configuration if this feature is supported by the LMS in use.
**SEB settings that have a slightly different form or handling in SEB Server comparing to the SEB configuration tool**

View file

@ -1,15 +1,15 @@
Import LMS/Assessment Tool Course as Exam in SEB Server
Import LMS Course as Exam in SEB Server
=======================================
To be able to configure and manage a course or parts of a course existing on a LMS/Assessment Tool as an exam on SEB Server we first need to import
an exam from the one of the available courses from a LMS/Assessment Tool that has been setup to use within the SEB Server.
To be able to configure and manage a course or parts of a course existing on a LMS as an exam on SEB Server we first need to import
an exam from the one of the available courses from a LMS that has been setup to use within the SEB Server.
.. note::
If you don't have already set up a LMS/Assessment Tool binding within SEB Server and your institution, you have to do this first.
More information about setting up a LMS/Assessment Tool binding can be found in the chapter :ref:`lms-setup-label`
If you don't have already set up a LMS binding within SEB Server and your institution, you have to do this first.
More information about setting up a LMS binding can be found in the chapter :ref:`lms-setup-label`
You will find the list of available courses provided from all LMS/Assessment Tool that are bound within your institution by going to the "Exam Administration"
section on the left hand side and choosing "LMS/Assessment Tool Exam Lookup". The SEB Server will present you the list of all available courses and you
You will find the list of available courses provided from all LMS that are bound within your institution by going to the "Exam Administration"
section on the left hand side and choosing "LMS Exam Lookup". The SEB Server will present you the list of all available courses and you
are able to filter and sort the list as usual to find to right course for import.
.. note::
@ -20,12 +20,12 @@ are able to filter and sort the list as usual to find to right course for import
.. image:: images/exam/lmsExamLookup.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/lmsExamLookup.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/lmsExamLookup.png
You can view more details of a course by double-click on the specific list entry or by selecting the list entry and click the "Show LMS/Assessment Tool Exam Details"
You can view more details of a course by double-click on the specific list entry or by selecting the list entry and click the "Show LMS Exam Details"
action form the action pane on the right hand side. The application will open a pop-up with available detail information of the course.
Since SEB Server version 1.5 the data-fetching-process to get all course data from bounded LMS/Assessment Tools works as a background task and
Since SEB Server version 1.5 the data-fetching-process to get all course data from bounded LMSs works as a background task and
the UI request will return anyway no matter if all data has been fetched already and presents the already available data.
If the background task is still running and fetching data, SEB Server will indicate that with a message note on top of the page
with the ability to reload the page by clicking on the respective icon in the note. With this approach you can now see whether all data
@ -33,7 +33,7 @@ are available and fetched or not.
.. image:: images/exam/lmsExamLookupLate.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/lmsExamLookupLate.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/lmsExamLookupLate.png
To import a course as an exam find the specific course on the list by using the filter and select the list entry. Use the "Import As Exam" action
from the action pane on the right hand side.
@ -41,19 +41,19 @@ from the action pane on the right hand side.
.. note::
If a course has already ended (End-Time passed) it is not possible to import this course and an appropriate message is shown.
On import, the application is creating an exam on SEB Server with a reference to the imported course on the LMS/Assessment Tool. All course specific data
On import, the application is creating an exam on SEB Server with a reference to the imported course on the LMS. All course specific data
like name, description, start-, end-time and course-identifier will not be stored on the SEB Server but always be referenced by the underling course.
This means, that the course data has to be modified on the LMS/Assessment Tool side as usual and the SEB Server always takes the actual data from the LMS/Assessment Tool for the
This means, that the course data has to be modified on the LMS side as usual and the SEB Server always takes the actual data from the LMS for the
course. This has the advantages of the principle of single responsibility and prevents synchronization issues.
You will see the creation page of the new exam with additional information from LMS/Assessment Tool:
You will see the creation page of the new exam with additional information:
- **Name**: Is the name of the course, defines on the LMS/Assessment Tool
- **LMS/Assessment Tool Setup**: Is the name of the LMS/Assessment Tool Setup on the SEB Server from which the course was imported
- **Start-Time**: Is the date and time when the exam is starting. This is defined on the LMS/Assessment Tool
- **End-Time**: Is the date and time when the exam ends. This is defined on the LMS/Assessment Tool
- **LMS/Assessment Tool Exam Identifier**: Is the identity of the course on the LMS/Assessment Tool (external identifier/primary key)
- **LMS/Assessment Tool Exam URL**: Is the start URL of the course/exam
- **Name**: Is the name of the course, defines on the LMS
- **LMS Setup**: Is the name of the LMS Setup on the SEB Server from which the course was imported
- **Start-Time**: Is the date and time when the exam is starting. This is defined on the LMS
- **End-Time**: Is the date and time when the exam ends. This is defined on the LMS
- **LMS Exam Identifier**: Is the identity of the course on the LMS (external identifier/primary key)
- **LMS Exam URL**: Is the start URL of the course/exam
You are now able to either choose an existing :ref:`exam-template-label` to initialize the new exam with the settings defined within the template
or to set the needed settings only for this exam. If you choose a template, the settings from the template will automatically be added to the exam
@ -63,7 +63,7 @@ Initially choose a type for the exam - "Exam Type" - that is currently only used
.. image:: images/exam/importExam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/importExam.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/importExam.png
Furthermore you can select and apply all exam supporter that shall be able to see and support this exam while running. To do so, click in the
input field of the attribute "Exam Supporter" to see a drop down list of all available users for selection. To filter the drop down list, start
@ -71,14 +71,17 @@ typing characters of the name of the user-account you want to apply to automatic
specified user that will be added to the list below the input field. To add another user to the selection just click again into the input field
and select another user. To remove a selected user from the selection-list, double-click on the specified entry of the selection-list.
.. note::
At least one user account must be selected for the attribute "Exam Supporter". You are able to change this also later on by editing the exam.
To confirm the import use the "Save Exam" action of the action pane on the right hand side or use "Cancel" if you want to abort the import of the
exam and go back to the course list. If you have confirmed and successfully imported the exam, you will see the exam overview page where you are able
to edit the details of the exam, apply SEB restrictions of supported by the LMS/Assessment Tool, apply a SEB exam configuration for the exam and define indicators
to edit the details of the exam, apply SEB restrictions of supported by the LMS, apply a SEB exam configuration for the exam and define indicators
for monitoring the exam later on.
.. image:: images/exam/examReady.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examReady.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examReady.png
How all this different aspects of the exam are defined and prepared is part of the next chapters.
@ -88,11 +91,11 @@ Use Cases
**Import a course as exam**
To start setting up a course or quiz form an existing LMS/Assessment Tool as e-assessment with SEB and SEB Server you have to find this course or quiz on the
To start setting up a course or quiz form an existing LMS as e-assessment with SEB and SEB Server you have to find this course or quiz on the
SEB Server and import it as exam. Define a type and apply exam supporter.
- Login as an exam administrator and go to the "LMS/Assessment Tool Exam Lookup" page under the "Exam Administration" section.
- If you are not sure if the LMS/Assessment Tool that runs your course has already been setup within the SEB Server, go first to the "LMS/Assessment Tool Setup" page and try to find the particular LMS/Assessment Tool in the list. If you can't find it, please contact an institutional administrator or setup the LMS/Assessment Tool by yourself as described in :ref:`lms-setup-label`.
- Login as an exam administrator and go to the "LMS Exam Lookup" page under the "Exam Administration" section.
- If you are not sure if the LMS that runs your course has already been setup within the SEB Server, go first to the "LMS Setup" page and try to find the particular LMS in the list. If you can't find it, please contact an institutional administrator or setup the LMS by yourself as described in :ref:`lms-setup-label`.
- Find your course or quiz by using the filter of the list and the list navigation as usual.
- Double click on the list entries to get all information about a particular course or quiz.
- Once you have found the course or quiz, select it on the list and use the "Import Exam" action on the right action pane.

View file

@ -9,7 +9,7 @@ add some other indicators to the exam to be able to get notified while monitorin
.. image:: images/exam/examIndicators.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examIndicators.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examIndicators.png
To add a new indicator to the exam you can use the "Add Indicator" action from the right action pane. In the indicator edit page you are able to give the
new indicator a name. This name will be displayed in the SEB client connection table on monitoring section as column name for the column of this
@ -18,7 +18,7 @@ If you have selected one indicator type, a description will be shown just below
.. image:: images/exam/editIndicator.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/editIndicator.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/editIndicator.png
The type of indicators are pre-defined within the SEB Server and restricts the number of available indicators that can be used. Currently following
indicators are supported:

View file

@ -3,20 +3,20 @@ Exam List
The exam list is shown directly within the "Exam" entry of the "Exam Administration" menu. You will have the usual filter and sort functionality
of lists within SEB Server. You can see exams that are running but has not complete setup yet, marked in read in the list. Additionally you see
Exams that currently has no connection to its origin LMS/Assessment Tool grayed in the list. This exams are not available on the LMS/Assessment Tool either because they didn't
exists anymore on the LMS/Assessment Tool or the SEB Server cannot connect to the LMS/Assessment Tool anymore. As soon as the SEB Server is able to get the LMS/Assessment Tool data again for a
Exams that currently has no connection to its origin LMS grayed in the list. This exams are not available on the LMS either because they didn't
exists anymore on the LMS or the SEB Server cannot connect to the LMS anymore. As soon as the SEB Server is able to get the LMS data again for a
once unreachable exam, the respective exam would change back to normal and is not grayed anymore.
.. image:: images/exam/examList.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examList.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examList.png
Sometimes an entire LMS/Assessment Tool is not available and a lot of exams are grayed. In this case you can use the new filter "Show/Hide Missing Exams" from the
Sometimes an entire LMS is not available and a lot of exams are grayed. In this case you can use the new filter "Show/Hide Missing Exams" from the
action pane on the right to filter out this exams from the list.
.. image:: images/exam/examListHideMissing.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examListHideMissing.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examListHideMissing.png
To get more information about what is missing for an exam that is marked in red, just open the exam by select and use "View Exam" or by double-click
on the list entry. In the Exam view page you will see a warning message pointing out all the missing things to setup the exam.
@ -34,14 +34,14 @@ you want to archive or delete, select the respective batch action on the right a
.. image:: images/exam/examBatchArchive.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examBatchArchive.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/examBatchArchive.png
You see your selection again within a list on the pop-up and when ready you can start the batch action and apply it to every selected exam
that is in a valid state to apply the action.
.. note::
For batch-action the same validation is done like for the single action delete and archive. Archive of an exam is only possible if it
is not currently running but finished or up-coming. Delete is always possible and you have to be carefully while deleting exams in batch.
is not currently running but finished or up-coming. Delete is always possible and you habe to be cearfull while deleting exams in batch.
After you have started the batch-action the result pop-up of the batch-action will show you the progress and how many has been processed and
also how many as failed due to invalid state for batch-action or due to an error.

151
docs/exam_proctoring.rst Normal file
View file

@ -0,0 +1,151 @@
.. _sebProctoringSettings-label:
Optional Live Proctoring
========================
.. attention::
Deprecation
The SEB Server live proctoring integration with Zoom and Jitsi Meet will be deprecated within the next upcoming version of SEB Server 1.6.
This means live proctoring is still available for dedicated SEB versions, but not actively maintained and supported any more.
Live proctoring is a new and yet experimental feature of SEB and SEB Server. The feature is fully optional and not enabled by default.
The main goal of the live proctoring feature is to support the integration
of an external meeting service like Jitsi Meet or Zoom for example, within a SEB and SEB Server setup for an exam.
In this scenario a SEB client is able to join a meeting and send audio and video data to the meeting where a proctor can watch the students during
an exam within this meeting(s). The role of SEB Server in this scenario is mainly to bind a particular meeting service and automatically create
meeting rooms, instruct connected SEB clients to join a certain meeting room. SEB Server can also instruct SEB clients to participate in the meeting by
allowing connected SEB clients to receive audio and video as well as enabling chat functionality.
.. note::
This feature is still in a prototype state and not all functionality might work as expected. Basically the meeting features
are given or restricted by the meeting service that is used and the API and GUI that is given by that meeting service client
To be able to use the integrated live proctoring feature with SEB and SEB Server you need an external meeting service that can be used by the SEB Server to automatically create meetings.
If this feature is enabled, you are able to setup a live proctoring service for a specified exam that can be used in the monitoring later on while the exam is running and SEB clients are connected.
Currently supported meeting services are:
- `Jitsi Meet <https://jitsi.org/jitsi-meet/>`_ with JWT token authentication enabled.
- `Zoom meeting service <https://zoom.us/>`_ with an account plan that fits your need and supports the `Zoom API and Client SDKs <https://marketplace.zoom.us/docs/sdk/native-sdks/developer-accounts>`_.
To bind and setup a live proctoring service in SEB Server for an exam, go to the view page of the exam and use the "Proctoring Settings" action on the right action pane to open up the proctoring settings dialog.
.. image:: images/exam/proctoringSettingsJITSI.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/proctoringSettingsJITSI.png
Within the proctoring settings dialog you are able to switch the service on and off by using the "Proctoring enabled" checkbox. You also see if the proctoring service is enabled within
the action icon that is either an eye when active or a slashed eye when not active.
To define and bind a service you have to choose a service type from the available service types. And you need to give the API access credentials like "Application Key" and "Secret" for
the external meeting service. SEB Server will then try to connect to the meeting service with these credentials to automatically create meetings/rooms for proctoring.
Within the "Collecting Room Size" field you can define the number of maximal participants that shall be collected within one proctoring room. SEB Server will automatically
create these collecting rooms while SEB clients are connecting to the running exam in the monitoring view.
.. note::
If you choose Zoom as your proctoring service and you also want to conduct your exam with Mac and/or iOS SEB Clients you will also need a Zoom SDK-Key and -Secret since SEB Mac/iOS uses Zoom SDK for proctoring integration.
Scroll down the Proctoring Settings window to see more settings for SEB Server based proctoring features:
.. image:: images/exam/proctoringSettings2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/proctoringSettings2.png
- Use Zoom App-Client: Enable this setting to use a Zoom App/Desktop client for the origin proctoring room. This needs an existing Zoom Desktop App installation on the proctor's desktop.
- Broadcasting Feature: Enable this to see the broadcasting features buttons in the opened proctoring windows. E.g. "Enable/Disable Audio" and "Enable/Disable Video" buttons.
- Chat Feature: Enable this to see the "Enable/Disable Chat" feature buttons in the opened proctoring windows.
- One to One Room: Enable this to see the One to One Room feature button during an exam monitoring within a SEB Client detail view
- Town-Hall Room: Enable this to see the Town-Hall Room feature button in the exam monitoring view
To read more about this proctoring features, please have a look at `Exam Monitoring <https://seb-server.readthedocs.io/en/latest/monitoring.html#live-proctoring>`_.
After you have all the settings done, use "OK" to confirm the settings. SEB Server will then try to connect to the meeting service with the given settings and check the access.
.. note::
Once a proctoring service is integrated for an exam, it is currently not possible to switch it to another service anymore.
This is because different services needs different meeting reference data on SEB Server and there is no conversion supported.
In the future we will make it possible to at least delete an already existing proctoring setup and to start from scratch.
The SEB client settings for proctoring can be found in the "Exam Configuration" "SEB Settings". There is a new tab with the name "Proctoring" where all SEB settings for proctoring are available.
These settings are directly used by a SEB client that supports the proctoring feature. SEB will initialize with this settings when connecting to SEB Server and also will use this settings as default settings during an exam.
.. image:: images/exam/proctoringSEBSettings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/proctoringSEBSettings.png
Since SEB Server version 1.2 there is also an Zoom service section that let you define the default SEB settings for a Zoom proctoring setup.
Please be aware that not all of the settings are functioning yet. Please refer to the settings tool-tip to get a actual description of
a particular SEB feature setting
**Jitsi Meet**
To setup and configure a Jitsi Meet service for testing you can refer to the `Docker installation documentation <https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-docker>`_
.. note::
The Jitsi Meet integration works only with JWT authentication. Please refer to the above documentation for how to setup JWT authentication.
.. image:: images/exam/proctoringSettingsJITSI.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/proctoringSettingsJITSI.png
**Zoom**
.. image:: images/exam/proctoringSettingsZoom.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/proctoringSettingsZoom.png
To integrate Zoom meetings as a live proctoring service within SEB Server you need to have an appropriate Zoom account with API and SDK access.
`Zoom API and Client SDKs <https://marketplace.zoom.us/docs/sdk/native-sdks/developer-accounts>`_.
Then you need to setup the Zoom account to run with JWT apps as described:
- Login into your Zoom account and use "App Marketplace" to setup an API app account
.. image:: images/exam/zoom1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoom1.png
- Within the Zoom Marketplace use "Develop" and select "Build App".
.. image:: images/exam/zoom2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoom2.png
.. image:: images/exam/zoom3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoom3.png
- Choose "MeetingSDK" fist to create a meeting SDK app that is been used SEB to connect to Zoom meetings.
- Follow the instructions to create the API account and use the "SDK Key" and "SDK Secret" within the setup in SEB Server proctoring settings
.. image:: images/exam/zoom4.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoom4.png
- Then choose the "Server-toServer OAuth" to create a API access for SEB Server to connect to Zoom service API. This is needed on SEB Server do create and maintain users and meetings
- Follow the instructions to create the "Server-toServer OAuth" app on the page and make sure you have and set needed privileges as shown below.
.. image:: images/exam/zoomauth1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoomauth1.png
.. image:: images/exam/zoomauth2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoomauth2.png
.. image:: images/exam/zoomauth3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/zoomauth3.png
Reset Rooms
-----------
This functionality is new since SEB Server version 1.5 and allows you to reset already created but collecting rooms for an exam. This action is only
available if you already have collecting rooms for an running exam and if there is no active SEB client connected to the exam. Then you can reset your
proctoring rooms with this actions and also do some proctoring settings changes.
.. image:: images/exam/proctoringSettingsZoom.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/proctoringSettingsZoom.png

View file

@ -1,42 +0,0 @@
.. _sebExamQuitPassword-label:
Exam Quit Password (New)
========================
Since SEB Server Version 1.6 it is possible to set the quit-password (usually set in the Exam Configuration/SEB Settings) while
creating or importing an Exam as well as for an existing exam. This is convenient if you want to use a different quit password for each exam
and when using Exam Templates to create Exams.
The quit password within the exam corresponds with the quit-password of an applied Exam Configuration. Thies means, if you change the
password on either site, it will be reflected on the other site. And, in the case a new Exam Configuration is applied an already set
quit password in Exam will have prior order against the a quit password set in the Exam Configuration. In any case the there
is no different quit password in the Exam Configuration then in the Exam. SEB Server guarantees that the quit password is always synchronized
within the following rules:
- Exam has no Exam Configuration but defines the quit password
- An Exam Configuration that is applied to the Exam will get the quit password from the Exam in the SEB Settings.
- An Exam Configuration that already has a quit password set and gets applied to the Exam will also get the quit password from the Exam with notify the user about the change.
- Exam has no Exam Configuration and no quit password set
- The Exam will get the quit password from the Exam Configuration if the Exam Configuration has defined such
- Quit Password is changed in the Exam edit view
- On save of the exam the applied Exam Configuration also gets the new quit-password
- Quit Password is changed in the Exam Configuration SEB Settings
- On Save / Publish of the Exam Configuration SEB Settings, an applied Exam will get the newly set quit password from the configuration
The quit password can be set on Exam creation or import:
.. image:: images/exam/quitPasswordImport.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/quitPasswordImport.png
As well as in the Exam edit view:
.. image:: images/exam/quitPasswordEdit.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/quitPasswordEdit.png
If the Exam was created from an LMS/Assessment Tool with SEB Server integration that allows to send the quit-password
to the LMS/Assessment Tool for display, SEB Server sends a new quit-password as on save. The LMS/Assessment Tool should
therefore also display always the actual quit password.

View file

@ -3,7 +3,7 @@
Automated SEB Restriction
=========================
If the corresponding LMS/Assessment Tool of an exam supports the automated SEB restriction feature, the SEB restriction can be managed within the exam details page.
If the corresponding LMS of an exam supports the automated SEB restriction feature, the SEB restriction can be managed within the exam details page.
To navigate to the exam details page of an exam go to the "Exam" page under the "Exam Administration", find the specified exam in the list by using
the list filter and double click on the list entry of the exam you want to open the details page.
@ -11,35 +11,35 @@ In the exam details page you will see two action related to the SEB restriction
.. image:: images/exam/sebRestriction.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/sebRestriction.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/sebRestriction.png
Use the "Apply SEB Lock" on an exam that has not already locked the course for SEB on the LMS/Assessment Tool to do apply the restriction and lock the course or quiz
for SEB access only. This will call the SEB course restriction API on the LMS/Assessment Tool and will send all information to lock the course on the LMS/Assessment Tool.
On an exam where the restriction lock is already in place, use the "Release SEB Lock" action to remove the restriction in the LMS/Assessment Tool and unlock the course.
Use the "Apply SEB Lock" on an exam that has not already locked the course for SEB on the LMS to do apply the restriction and lock the course or quiz
for SEB access only. This will call the SEB course restriction API on the LMS and will send all information to lock the course on the LMS.
On an exam where the restriction lock is already in place, use the "Release SEB Lock" action to remove the restriction in the LMS and unlock the course.
.. note::
If the exam is already running on import the system will automatically restrict the course on the LMS/Assessment Tool with the available restriction details.
If the exam is already running on import the system will automatically restrict the course on the LMS with the available restriction details.
Use the "SEB Restriction Details" action to open up a dialog to define all SEB restriction details that the LMS/Assessment Tool of the exam and its SEB course
restriction API is supporting. There are two global restriction details that are SEB specific and should be supported by every LMS/Assessment Tool that serves
Use the "SEB Restriction Details" action to open up a dialog to define all SEB restriction details that the LMS of the exam and its SEB course
restriction API is supporting. There are two global restriction details that are SEB specific and should be supported by every LMS that serves
a course restriction API for SEB. The `Config Key <https://safeexambrowser.org/developer/seb-config-key.html>`_ and the `Browser Exam Key <https://safeexambrowser.org/developer/documents/SEB-Specification-BrowserExamKey.pdf>`_.
The Config Key is automatically generated by the exam configuration that is applied to the exam. And the Browser Exam Key can be applied within a
comma separated list if needed.
.. image:: images/exam/sebRestrictionDetails.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/sebRestrictionDetails.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam/sebRestrictionDetails.png
**SEB restriction on Open edX**
To be able to use the SEB restriction feature with an Open edX LMS/Assessment Tool, you need to install the `SEB Open edX plugin <https://seb-openedx.readthedocs.io/en/latest/index.html>`_
To be able to use the SEB restriction feature with an Open edX LMS, you need to install the `SEB Open edX plugin <https://seb-openedx.readthedocs.io/en/latest/index.html>`_
from eduNEXT. Please consult the documentation for installing the `SEB Open edX plugin <https://seb-openedx.readthedocs.io/en/latest/index.html>`_ as well as for the
use of all additional supported restriction attributes.
.. note::
If you change the attached exam configuration either by changing the attachment or by changing the attributes of a attached exam configuration
for an exam that has the SEB restriction in place, the Config Key generated from the exam config that is also changing, will automatically be
updated on the LMS/Assessment Tool. Therefore such an action that triggers an update may take some more time to complete as when the restriction is not in place.
updated on the LMS. Therefore such an action that triggers an update may take some more time to complete as when the restriction is not in place.
Use Cases
@ -53,7 +53,7 @@ Use Cases
- Use the "SEB Restriction Details" action from the right action pane to open the restriction details dialog.
- In the restriction details dialog you will see all supported restriction attributes and you can define the restriction for your needs.
- To apply the new restriction details use the "OK" action of the dialog or use the "Cancel" action to abort and close the dialog.
- When the SEB restriction is active on the LMS/Assessment Tool, the system will automatically update the SEB restriction with the new details on the LMS/Assessment Tool.
- When the SEB restriction is active on the LMS, the system will automatically update the SEB restriction with the new details on the LMS.
- If the SEB restriction is not active in this moment, the details will be saved and applied when the restriction is activated.
@ -62,9 +62,9 @@ Use Cases
- Login as an exam administrator and go to the "Exam" page under the "Exam Administration" section.
- Use the filter to find the exam on that you have to change the supporter assignments.
- Double click the list entry of the exam to go to the exam details page. Check if you are on the right exam.
- Use the "Apply SEB Lock" action from the right action pane to activate the SEB restriction lock for this course on the LMS/Assessment Tool.
- Use the "Release SEB Lock" action from the right action pane to deactivate the SEB restriction lock for this course on the LMS/Assessment Tool.
- Use the "Apply SEB Lock" action from the right action pane to activate the SEB restriction lock for this course on the LMS.
- Use the "Release SEB Lock" action from the right action pane to deactivate the SEB restriction lock for this course on the LMS.
.. note::
If a SEB restriction lock is active on the LMS/Assessment Tool, every change on the exam or related components that will affect a change on the restriction
details will automatically be updated on the LMS/Assessment Tool. You don't have to apply the SEB restriction lock again for update.
If a SEB restriction lock is active on the LMS, every change on the exam or related components that will affect a change on the restriction
details will automatically be updated on the LMS. You don't have to apply the SEB restriction lock again for update.

View file

@ -7,7 +7,7 @@ Overview
--------
Exam templates are a new, useful feature available since SEB Server version 1.3. Within exam templates it is possible to create specific named templates that can be
used by an exam import from LMS/Assessment Tool course/quiz and define default settings and indicators that are automatically be applied on the exam import.
used by an exam import from LMS course/quiz and define default settings and indicators that are automatically be applied on the exam import.
Furthermore, exam templates gives you the possibility to map exam configuration template to automatically create and map an exam configuration for an exam on import.
This is very convenient if you have a lot of exams to set up that all have the same or similar settings. In such a case you can create an exam template
with all the common settings for that exams and use it on exam import.
@ -17,7 +17,7 @@ and also shows which one is the default for the institution.
.. image:: images/exam_template/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/list.png
.. note::
The "Default Template" flag indicates the one exam template that is the default template for an institution. This just means that this template
@ -32,7 +32,7 @@ SEB Server will then present you the exam template creation view on that some in
.. image:: images/exam_template/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/new.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/new.png
- **Name** The name of the exam template to identify it in the list/library
- **Description** A short description ideally describing the purpose of the exam template
@ -46,7 +46,7 @@ view that looks similar to the exam administration view.
.. image:: images/exam_template/view.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/view.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/view.png
Here you can edit the settings done before by using the "Edit Exam Template" action form the right action pane.
You can also delete an exam template entirely by using the "Delete Exam Template" action from the right action pane.
@ -54,20 +54,25 @@ And you are able to add/edit/remove monitoring indicators for the exam template
.. image:: images/exam_template/indicator.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/indicator.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/indicator.png
TODO Screen Proctoring Settings
There are also proctoring settings available since SEB Server version 1.4 for the exam template. They just have the same settings and
look like the ones on the Exam and will get copied for an exam imported with the respective template that defines the proctoring settings.
.. image:: images/exam_template/proctoringSettings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/proctoringSettings.png
Import Exam with Template
-------------------------
Once one or more exam template exists, you are able to select one while importing an exam from the LMS/Assessment Tool in the "LMS/Assessment Tool Exam Lookup" section. Just as usual
use the "Import as Exam" action for a LMS/Assessment Tool exam that you want to import.
Once one or more exam template exists, you are able to select one while importing an exam from the LMS in the "LMS Exam Lookup" section. Just as usual
use the "Import as Exam" action for a LMS exam that you want to import.
.. image:: images/exam_template/select1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam_template/select1.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/exam_template/select1.png
Now there is a new selector field named "Exam Template" where you can choose the exam template to use on import. When you select one the template attributes
like "Exam Type" or "Exam Supporter" are automatically applied from the template settings. You are still able to edit the settings e.g. add more or remove supporter.
@ -114,9 +119,9 @@ a of great help while shorten the setup process and reduces the work that must b
**Use an existing Exam Template on Exam import**
- Sign in as an Exam Administrator and select the "LMS/Assessment Tool Exam Lookup" sub-menu of the "Exam Administration" section in the left menu pane.
- Here you can see all exams form the LMS/Assessment Tool that are bound to the SEB Server. Select the specific exam that you want to import.
- Use "Import as Exam" from the right action pane to import that exam from the LMS/Assessment Tool as usual.
- Sign in as an Exam Administrator and select the "LMS Exam Lookup" sub-menu of the "Exam Administration" section in the left menu pane.
- Here you can see all exams form the LMS that are bound to the SEB Server. Select the specific exam that you want to import.
- Use "Import as Exam" from the right action pane to import that exam from the LMS as usual.
- In the exam import initialization step you now have a new selector to select an Exam Template that shall be applied.
- If there is a default Exam Template defined for the institution, this is pre-selected and already applied. If not you have to select the template of your choice.
- By selecting an Exam Template the template attributes are already applied and you see the respective attributes in the exam settings.

View file

@ -1,30 +0,0 @@
Exam Test-Run (New)
--------------------------------
With the new SEB Server version 2.0 there is a new feature Test-Run for none running / upcoming exams. Since upcoming
Exams on SEB Server are not available for SEB connections and Monitoring one have to has to change the course start date
to apply testing beforehand of an Exam.Server
With new new Rest-Run feature it is now possible to change an Exam in upcoming status to a dedicated Test-Run status where
SEB clients are able to connect and SEB Server Exam Administrator or Supporter are able to Monitor the Exam as long a
the Exam stays within this Test-Run status.
You can set an Exam into Test-Run status by using the respective action on the Exam view:
.. image:: images/exam/examEnableTestrun.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examEnableTestrun.png
After enable Test-Run for an Exam, you can see an information at the top if the Exam view that informs you about the
Test Run status of the Exam.
After testing is done you can disable the Test-Run status just by using the respective action on the right and the Exam
goes back to up-coming status and is not available anymore for SEB connections and Monitoring.
.. image:: images/exam/examEnableTestrun.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examEnableTestrun.png
.. note::
If an Exam changes to Running status due to the start time passing and is still in status Test-Run, SEB Sever will
automatically change the Exam from Test-Run to Running status and all features of a running Exam are available.

View file

@ -1,69 +0,0 @@
.. _sebExamWithURL-label:
Exam With URL (New)
========================
This is a new feature since SEB Server Version 1.6 and allows to create SEB Server Exams without the need of a
dedicated LMS/Assessment Tool integration but by providing an course URL, start- and end-type by its own.
SEB will then the given URL use as a start URL and just forward to the given URL page as usual. This of course has
some limitations in comparison to a Exam with LMS/Assessment Tool integration that are described at the end of
this chapter.
To create a new Exam with URL please select the Exam tab on the left menu pane and the "Add Exam with URL" Action
on the right action pane. Click on the action to open the creation view. This is the same view as on Exam import
put with some fields you have to provide instead of they coming from LMS/Assessment Tool.
.. image:: images/exam/examWithURL.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examWithURL.png
.. image:: images/exam/examWithURLNew.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examWithURLNew.png
You are now able to either choose an existing :ref:`exam-template-label` to initialize the new exam with the settings defined within the template
or to set the needed settings only for this exam. If you choose a template, the settings from the template will automatically be added to the exam
on creation and you are still able to modify them afterwards.
For this kind of Exam you also have to provide additional data that usually comes from LMS/Assessment Tool.
- The name of the Exam - mandatory
- A description of the Exam - optional
- The start date and time of the Exam - mandatory
- The end date and time of the Exam - optional
Initially also choose a type for the exam - "Exam Type" - that is currently only used for informational purpose and has no further restrictions or consequences on handling on in SEB Server.
Furthermore you can select and apply all exam supporter that shall be able to see and support this exam while running. To do so, click in the
input field of the attribute "Exam Supporter" to see a drop down list of all available users for selection. To filter the drop down list, start
typing characters of the name of the user-account you want to apply to automatically filter the list. Click on the drop-down list entry to select the
specified user that will be added to the list below the input field. To add another user to the selection just click again into the input field
and select another user. To remove a selected user from the selection-list, double-click on the specified entry of the selection-list.
To finally create the new Exam use the save action from the right action pane. New you are in the usual Exam view and can
go one with setting up your Exam.
.. image:: images/exam/examWithURLView.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/exam/examWithURLView.png
If you want to edit the Exam settings please use the edit action on the right action pane. Here you can also modify
the data that usually comes from LMS/Assessment Tool. You can change name, start- and end-date directly here within
the Exam on the SEB Server.
**Restrictions**
There are a few restrictions for an Exam with URL. First of all, since there os no LMS/Assessment Tool binding available,
SEB Server cannot call an LMS/Assessment Tool and restrict access for SEB only with either Config Key or Browser Exam key.
If an LMS/Assessment Tool supports such, one is of course be able to put the Config Key from SEB Server to the LMS manually
by copy und past it.
The other restriction is about the student login name resolving that is used and shown in the monitoring view of SEB Server.
Since this login name resolving needs a LMS/Assessment Tool binding to request the students LMS account name by SEB Server
this is not possible with this setup. But SEB Server will display other information within the User Name or Session column
of the SEB Server monitoring. SEB Server will show either the client IP address or the client machine name or the client
user device login, depending on what SEB is able to sends to the SEB Server.

View file

@ -2,9 +2,9 @@ Exams
=====
Within an exam in SEB Server all threads come together to set up a e-assessment with Safe Exam Browser and SEB Server. An exam can be imported
from a course that exists on an LMS/Assessment Tool that was bound with a LMS/Assessment Tool Setup. An exam configuration that was formerly created can be attached to the exam by
from a course that exists on an LMS that was bound with a LMS Setup. An exam configuration that was formerly created can be attached to the exam by
choosing one from the library. Indicators can be defined that are shown in the monitoring section while monitoring a running exam. And if
the API of the specified LMS/Assessment Tool integration supports individual SEB restriction attributes for a e-assessment, this can also be defined and managed
the API of the specified LMS integration supports individual SEB restriction attributes for a e-assessment, this can also be defined and managed
on the exam management of SEB Server.
We will go through all the steps to setting up an exam for Safe Exam Browser with SEB Server one by one.
@ -13,16 +13,11 @@ We will go through all the steps to setting up an exam for Safe Exam Browser wit
:maxdepth: 1
exam_import
exam_with_url
exam
exam_quit_password
exam_indicator
exam_clientgroups
exam_ask
exam_restriction
exam_screen_proctoring
exam_proctoring
exam_list
exam_template
exam_testrun
screen_proctoring

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

After

Width:  |  Height:  |  Size: 95 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

BIN
docs/images/exam/zoom1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
docs/images/exam/zoom2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

BIN
docs/images/exam/zoom3.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

BIN
docs/images/exam/zoom4.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 58 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 848 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 690 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 486 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 586 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 681 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 547 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 632 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 660 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 667 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 319 KiB

View file

@ -21,6 +21,5 @@ Table of Content
configurations
exams
monitoring
screen_proctoring
troubleshooting

View file

@ -34,7 +34,7 @@ Currently an institution has a name, an optional url-suffix and an optional logo
.. image:: images/institution/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/institution/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/institution/list.png
As an institutional administrator only the institution one belongs to can be seen and be modified by the user.
The user will see the institution form in view mode by clicking on the "Institution" section on the left hand menu
@ -44,7 +44,7 @@ therefore a SEB Server administrator role is needed.
.. image:: images/institution/view_institutional.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/institution/view_institutional.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/institution/view_institutional.png
@ -69,7 +69,7 @@ access the application with a web-browser and have the own logo.
.. image:: images/institution/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/institution/new.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/institution/new.png
**Change the name/logo of an existing or own Institution**
@ -94,7 +94,7 @@ access the application with a web-browser and have the own logo.
.. image:: images/institution/view_institutional.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/institution/view_institutional.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/institution/view_institutional.png
**Activate / Deactivate an existing institution**
@ -109,7 +109,7 @@ the form.
To deactivate an institution one can use the "Deactivate Institution" action form the action pane on the right side.
When an institution is been deactivated, also all existing and active entities that belongs to this institution are deactivated too.
This affects user-accounts, configurations and LMS/Assessment Tool Setups. On deactivation action, the application will search the affected entities
This affects user-accounts, configurations and LMS Setups. On deactivation action, the application will search the affected entities
and will inform the administrator about the number of the affected entities and asks for confirmation.
After Confirm the deactivation the institution and all affected entities will be deactivated. This means also the user-accounts that has
not an institutional role or the SEB Server administration role, will not be able to log in anymore.

View file

@ -1,16 +0,0 @@
SEB Server Ans Delft Integration
===============================
The `Ans Delft <https://ans.app>`_ Assessment Tool can be integrated with SEB Server for the most common features like
- Course Access
- SEB Course Restriction
- Login Name Resolving
SEB Server uses the existing `Ans Delft API <https://ans.app/api/docs/index.html>`_ to apply the integration.
As usual you need a valid Ans client API account from Ans Delft to be able to connect SEB Server with your
Ans server. Please create or request such an account from the Ans team, and use either the given credentials or
a given access-token to connect SEB Server to the Ans API.
All the above listed Assessment Tool integration features should then work as described within SEB Server.

View file

@ -1,130 +0,0 @@
.. _lms-api-account-edx-label:
SEB Server Open edX Integration
===============================
SEB Server integrates with Open edX standard API for the following features:
- Course Access
- Login Name Resolving
.. note::
If you want to use the automated SEB Client Restriction feature too, the `Open edX SEB Plugin <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-setup-rest-plugin-label>`_ must be installed properly on the Assessment Tool.
Also refer to the Open edX API documentation for more information about the `Open edX REST API <https://courses.edx.org/api-docs/>`_
Create Open edX API Access Account
-----------------------------------
To be able to create an API access-account on Open edX you need a user-account with staff and administration privileges.
**For Open edX Hawthorn and Ironwood versions following the steps below::**
- Login to Open edX Assessment Tool Administration with an appropriate user-account that has administration rights. And find the Users section:
.. image:: images/lmssetup/openEdxAPIAccess1.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess1.bmp
- Create a new User-Account that acts as an API account. The account must at least have the permissions to query the course API of Open edX and to access the seb_openedx plugin permission.
- Make sure that "Staff" status is checked for the account.
.. image:: images/lmssetup/openEdxAPIAccess2.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess2.bmp
- Back in the administration homepage, find the OAUT2 - Client section and create a new API Client Access for the given User-Account. The Client id and Client secret are automatically generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess3.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess3.bmp
.. image:: images/lmssetup/openEdxAPIAccess4.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess4.bmp
Once the client registration was successful the client id and client secret can be used within the SEB Server to access the course- and SEB-restriction API of Open edX as described in the next step section
.. note::
Since Open edX Juniper is using Django Oauth Toolkit instead of Django Oauth Provider the last step in the above guide looks slightly different. Please see below the last step for setting up on an Open edX Juniper version.
- Back in the administration homepage, find the DJANGO OAUTH TOOLKIT - Applications section and create a new API Application Access for the given User-Account. The Client id can be defined and the Client secret is automatically be generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess5.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess5.png
.. image:: images/lmssetup/openEdxAPIAccess6.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/openEdxAPIAccess6.png
.. _lms-setup-rest-plugin-label:
Install SEB restriction API plugin
----------------------------------
.. _lms-setup-edx-plugin-label:
**Open edX SEB Plugin**
There is a SEB integration plugin developed and supported by `eduNEXT <https://www.edunext.co/>`_.
- `Documentation <https://seb-openedx.readthedocs.io/en/latest/>`_
- `Repository <https://github.com/eduNEXT/seb-openedx>`_
.. _lms-setup-moodle-plugin-label:
**Moodle Plugin for SEB Server**
There is a new SEB Server integration plugin for Moodle available since SEB Server 1.5 that can be used with the Assessment Tool Setup type Moodle with SEB Server Plugin.
This Plugin supports and improves all common SEB Server Assessment Tool binding features such as Course-Access, SEB Restriction and Assessment Tool Session Name Resolving.
It is also planed to extend and improve this plugin with new Moodle specific feature for further releases of SEB Server.
- `Documentation <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_
- `Repository <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_
Create a new Assessment Tool Setup for Open edX
-----------------------------------------------
A new Open edX system has been installed within your institution and to be able to use the system also for e-assessments with SEB and SEB Server,
you have to bind the Assessment Tool to the SEB Server.
- If not already done, install the `Open edX SEB Plugin <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-setup-rest-plugin-label>`_ on the Open edX system first.
- If you don't already have an API access account on Open edX side, `create one <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-api-account-edx-label>`_
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "Assessment Tool Setup" within the navigation on the left hand side.
- Use the "Add Assessment Tool Setup" action from the right action pane to open a Assessment Tool Setup creation form.
- Give a unique name to the new Assessment Tool Setup for internally identification.
- Set the main URL that points to the new Assessment Tool system. This is usually the URL that is also used with the Browser to connect to the main page of the Assessment Tool system
- Set the API credentials that has been creates within step two (client-id, secret).
- Use the "Activate Assessment Tool Setup" action on the right action pane to test, save and activate the new Assessment Tool Setup within one step.
.. note::
If some form attributes are missing or not correct, the SEB Server system will respond with the usual form validation errors.
If the connection to the Assessment Tool is failing because of missing or wrong credentials or for any other reason the system is not able to connect to the Assessment Tool
the SEB Server will notify an error dialog to the user.
**Change API Credentials of an Active Assessment Tool Setup**
The API access account on the Assessment Tool has been expired and you have to create a new one or update the old one which both result in new API access credentials
that has to be set on the existing Assessment Tool Setup on the SEB Server.
.. image:: images/lmssetup/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/list.png
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "Assessment Tool Setup" within the navigation on the left hand side.
- Use the Filter above the list to find the specified Assessment Tool Setup.
- Select the Assessment Tool Setup from the list and use the "Edit Assessment Tool Setup" action from the right action pane to open the Assessment Tool Setup in edit mode.
- Set the new credentials and make sure, the Assessment Tool Setup is still active.
- Use the "Save Assessment Tool Setup" action form the right action pane to save the changes and test the connection.
.. note::
If some form attributes are missing or not correct, the SEB Server system will respond with the usual form validation errors.
If the connection to the Assessment Tool is failing because of missing or wrong credentials or for any other reason the system is not able to connect to the Assessment Tool
the SEB Server will notify an error dialog to the user.

View file

@ -1,168 +0,0 @@
SEB Server Moodle Integration
===============================
SEB Server has two different Moodle integration methods or features. One for bare Moodle without any additional Plugin
installed and one for Moodle instances that has the SEB Server Moodle Plugin installed.
For more information about the Moodle standard Rest API, please also have a look at: `Moodle REST API <https://docs.moodle.org/dev/Web_service_API_functions>`_
Moodle without SEB Server Plugin
---------------------------------
Without any plugin, Moodle supports the following standard integration features:
- Course Access
- SEB Course Restriction
.. note::
If you want to use Moodle with SEB Server, we recommend to install the new Moodle Plugin for SEB Server for better integration with Moodle.
This plugin comes with the common SEB Server integration features and improved Moodle binding. For more information see the section below.
** Moodle Client API Account**
To be able to create an Assessment Tool Setup for Moodle you need a Moodle API client account. You can then use this account in the Assessment Tool Setup to connect to the Assessment Tool.
Since SEB Server uses some functions from the Moodle's mobile API, you have to make sure the web services for mobile apps are enabled within your Moodle setup.
To do so please login to Moodle with an administrator account and go to "Side Administration", scroll down to "Mobile App" and choose "Mobile Settings.
.. image:: images/lmssetup/moodle_mobile.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/moodle_mobile.png
If you have a restrictive Moodle setup and troubles with the Moodle API account to use with SEB Server, please try to import the following
Moodle role profile within your Moodle instance. This profile will create a SEB Server role within Moodle that can be used to apply to an
API account to be used with SEB Server. The role defines only the necessary privileges and functions needed for SEB Server communication.
Moodle role and account settings: :download:`XML <files/webservice_seb-server.xml>`
Moodle with new SEB Server Plugin 2.0
--------------------------------------
For SEB Server version 2.0 there is also a new version of the Moodle SEB Server Plugin 2.0 that can be installed on Moodle
and has many new features to integrate even more with SEB Server as the existing version 1.0.the
.. note::
We strongly recommend to update to the newest Moodle SEB Server Plugin version 2.0 for SEB Server version 2.0. The older
plugin version 1.0 might still work as expected but we cannot guarantee that and also version 1.0 will not be supported
anymore. If you still have the old version of Moodle SEB Server Plugin 1.0 installed, SEB Server would recognize this and
inform you about this when testing or creating a new Assessment Tool Setup for Moodle with Plugin.
We also recommend to make a transition from existing Assessment Tool Setups with old Plugin to new Assessment Tool Setup with new Moodle Plugin.
This would mean that you delete all existing Assessment Tool Setups with Moodle (after archived your Exams you want to hold on SEB Server).
And after deletion of old Assessment Tools Setup with Moodle Plugin, install the new Moodle Plugin on Moodle site and setup
the Assessment Tool Setup for it in SEB Server.
The SEB Server Moodle Plugin 2.0 still supports the usual functionality:
- Course Access
- SEB Course Restriction
- Login Name Resolving
Additionally the full Moodle integration also comes with the following new features:
- SEB Server Admin can prepare Exam Template that can be used by Moodle Teacher Account to import Exams from Moodle site
- Moodle Teacher Account can automatically import an Exam on SEB Server from Moodle without having to go the SEB Server
- Moodle Teacher Account can automatically login to SEB Server Monitoring for a running quiz from Moodle site
- Moodle Teacher Account can also monitor the screen proctoring of a running quiz if available
To create or get a proper Moodle API Client account that is needed to connect SEB Server to Moodle, please have a look
at the above chapter ** Moodle Client API Account**
.. note::
One important change with Moodle SEB Server Plugin 2.0 comes with the fact that for this version it is only possible
to bind a Moodle instance to one SEB Server instance. It is not possible anymore to bind to the same Moodle from
different SEB Server instances or to bind the same Moodle instance twice for a singe SEB Server instance. This is due
to the full integration of SEB Server to Moodle and that Moodle can operate on a bound SEB Server.
For more information about the SEB Server Moodle Plugin and installation, please visit the following sites:
- `Documentation <https://github.com/ethz-let/moodle-quizaccess_sebserver>`_
- `Repository <https://github.com/ethz-let/moodle-quizaccess_sebserver>`_
**Usage of new SEB Server Moodle integration features**
After you have successfully applied a Assessment Tool Setup for Moodle with Plugin 2.0, you can now use the new integration
features among the other usual features like Course Access, SEB Client Restriction and Login Name Resolving.Plugin
A SEB Server Exam Admin can now create and mark Exam Templates that are then recognized by Moodle for later selection.
So a Exam Administrator is able to create a set of Exam Templates that then will be able to choose from a Moodle Teacher
when he/she sets up a quiz in Moodle. The following images shows the setting that indicated a Exam Template for use with
Moodle integration:
.. image:: images/moodle_full/exam_template.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/exam_template.png
On the Moodle site, a Teacher can then create a new quiz within a course:
.. image:: images/moodle_full/moodle_new1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/moodle_new1.png
An within the quiz settings a Moodle Teacher should see a new settings sections "SEB Server" among with the already known
"Safe Exam Browser" section:
.. image:: images/moodle_full/moodle1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/moodle1.png
If a Moodle Teacher wants to setup an Exam with SEB Server for the quiz, he/she can now activate SEB Server integration
for that quiz by selecting "yes" for "Enable SEB Server". The "Safe Exam Browser" section will then automatically switch
to the right settings to use with SEB Server.with
.. image:: images/moodle_full/moodle2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/moodle2.png
Now the Moodle Teacher can select from the available Exam Templates that has been prepared and marked for Assessment Tool
use on SEB Server site. The Moodle Teacher can also enable a SEB quit button or quit-link and set a SEB quit password for the Exam.
After saving all the settings, this might take a while, Moodle automatically imports the Exam for the quiz within SEB Server
and applies all the presetting from the selected Exam Template. When the Exam is running also the SEB Client Restriction
is automatically set on the Exam. If the Exam is not running yet, the SEB Client Restriction will be set from SEB Server
as soon as the Exam becomes running.
.. image:: images/moodle_full/imported_exam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/imported_exam.png
After all this has successfully been created and applied, the Moodle Teacher can go to the quit preview and sees the following
features:
.. image:: images/moodle_full/moodle3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/moodle3.png
In the students view, the student will only see the two buttons:
- Start Safe Exam Browser: This installs and starts the SEB Client for the student
- Download SEB Server configuration file: This will download the SEB Server configuration file and start it with SEB
Only the Moodle Teacher is able to see the third button:
- SEB Server monitoring: This opens up an autologin for the Teacher to SEB ServerMonitoring within a new browser tab.student
SEB Server therefore creates an ad-hoc teacher role account on SEB Server site for this teacher. The Teacher is able to see
the monitoring if its exams as well as screen proctoring monitoring and search for all the exams he/she has created from
Moodle site.
.. image:: images/moodle_full/teacher_autologin.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/teacher_autologin.png
An already imported Exam can also be deleted either from the SEB Server side or from the Moodle side. On the SEB Server
site, a Exam Administrator can just delete the Exam as usual and SEB Server would reset all the integration settings
in Moodle for the respective quiz.
.. image:: images/moodle_full/delete_exam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/delete_exam.png
While on the Moodle side, a Moodle Teacher can disable SEB Server for a particular quiz and Moodle will trigger a deletion
of the Exam on SEB Server and also reset all SEB Server settings on Moodle side.
.. image:: images/moodle_full/deleted_exam_moodle.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/moodle_full/deleted_exam_moodle.png

View file

@ -1,16 +0,0 @@
SEB Server OLAT Integration
===============================
The `OLAT <https://www.olat.org/>`_ Assessment Tool can be integrated with SEB Server for the most common features:
- Course Access
- SEB Course Restriction
- Login Name Resolving
SEB Server integration with OLAT was built with close coworking with the OLAT development team and uses the
existing OLAT API to apply the integration. As usual you need a valid client API account from you OLAT server instance
to be able to connect SEB Server. Please create or request such an account from the OLAT team, and use either the
given credentials or a given access-token to connect SEB Server to the Ans API.
For more information please contact the OLAT Development-Team at `OLAT UZH <https://www.zi.uzh.ch/en/support/e-learning-and-examination/staff/olat.html>`_

View file

@ -1,113 +1,265 @@
.. _lms-setup-label:
Assessment Tool Setup
================================
Overview
--------
To be able to connect to a learning management system (Assessment Tool), to view and manage the courses provided by a Assessment Tool is an essential feature of the SEB Server.
To setup an exam or e-assessment for SEB on SEB Server that is based on a course from a Assessment Tool, we have to make a binding to the course on the Assessment Tool.
This is also used to always get the actual course data from Assessment Tool like start- end-time, name and others.
Another feature of SEB Server that needs a Assessment Tool communication is the SEB restriction. A SEB restriction will restrict course access on the Assessment Tool only
for connection with Safe Exam Browser and will also check if a Safe Exam Browser of trust is used and the right configuration is used by the
Safe Exam Browser that was defines for the exam on the SEB Server.
**Course API**
This API, provided by the Assessment Tool, is used by the SEB Server to query the available courses and the needed data for each course. This API
is needed to be able to import a course from the Assessment Tool as an exam into SEB Server and configure the course as an e-assessment with SEB.
Usually this API comes as a REST or SOAP API with the core Assessment Tool implementation or a plugin.
**SEB Restriction API**
If the automated SEB restriction functionality is available for a Assessment Tool depends on the following requirements:
- There must exist a SEB integration plugin that offers an API to put and pull SEB restrictions in the form of Config-Keys and/or Browser-Exam-Keys
To the Assessment Tool and a specific course on the Assessment Tool to restrict the access. Such a plugin may also offer additional restriction features like restricting
on course section or course components or only for specified user roles.
- The SEB integration plugin must be installed on the Assessment Tool that is used by the SEB Server.
For more information about known SEB integration plugins that are supported by the SEB Server see the respective Assessment Tool integration section.
Regardless if a supported Assessment Tool is missing the SEB integration plugin installation, the Assessment Tool can be used with the Course API and an exam
setup will be possible but without automated SEB restriction feature.
To be able to connect to an Assessment Tool from SEB Server, we need to create an API access account on the Assessment Tool side that can be used by the SEB Server to
access the API of the Assessment Tool. How to do this for the different supported types of Assessment Tool see :ref:`lms-api-account-label`.
After such an account was created, the account credentials, username and password, can be used by the SEB Server to connect to the Assessment Tool.
Therefore we need to create a Assessment Tool Setup on the SEB Server.
.. image:: images/lmssetup/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/lmssetup/new.png
A SEB Server administrator role will be able to see the institution to which the Assessment Tool Setup belongs to while an institutional administrator
is only able to see and create Assessment Tool Setup for its own institution. The name of the Assessment Tool Setup should be unique and is to identify a Assessment Tool
SEB Server internally. Use the **"Type"** selector to specify the type of the Assessment Tool to bind to the SEB Server within the Assessment Tool Setup. Currently supported are:
- **Testing**: This is for testing purposes only and can be used to mock a Assessment Tool to test exam settings. This type provides some mock-up courses within the
Assessment Tool API of the SEB Server that can be seen in the Assessment Tool Exam Lookup once the Assessment Tool text setup is active. This mock-up courses can be imported and configured
as exams like they would exist. But note the a SEB client that is trying to connect to such a course would not be able to connect to the Assessment Tool since it
is not existing. But a SEB client is able to download the defined exam configuration for testing.
- **Open edX**: This type is to bind an existing `Open edX <https://open.edx.org/>`_ Assessment Tool system that is available on the Internet or intranet.
- **Moodle**: This type is to bind an existing `Moodle <https://moodle.org//>`_ Assessment Tool system that is available on the Internet or intranet.
- **Moodle with SEB Server Plugin**: This type is to bind SEB Server with an Moodle Assessment Tool that has SEB Server Plugin for Moodle <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_ installed.
- **Ans Delft**: This type is to bind SEB Server with an `Ans Delft <https://ans.app/>`_ Assessment Tool.
- **OLAT**: This type is to bind SEB Server with an `OLAT <https://www.olat.org/>`_ Assessment Tool.
The **"Assessment Tool Server Address"** is the root URL to connect to the Assessment Tool server with HTTP over the Internet or intranet. This is usually the URL that is
also used with the Browser to connect to the main page of the Assessment Tool system. And additionally the credentials that have been created with the creation of the :ref:`lms-api-account-label` has to be set in the Assessment Tool Setup the make the SEB Server
able to securely connect to the Assessment Tool. The API credentials that consists of a client-name and a client-secret must be used with the **"Assessment Tool Server Username"**
and the **"Assessment Tool Server Password"** fields of the Assessment Tool Setup form on SEB Server.
Alternatively to **"Assessment Tool Server Username"** and **"Assessment Tool Server Password"** you can use a direct **Access Token** to connect to the Assessment Tool API if the respective Assessment Tool allows to
generate and use an access token directly.
If the SEB Server running behind a proxy server or a firewall between SEB Server den Assessment Tool, the additional proxy settings can be used to setup the proxy-connection.
.. note::
To Setup a Test Assessment Tool Setup (of type "Test") only a correct URL pattern must be set like "http://test" for example. And API credentials can be anything but must be set.
After all the settings for a Assessment Tool Setup have been set, one can use either the "Save Assessment Tool Setup" action to save the Assessment Tool Setup without activation or the
"Activate Assessment Tool Setup" action to also activate the settings right after they has been successfully saved. Anyway, for both action there is an initial test
that, additionally to the usual field validation that takes place first, tries to connect to the Assessment Tool with the given API details. If the connection
wasn't successful, the SEB Server will inform the user about a possible reason of failure. Otherwise SEB Server shows a success message and the created
Assessment Tool Setup can be used.
Use the "Activate / Deactivate Assessment Tool Setup" action to activate an inactive Assessment Tool Setup or the deactivate an active Assessment Tool Setup.
.. note::
On deactivation of an Assessment Tool Setup, the system checks on depending object and will show a confirmation to the user asking that all depending
objects will also been deactivated. Depending objects of an Assessment Tool Setup are exams that has been imported from the specified Assessment Tool Setup in the past.
For detailed information for each Assessment Tool type and how to bind and use it with SEB Server, please refer to the respective section:
.. toctree::
:maxdepth: 1
lms_moodle
lms_edx
lms_olat
lms_ans
Use Cases
---------
**Deactivate Assessment Tool Setup**
A Assessment Tool system that was running on your campus to provide e-assessment with SEB and SEB Server has been shut down and you need to also deactivate
the setup and exams on the SEB Server for this Assessment Tool.
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "Assessment Tool Setup" within the navigation on the left hand side.
- Use the Filter above the list to find the specified Assessment Tool Setup.
- Select the specified Assessment Tool Setup from the list and use the "Deactivate Assessment Tool Setup" action from the right action pane.
- Alternatively you can also double-click on the Assessment Tool Setup to fist go into the detailed view of the Assessment Tool setup and use the "Deactivate Assessment Tool Setup" action there.
- The system informs you about the number of depending exams that also will be deactivated within the deactivation of the Assessment Tool Setup.
- Confirm the deactivation and notify that the Assessment Tool Setup now is listed as "Inactive" in the list.
- Navigate to "Assessment Tool Exam Lookup" to make sure the courses form the deactivated Assessment Tool Setup are not available anymore.
- Navigate also to "Exam" and make sure that all previously imported exams from the deactivated Assessment Tool Setup are not available anymore.
.. _lms-setup-label:
Learning Management System Setup
================================
Overview
--------
To be able to connect to a learning management system (LMS), to view and manage the courses provided by a LMS is an essential feature of the SEB Server.
To setup an exam or e-assessment for SEB on SEB Server that is based on a course from a LMS, we have to make a binding to the course on the LMS.
This is also used to always get the actual course data from LMS like start- end-time, name and others.
Another feature of SEB Server that needs a LMS communication is the SEB restriction. A SEB restriction will restrict course access on the LMS only
for connection with Safe Exam Browser and will also check if a Safe Exam Browser of trust is used and the right configuration is used by the
Safe Exam Browser that was defines for the exam on the SEB Server.
**Course API**
This API, provided by the LMS, is used by the SEB Server to query the available courses and the needed data for each course. This API
is needed to be able to import a course from the LMS as an exam into SEB Server and configure the course as an e-assessment with SEB.
Usually this API comes as a REST or SOAP API with the core LMS implementation or a plugin.
SEB Server supports this course API's so far:
- Open edX: The standard system `Open edX REST API <https://courses.edx.org/api-docs/>`_. The SEB Server uses the "courses" endpoints to get course data.
- Moodle (Course Access): The standard system `Moodle REST API <https://docs.moodle.org/dev/Web_service_API_functions>`_. The SEB Server uses the standard Moodle rest endpoints to get course data.
Please note that a second Moodle integration part for SEB access restriction with Config-Key will follow together with a Moodle plugin in a future version of SEB Server
**SEB Restriction API**
If the automated SEB restriction functionality is available for a LMS depends on the following requirements:
- There must exist a SEB integration plugin that offers an API to put and pull SEB restrictions in the form of Config-Keys and/or Browser-Exam-Keys
To the LMS and a specific course on the LMS to restrict the access. Such a plugin may also offer additional restriction features like restricting
on course section or course components or only for specified user roles.
- The SEB integration plugin must be installed on the LMS that is used by the SEB Server.
For more information about known SEB integration plugins that are supported by the SEB Server see :ref:`lms-setup-rest-plugin-label`
Regardless if a supported LMS is missing the SEB integration plugin installation, the LMS can be used with the Course API and an exam
setup will be possible but without automated SEB restriction feature.
To be able to connect to an LMS from SEB Server, we need to create an API access account on the LMS side that can be used by the SEB Server to
access the API of the LMS. How to do this for the different supported types of LMS see :ref:`lms-api-account-label`.
After such an account was created, the account credentials, username and password, can be used by the SEB Server to connect to the LMS.
Therefore we need to create a LMS Setup on the SEB Server.
.. image:: images/lmssetup/new.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/new.png
A SEB Server administrator role will be able to see the institution to which the LMS Setup belongs to while an institutional administrator
is only able to see and create LMS Setup for its own institution. The name of the LMS Setup should be unique and is to identify a LMS
SEB Server internally. Use the **"Type"** selector to specify the type of the LMS to bind to the SEB Server within the LMS Setup. Currently supported are:
- **Testing**: This is for testing purposes only and can be used to mock a LMS to test exam settings. This type provides some mock-up courses within the
LMS API of the SEB Server that can be seen in the LMS Exam Lookup once the LMS text setup is active. This mock-up courses can be imported and configured
as exams like they would exist. But note the a SEB client that is trying to connect to such a course would not be able to connect to the LMS since it
is not existing. But a SEB client is able to download the defined exam configuration for testing.
- **Open edX**: This type is to bind an existing `Open edX <https://open.edx.org/>`_ LMS system that is available on the Internet or intranet. The SEB
Server tries to make use of the above described API's of the Open edX system.
.. note::
If you want to use the automated SEB restriction feature too, the `Open edX SEB Plugin <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-setup-rest-plugin-label>`_ must be installed properly on the LMS.
- **Moodle**: This type is to bind an existing `Moodle <https://moodle.org//>`_ LMS system that is available on the Internet or intranet. The SEB
Server tries to make use of the described API's of the Moodle system but there is currently no SEB restriction plugin available that works
with SEB Server. Note that Moodle integration is implemented partially within SEB Server version 1.1.x. Only the course access feature is implemented and the course restriction feature will come with a future SEB Server release
- **Moodle with SEB Server Plugin**: The `SEB Server Plugin for Moodle <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_ is new and supported by SEB Server since version 1.5.
With this plugin installed on Moodle side, SEB Server is able to more efficiently communicate with Moodle to fetch course data as well as restricting the quiz on Moodle side
For SEB only access, using a auto-generated Browser Exam Key (BEK) for SEB restriction. Also the Moodle user name resolving for SEB Server monitoring is less error prone especially
if Single Sign On some kind of login provider for Moodle is involved. Furthermore the new SEB Server Plugin for Moodle will be constantly extended and improved with new features in the future.
- **Ans Delft**: This type is to bind SEB Server with an `Ans Delft <https://ans.app/>`_ LMS. With the API credentials from an Ans Delft instance, SEB Server is able
to connect to the Ans LMS and provide the common features for Course-Access, SEB Restriction and LMS User Session resolving.
- **Open Olat**: This type is to bind SEB Server with an `Open Olat <https://www.openolat.com/>`_ LMS. With the API credentials from an Open Olat instance, SEB Server is able
to connect to the Olat LMS and provide the common features for Course-Access, SEB Restriction and LMS User Session resolving. For more information please contact the Olat Development-Team at `OpenOLAT UZH <https://www.zi.uzh.ch/en/teaching-and-research/software-elearning/olat.html>`_
The **"LMS Server Address"** is the root URL to connect to the LMS server with HTTP over the Internet or intranet. This is usually the URL that is
also used with the Browser to connect to the main page of the LMS system. And additionally the credentials that have been created with the creation of the :ref:`lms-api-account-label` has to be set in the LMS Setup the make the SEB Server
able to securely connect to the LMS. The API credentials that consists of a client-name and a client-secret must be used with the **"LMS Server Username"**
and the **"LMS Server Password"** fields of the LMS Setup form on SEB Server.
Alternatively to **"LMS Server Username"** and **"LMS Server Password"** you can use a direct **Access Token** to connect to the LMS API if the respective LMS allows to
generate and use an access token directly.
If the SEB Server running behind a proxy server or a firewall between SEB Server den LMS, the additional proxy settings can be used to setup the proxy-connection.
.. note::
To Setup a Test LMS Setup (of type "Test") only a correct URL pattern must be set like "http://test" for example. And API credentials can be anything but must be set.
After all the settings for a LMS Setup have been set, one can use either the "Save LMS Setup" action to save the LMS Setup without activation or the
"Activate LMS Setup" action to also activate the settings right after they has been successfully saved. Anyway, for both action there is an initial test
that, additionally to the usual field validation that takes place first, tries to connect to the LMS with the given API details. If the connection
wasn't successful, the SEB Server will inform the user about a possible reason of failure. Otherwise SEB Server shows a success message and the created
LMS Setup can be used.
Use the "Activate / Deactivate LMS Setup" action to activate an inactive LMS Setup or the deactivate an active LMS Setup.
.. note::
On deactivation of an LMS Setup, the system checks on depending object and will show a confirmation to the user asking that all depending
objects will also been deactivated. Depending objects of an LMS Setup are exams that has been imported from the specified LMS Setup in the past.
Use Cases
---------
**Create a new LMS Setup for Open edX**
A new Open edX system has been installed within your institution and to be able to use the system also for e-assessments with SEB and SEB Server,
you have to bind the LMS to the SEB Server.
- If not already done, install the `Open edX SEB Plugin <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-setup-rest-plugin-label>`_ on the Open edX system first.
- If you don't already have an API access account on Open edX side, `create one <https://seb-server.readthedocs.io/en/latest/lmssetup.html#lms-api-account-edx-label>`_
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "LMS Setup" within the navigation on the left hand side.
- Use the "Add LMS Setup" action from the right action pane to open a LMS Setup creation form.
- Give a unique name to the new LMS Setup for internally identification.
- Set the main URL that points to the new LMS system. This is usually the URL that is also used with the Browser to connect to the main page of the LMS system
- Set the API credentials that has been creates within step two (client-id, secret).
- Use the "Activate LMS Setup" action on the right action pane to test, save and activate the new LMS Setup within one step.
.. note::
If some form attributes are missing or not correct, the SEB Server system will respond with the usual form validation errors.
If the connection to the LMS is failing because of missing or wrong credentials or for any other reason the system is not able to connect to the LMS
the SEB Server will notify an error dialog to the user.
**Change API Credentials of an Active LMS Setup**
The API access account on the LMS has been expired and you have to create a new one or update the old one which both result in new API access credentials
that has to be set on the existing LMS Setup on the SEB Server.
.. image:: images/lmssetup/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/list.png
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "LMS Setup" within the navigation on the left hand side.
- Use the Filter above the list to find the specified LMS Setup.
- Select the LMS Setup from the list and use the "Edit LMS Setup" action from the right action pane to open the LMS Setup in edit mode.
- Set the new credentials and make sure, the LMS Setup is still active.
- Use the "Save LMS Setup" action form the right action pane to save the changes and test the connection.
.. note::
If some form attributes are missing or not correct, the SEB Server system will respond with the usual form validation errors.
If the connection to the LMS is failing because of missing or wrong credentials or for any other reason the system is not able to connect to the LMS
the SEB Server will notify an error dialog to the user.
**Deactivate LMS Setup**
A LMS system that was running on your campus to provide e-assessment with SEB and SEB Server has been shut down and you need to also deactivate
the setup and exams on the SEB Server for this LMS.
- Sign into SEB Server with your institutional administrator role account.
- Navigate to "Exam Administration" / "LMS Setup" within the navigation on the left hand side.
- Use the Filter above the list to find the specified LMS Setup.
- Select the specified LMS Setup from the list and use the "Deactivate LMS Setup" action from the right action pane.
- Alternatively you can also double-click on the LMS Setup to fist go into the detailed view of the LMS setup and use the "Deactivate LMS Setup" action there.
- The system informs you about the number of depending exams that also will be deactivated within the deactivation of the LMS Setup.
- Confirm the deactivation and notify that the LMS Setup now is listed as "Inactive" in the list.
- Navigate to "LMS Exam Lookup" to make sure the courses form the deactivated LMS Setup are not available anymore.
- Navigate also to "Exam" and make sure that all previously imported exams from the deactivated LMS Setup are not available anymore.
.. _lms-api-account-label:
API Access Account on LMS
--------------------------
.. _lms-api-account-edx-label:
**Create Open edX API Access Account**
To be able to create an API access-account on Open edX you need a user-account with staff and administration privileges.
**For Open edX Hawthorn and Ironwood versions following the steps below::**
- Login to Open edX LMS Administration with an appropriate user-account that has administration rights. And find the Users section:
.. image:: images/lmssetup/openEdxAPIAccess1.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess1.bmp
- Create a new User-Account that acts as an API account. The account must at least have the permissions to query the course API of Open edX and to access the seb_openedx plugin permission.
- Make sure that "Staff" status is checked for the account.
.. image:: images/lmssetup/openEdxAPIAccess2.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess2.bmp
- Back in the administration homepage, find the OAUT2 - Client section and create a new API Client Access for the given User-Account. The Client id and Client secret are automatically generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess3.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess3.bmp
.. image:: images/lmssetup/openEdxAPIAccess4.bmp
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/lmssetup/openEdxAPIAccess4.bmp
Once the client registration was successful the client id and client secret can be used within the SEB Server to access the course- and SEB-restriction API of Open edX as described in the next step section
.. note::
Since Open edX Juniper is using Django Oauth Toolkit instead of Django Oauth Provider the last step in the above guide looks slightly different. Please see below the last step for setting up on an Open edX Juniper version.
- Back in the administration homepage, find the DJANGO OAUTH TOOLKIT - Applications section and create a new API Application Access for the given User-Account. The Client id can be defined and the Client secret is automatically be generated by Open edx.
.. image:: images/lmssetup/openEdxAPIAccess5.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/documentation/docs/images/lmssetup/openEdxAPIAccess5.png
.. image:: images/lmssetup/openEdxAPIAccess6.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/documentation/docs/images/lmssetup/openEdxAPIAccess6.png
**Create Moodle API Access Account**
To be able to create an LMS Setup for Moodle you need a Moodle administrator or manager account. You can then use this account in the LMS Setup to connect to the LMS.
Since SEB Server uses some functions from the Moodle's mobile API, you have to make sure the web services for mobile apps are enabled within your Moodle setup.
To do so please login to Moodle with an administrator account and go to "Side Administration", scroll down to "Mobile App" and choose "Mobile Settings.
.. image:: images/lmssetup/moodle_mobile.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/documentation/docs/images/lmssetup/moodle_mobile.png
If you have a restrictive Moodle setup and troubles with the Moodle API account to use with SEB Server, please try to import the following
Moodle role profile within your Moodle instance. This profile will create a SEB Server role within Moodle that can be used to apply to an
API account to be used with SEB Server. The role defines only the necessary privileges and functions needed for SEB Server communication.
Moodle role and account settings: :download:`XML <files/webservice_seb-server.xml>`
.. note::
If you want to use Moodle with SEB Server, we recomend to install the new Moodle Plugin for SEB Server for better integration with Moodle.
This plugin comes with the common SEB Server integration features and improved Moodle bining. For more information see :ref:`lms-setup-moodle-plugin-label`
.. _lms-setup-rest-plugin-label:
Install SEB restriction API plugin
----------------------------------
.. _lms-setup-edx-plugin-label:
**Open edX SEB Plugin**
There is a SEB integration plugin developed and supported by `eduNEXT <https://www.edunext.co/>`_.
- `Documentation <https://seb-openedx.readthedocs.io/en/latest/>`_
- `Repository <https://github.com/eduNEXT/seb-openedx>`_
.. _lms-setup-moodle-plugin-label:
**Moodle Plugin for SEB Server**
There is a new SEB Server integration plugin for Moodle available since SEB Server 1.5 that can be used with the LMS Setup type Moodle with SEB Server Plugin.
This Plugin supports and improves all common SEB Server LMS binding features such as Course-Access, SEB Restriction and LMS Session Name Resolving.
It is also planed to extend and improve this plugin with new Moodle specific feature for further releases of SEB Server.
- `Documentation <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_
- `Repository <https://github.com/ethz-let/moodle-quizzaccess_sebserver>`_

View file

@ -10,7 +10,7 @@ As an exam supporter you see all running exams where you have been assigned to b
.. image:: images/monitoring/runningExams.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/runningExams.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/runningExams.png
To navigate to this list, click on the "Running Exams" menu within the "Monitoring" category. And you will see the list with the name of the
exam, the type and start- and end-time of the exam. If the exam you are looking for is not on the list, please check the start-time filter
@ -27,23 +27,19 @@ As default you should see at least all active connections instantly.
.. image:: images/monitoring/examMonitoring.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/examMonitoring.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/examMonitoring.png
The list is automatically sorted in the way that SEB connections with incidents came to the top of the list and are then sorted by the
"User Name or Session" identifier criteria. The general SEB client connection attributes are:
- **User Name or Session** This shows the the available user identification as soon as it is available in the following order:
- The IP Address of the device of the SEB client as long as the SEB has sent any user authentication yet.
- The machine name of the client device as soon as the SEB has sent it to SEB Server.
- The user login on the client machine as soon as the SEB has sent it to SEB Server.
- The user login on the LMS/Assessment Tool as soon as the SEB has sent it to SEB Server and SEB Server was able to resolve the login name via LMS/Assessment Tool
- **User Name or Session** The user account or user session identifier sent by the LMS to the SEB client and from SEB client to the SEB Server. This identifier may vary depending on the LMS that is involved. For Open edX it is the user account identifier (username).
- **Connection Info** The IP address of the device the connected SEB client is running plus some additional information about the operating system and the SEB version.
- **Status** The status of the SEB client connection.
The following SEB connection states are defined:
- **Connection Requested** This state appears from when a SEB client contacted to SEB Server the first time until the SEB client has finished up the hand-shake protocol with the SEB Server and the student has logged into the LMS/Assessment Tool.
- **Active** This state appears after successful hand-shake and login into LMS/Assessment Tool and stays as long as the SEB connection is available and not closed or terminated
- **Connection Requested** This state appears from when a SEB client contacted to SEB Server the first time until the SEB client has finished up the hand-shake protocol with the SEB Server and the student has logged into the LMS.
- **Active** This state appears after successful hand-shake and login into LMS and stays as long as the SEB connection is available and not closed or terminated
- **Missing** This state appears when a SEB connection is currently in active state but has missing ping (last ping last longer than the highest ping threshold of the ping indicator).
- **Closed** This state marks a closed SEB connection that was once active.
- **Canceled** This state marks a SEB connection that has been canceled.
@ -61,7 +57,7 @@ Double-click on an entry to go to the detail view of the specified SEB client co
.. image:: images/monitoring/search.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/search.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/search.png
**Instructions**
@ -91,37 +87,6 @@ are there for an exam and in which state.
.. note::
When a certain state filter is set to hide, and a particular SEB client connection switches into that state, it will automatically disappear from the list.
**New Issue and Group Filter**
A new SEB client group filter was added in SEB Server Version 1.6 to filter out certain configured SEB client groups. And since SEB Server Version 1.6
there is a new Issue filter for ASK (Application Security Key) checks as well as vor SEB client Version checks if they are enabled for an exam.
- For more information about SEB client groups, go to: :ref:`examClientgroups-label`
- For more information about ASK (Application Security Key), go to: :ref:`examASK-label`
- for more information about SEB client version restriction, please have a look into the :ref:`exam-configuration-label` SEB Settings
With the new Issue Filter it is possible to quickly filter out all SEB connections that do not have a certain issue. Or the other way
around, if you quickly want to show only the SEB client connections with a certain issue, you can use this filter.
- **ASK Issue Filter** This issue filter can be used to show only the SEB clients that has an ASK grant deny.
This is also possible for already closed SEB connections where you don's see the state of ASK grant within the status column anymore.
The image below shows active and inactive filter for active SEB connection as well as for inactive SEB connections.
.. image:: images/monitoring/issueFilter2.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/issueFilter2.png
.. image:: images/monitoring/issueFilter3.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/issueFilter3.png
- **SEB Client Group Filter** This issue filter filter all SEB client connection that are attached to a certain SEB client group.
.. image:: images/monitoring/issueFilter1.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/issueFilter1.png
Detailed View
-------------
@ -131,7 +96,7 @@ in a form and additional a list of all events and logs the SEB client has sent t
.. image:: images/monitoring/clientMonitoring.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/clientMonitoring.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/clientMonitoring.png
The table shows the event type that for all log-events is the log-level, The text and a value that has been sent with the event. The Value may be empty
and marked as "Not a Number" (NaN). In this table we also have the client- and the server-time of the event. The client-time is the time the SEB client
@ -140,13 +105,100 @@ overview temporary network latency or other irregularities, when those two time
In the detail view you are also able to use the instructions "Quit SEB Client" and "Mark as Canceled" for the selected SEB client connection.
Screen Proctoring
-----------------
Optional Live Proctoring
------------------------
With SEB Server version 2.0 there is not Live Proctoring support for Zoom and Jitsi Meet anymore but a while new and
fully integrated Screen Proctoring feature where SEB Clients take screen shots and send it to SEB Server for proctoring
.. attention::
Please visit the :ref:`screenprocotring-label` section for more information about Screen Proctoring with SEB Server.
Deprecation
The SEB Server live proctoring integration with Zoom and Jitsi Meet will be deprecated within the next upcoming version of SEB Server 1.6.
This means live proctoring is still available for dedicated SEB versions, but not actively maintained and supported any more.
Live proctoring is a new and yet experimental feature of SEB and SEB Server. The feature is fully optional and not enabled by default.
This section is about the live proctoring on monitoring a running exam and using the optional live proctoring within.
To configure the optional live proctoring for a specific exam please have a look at `Optional Live Proctoring <https://seb-server.readthedocs.io/en/latest/exam_proctoring.html#sebProctoringSettings>`_
.. note::
This feature is still in a prototype state and not all functionality might work as expected. Basically, the meeting features
are given or restricted by the meeting service that is used and the API and GUI that is given by that meeting service client
**Proctoring (Collecting) Rooms**
When the exam live proctoring feature is enabled for the running exam (see :ref:`sebProctoringSettings-label`), SEB Server will automatically create and collect
connected SEB clients into so called collecting rooms. The size of this collecting rooms can be defined within the proctoring settings in the exam.
One proctor can then open such a collecting room by left-clicking on the room action.
SEB Server will then open a proctoring window and join the proctor to the meeting where the participants of this room can be seen.
.. image:: images/monitoring/proctoringExam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/proctoringExam.png
A proctor is also able to view the names of all participants of a room by right-clicking on the specified room action.
SEB Server will then open a dialog with a list of all participants. Double-clicking on a particular participant will automatically
load the detailed monitoring view of that participant.
.. note::
A collecting room, once created, will live as long as the exam is running and not has been deleted. When the exam ends or is been deleted,
the collecting room will automatically get deleted on the SEB Server's persistent storage as well as on the meeting service side if needed.
**Town-Hall Feature**
Besides the usual collecting room, there is a town-hall room feature. By using the "Open Townhall" action from the right action pane, SEB Server enforce all SEB clients that
are in collecting rooms as well as new connecting SEB clients to leave their current meeting and join the town-hall meeting for as long as the town-hall is active.
Within the town-hall a proctor has the same features as in the collecting room but can connect to all participants at the same time.
When the town-hall is closed all connected SEB clients are enforced to leave the town-room and go back to its collecting room meetings again.
.. note::
This feature is only available if it is enabled within the exam proctoring settings in the exam administration.
**Single Room or One-to-One Room Feature**
Another live proctoring feature can be found in the detailed monitoring view of one particular SEB client connection. The single room features allows a proctor to connect to a single
participant and being able to view or communication with just this one participant. You can initiate this single room connection by using the "Single Room Proctoring" action on
the right action pane. SEB Server will then enforce the involved SEB client to leave its collecting room and join a newly created room with the proctor.
Within the single room a proctor has the same features as in the collecting room to communicate with the student or participant.
When the single room is closed the connected SEB clients is enforced to leave the single room and go back to its collecting room meetings again.
.. image:: images/monitoring/proctoringClient.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/proctoringClient.png
.. note::
This feature is only available if it is enabled within the exam proctoring settings in the exam administration.
**Broadcast Features**
Within a live proctoring window, a proctor can use the enabled features of the integrated meeting service and is able to communicate with the SEB clients by using one
of the following features if available for the service:
- **Start Audio Broadcast** Will enforce the SEB clients within the particular room to enable receive audio and a proctor can speak to the students that are in the meeting.
- **Start Video Broadcast** Will enforce the SEB clients within the particular room to enable receive audio and video and proctor is shown to the students that are in the meeting and can speak to them as well.
- **Enable Chat** Will enforce the SEB clients within the particular room to enable the chat feature and a proctor is able to chat with all students in the meeting.
While a broadcast feature is enabled by a proctor, the SEB Server sends an instruction to each SEB client that is within the same meeting to display the meeting client.
A student as well as a proctor is then able to use all the features of the meeting client of the integrated meeting service.
.. image:: images/monitoring/proctoringWindow.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/proctoringWindow.png
.. note::
Each of this features is only available if it is enabled within the exam proctoring settings in the exam administration.
**Known Issues with Live Proctoring**
- Within the Zoom service it often happens that a participant appears twice in a room or meeting. This is probably caused by SEB clients rejoining the meetings while rooms or feature settings are changed.
- In Zoom it is not possible to fully control a participant microphone. Therefore, it may happen that participant can hear each other even if no proctor is in the meeting.
- Within Jitsi Meet service when a proctor leaves the room it currently happens that a random participant became host/moderator since it is not possible in Jitsi Meet to have a meeting without host. We try to mitigate the problem with the `moderator plugin <https://github.com/nvonahsen/jitsi-token-moderation-plugin>`_
- In both services while broadcasting, it is not guaranteed that a student always sees the proctor. Usually, the meeting service shows or pins the participant that is currently speaking automatically.
.. note::
The above listed points are issues within the current proctoring integration and not solutions. We are working hard to improve the
proctoring integration but due to limited resources this can take its time. And please consider that proctoring integration with
SEB Server is still in prototype state.
Finished Exams
--------------
@ -160,7 +212,7 @@ In the "Finished Exams" list you can see all finished or archived exams and filt
.. image:: images/monitoring/finishedExams.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/finishedExams.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/finishedExams.png
To see a particular finished or archived exam you can just double-click in the list entry or use the View action on the right action pane.
In the exam view you see all SEB connections that has been connected to the exam during the exam run just like in the usual monitoring view
@ -169,7 +221,7 @@ User or Session Info, Connection Info or Status and are also able to sort the li
.. image:: images/monitoring/finishedExam.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/finishedExam.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/finishedExam.png
As in the usual monitoring view, you can show SEB client connection details by double-clicking on a list entry or by selecting a list entry
and use the View action on the right action pane.
@ -192,14 +244,14 @@ of an exam for example.
.. image:: images/monitoring/sebClientLogs.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/sebClientLogs.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/sebClientLogs.png
To show a detailed view of a specific SEB client log, just double click on the list entry or select the specific list entry and use the "Show Details"
action form the right action pane to open up a pop-up containing all related information about the SEB client log event.
.. image:: images/monitoring/sebClientLogDetail.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/monitoring/sebClientLogDetail.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/monitoring/sebClientLogDetail.png
Currently there is no export functionality to export all interesting SEB client logs to a CSV table for example. But such a feature will probably come
with a next version of SEB Server.

View file

@ -27,8 +27,8 @@ The key features of SEB Server are:
- Track user activities within user-activity logs for the whole SEB Server or a client.
- Create, export, and maintain SEB connection configurations. Those are needed to startup a Safe Exam Browser client with and contain all information to connect securely to the SEB Server.
- Create and maintain SEB exam configurations. Those are sent to a SEB client on connection setup and contain all SEB settings for a particular e-assessment.
- Setup and maintain Learning Management Systems (LMS/Assessment Tool) and e-assessment systems like Open edX, Moodle, OpenOlat or ANS to be able to navigate and find courses or quizzes on the system and to push access restrictions to it if supported by the particular LMS/Assessment Tool.
- Import and maintain courses or quizzes from an LMS/Assessment Tool. Setup everything that is needed for an e-assessment that is based on a course or quiz from the LMS/Assessment Tool
- Setup and maintain Learning Management Systems (LMS) and e-assessment systems like Open edX, Moodle, OpenOlat or ANS to be able to navigate and find courses or quizzes on the system and to push access restrictions to it if supported by the particular LMS/e-assessment suite.
- Import and maintain courses or quizzes from an LMS. Setup everything that is needed for an e-assessment that is based on a course or quiz from the LMS
- Apply indicators to the exams to indicate incidences while monitoring running e-assessments.
- Monitor running e-assessment and have an overview of all connected SEB clients. Manage SEB client connections and view logs sent by individual SEB clients.
@ -64,7 +64,7 @@ Another use-case would be to maintain registered user accounts and to give more
An institutional administrator has overall read access for its institution and can modify the institution properties as well as
create new or maintain existing user accounts for the belonging institution. Furthermore, an institutional administrator can create and maintain
learning management system (LMS/Assessment Tool) setups and SEB connection configurations for the belonging institution.
learning management system (LMS) setups and SEB connection configurations for the belonging institution.
A typical use-case for an institutional administrator would be to give the appropriate roles and privileges to newly registered users of the institution.
Or another use-case would be to create and maintain SEB connection configurations for the institutions and set up and maintain learning management systems
@ -99,7 +99,7 @@ What one will see first when applying to a SEB Server application is the login-s
.. image:: images/overview/login.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/login.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/login.png
If you are already registered you can use your username and password to log in. Or use the "Register" button to go to the registration
page to create a new user account. The newly created user account will only have the Exam Supporter role assigned. If you need another
@ -107,7 +107,7 @@ role or more privileges, this must be given and granted by an institutional admi
.. image:: images/overview/register.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/register.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/register.png
Fill in the registration form and create a new account. After the user account has been successfully created, the application redirects to the login page for login.
On the current version, an e-mail confirmation is not a feature of the SEB Server application and therefore the e-mail address is currently just informative.
@ -125,7 +125,7 @@ the main content section will show the activity content and the action that are
.. image:: images/overview/overview.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/overview.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/overview.png
In the header above on the right hand, we see the username of the currently logged-in user and an action button to sign out and go back to the login page.
@ -151,7 +151,7 @@ there are different types of filters:
.. image:: images/overview/list.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/list.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/list.png
A list can be sorted within a column by clicking on the column header. The order of sorting can be changed by clicking again on the same
column header of the sorted column. If sorting functionality is available for a column depends on the column type. There are a few columns
@ -173,7 +173,7 @@ To deselect a selected row just click it again then it will be removed from the
.. note::
Some actions on the right action pane are used only for single objects but also enabled on multi-selection. If you have multiple selections
and use a single object action like "View", "Edit" or "Copy" for example, then the system will take the fist selected object/row to work with.
and use a single object action like "View", "Edit" or "Copy" for exmaple, then the system will take the fist selected object/row to work with.
**Forms**
@ -189,12 +189,12 @@ The following images show the same form, once in read-only mode and once in edit
.. image:: images/overview/form_readonly.png
:alt: Form in read-only mode
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/form_readonly.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/form_readonly.png
.. image:: images/overview/form_edit.png
:alt: Form in edit mode
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/form_edit.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/form_edit.png
There usually is a tooltip on a form field element for almost all attributes that can be activated by either going over and staying on the form
field label or the input section.
@ -218,8 +218,8 @@ Actions are usually placed on the right action pane of the application and belon
.. note::
List action are disabled when nothing is selected from the list and get enabled as soon as one or more list items are selected.
Actions that are considered single selection actions, and are used with a multi selection on the list will only affect the first selected item in the list.
Actions that are considdered single selection actions, and are used with a multi selection on the list will only affect the first selected item in the list.
.. image:: images/overview/list_multiselect_actions.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/overview/list_multiselect_actions.png
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/master/docs/images/overview/list_multiselect_actions.png

View file

@ -1,5 +1,5 @@
docutils<0.18
sphinx==5.3.0
sphinx_rtd_theme==2.0.0
readthedocs-sphinx-search==0.3.2
urllib3==1.26.19
readthedocs-sphinx-search==0.1.1
urllib3==1.26.13

View file

@ -1,220 +0,0 @@
Screen Proctoring (New)
=======================
.. _screenprocotring-label:
Overview
---------
SEB Screen Proctoring is an integral component of the SEB Ecosystem, designed to monitor student screens during digital examinations.
This tool captures and displays screenshots taken by SEB, ensuring a secure and controlled testing environment.
Enable Screen Proctoring after an exam is created in the exam view.
.. image:: images/screen_proctoring/enable_screen_proctoring.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/enable_screen_proctoring.png
SEB Server needs to send an instruction to SEB to capture the screen and send the screenshot back to the server.
| To do this, enable screen proctoring in the SEB Settings.
.. image:: images/screen_proctoring/enable_screen_proctoring_seb_settings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/enable_screen_proctoring_seb_settings.png
SEB-Server and SEB are now ready to capture and to display screenshots.
Navigate to exam monitoring and click the button in the Screen Proctoring section. A new tab will be opened.
.. image:: images/screen_proctoring/open_screen_proctoring.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/open_screen_proctoring.png
|
|
Gallery View
---------
- When a SEB is connected to SEB-Server and the user is logged into LMS, a tile with the latest screenshot will appear.
- Press the "Grid-Size" dropdown to change the displayable sessions per screen to 4, 9 or 16.
- Use the arrow buttons and the left and right on the screen to change windows. The current page and the number of live sessions / total sessions is display next to the grid selection.
.. image:: images/screen_proctoring/gallery_view_live_grid_selection.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/gallery_view_live_grid_selection.png
- Use your mouse to hover over a tile or press the tab key. A "selected" tile reveals information and actions for the session.
- To change view preferences press the settings icon in the top right corner.
- Toggling "Show Name" and "Show IP" reveals the the Name and IP of the selected session.
- By default, all the sessions are sorted by lastname in ascending order. To change this press the "Sort by Name" button.
- The camera icon opens the Proctoring View in a new tab. See chapter "Proctoring View" for more infos.
- Click on the "expand"-icon to enlarge the screenshot.
.. image:: images/screen_proctoring/gallery_view_settings.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/gallery_view_settings.png
- The SEB-Client additionally sends metadata about the screenshot
- Metadata changes according to the content displayed on the screenshot
- Refer to the chapter "Metadata" for more details
- The camera icon opens the Proctoring View in a new tab. See chapter "Proctoring View" for more infos.
- Close the expanded view either by clicking on the collapse button or somewhere outside of the screenshot
.. image:: images/screen_proctoring/gallery_view_expanded.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/gallery_view_expanded.png
- A message box indicates that there are no live sessions available
- As soon as a sessions are connected the message box will disappear
|
|
Running Exams
---------
To get an overview of all running exams which your user has access to click on the "Running Exams" item in the navigation bar on the left side.
- By default, the exams are sorted by "Exam Start-Time" in ascending order
- Click on any table header to change the sorting according to your needs
- Click on the link the "Group" column to get to the gallery view of the group
.. image:: images/screen_proctoring/running_exam_no_selection.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/running_exam_no_selection.png
By clicking on the settings icon in the menu bar two options are displayed.
- Select "Show past exams" to display all finished exams (red)
- Select "Show upcoming exams" to display all exams which are planned for the future (orange)
.. image:: images/screen_proctoring/running_exam_selection.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/running_exam_selection.png
|
|
Proctoring View
---------
The proctoring view shows a recorded or live session in more detail.
To open a proctoring view of a sessions, either:
- Click on the camera icon in the gallery view
- Use the search feature
- Directly type in the url in the address bar: https://<your host>/recording/<sessionUuid>
A session can either be live or recorded.
- A live session is indicated by the "Live" button
- Navigating to the proctoring view during a live session always displays the latest screenshot and updates it accordingly
- Use the slider like any other video player
- This is also possible during a live session
- Click on the "Live" button to jump to the latest screenshot
.. image:: images/screen_proctoring/proctoring_overview_live.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/proctoring_overview_live.png
- The "Details"-Box on the right side displays information about the session and the current screenshot
- "SEB Session Info" is static
- "Screenshot Metadata" dynamically changes for every Screenshot
- Refer to the chapter "Metadata" for more details
.. image:: images/screen_proctoring/proctoring_overview.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/proctoring_overview.png
- The "Live" button disappears when the sessions disconnects from the server
- Set the playback speed with the "settings"-icon according to you preferences
- The current screenshot and the total amount of screenshot is display in the "Total"-Row
|
|
Search
---------
The search functionality is a powerful feature for finding sessions and screenshots.
Click on the "Search" item in the navigation bar on the left side.
**Form**
The upper part of the page is the search form.
There are four different categories of search criteria:
- Exam data
- Session / user data
- Screenshot metadata
- Time data
Use the form fields and the time / date selection to tailor the search result to your needs.
.. image:: images/screen_proctoring/search_form.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/images/screen_proctoring/search_form.png
**Search Results**
The search results are grouped into days and sorted by date in descending order.
Use the "date" button on the right side to change the sort oder.
- Clicking on any date expands the panel and displays all sessions (a session is a student using SEB) with recordings on that day
- By default, the sessions are sorted by "Start-Time" in descending order
- Click on the table header to change the sorting according to your preferences
- A click on the down facing arrow on the right side lists all screenshots of the given student
.. image:: images/screen_proctoring/search_results_sessions.png
:align: center
:target: https://raw.githubusercontent.com/SafeExamBrowser/seb-server/dev-2.0/docs/images/screen_proctoring/search_results_sessions.png
- By default, the screenshot are sorted by "Capture-Time" in ascending order
- The screenshots are grouped into the metadata "Application / Website"
- Grouping means that each successive screenshot that has the same "Application / Website" metadata is placed in the same group
- Click on the camera icon on the right side to open the proctoring view at this exact time
.. note::
If the session is still live the proctoring view won't open at the given time but instead jumps to the latest image.
|
|
Metadata
---------
Metadata in context of the Screen Proctoring component are data which belong to a screenshot.
They describe the content of the captured screen.
Currently the SEB-Client captures the following 5 metadata (additional values might follow in future releases):
- Focused Application: The name of the application that is currently in use and focused
- e.g. "SafeExamBrowser.Client.exe", "calc.exe"
- SEB-Browser-Title: The title of the SEB-Browser
- e.g. "Exam Moodle 12", "Moodle Exam Mathematics 3"
- Activity Details: The activity that triggered the screenshot
- e.g. "A key has been pressed", "Left mouse button has been pressed"
- SEB-Browser URL: The URL of the SEB-Browser
- e.g. "http://google.com", "http://moodle.com/exam123"
- Focused Window Title: The title of the focused window
- e.g. "Google Homepage", "Moodle Exam 123", "Calculator"

751
pom.xml
View file

@ -1,395 +1,414 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>ch.ethz.seb</groupId>
<artifactId>seb-server</artifactId>
<version>${revision}</version>
<name>seb-server</name>
<description>web-service for SEB maintenance and monitoring active SEB sessions</description>
<groupId>ch.ethz.seb</groupId>
<artifactId>seb-server</artifactId>
<version>${revision}</version>
<name>seb-server</name>
<description>web-service for SEB maintenance and monitoring active SEB sessions</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.6.15</version>
</parent>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.7.RELEASE</version>
</parent>
<packaging>jar</packaging>
<packaging>jar</packaging>
<properties>
<sebserver-version>2.0.0</sebserver-version>
<build-version>${sebserver-version}</build-version>
<revision>${sebserver-version}</revision>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
</properties>
<properties>
<sebserver-version>1.5.4-SNAPSHOT</sebserver-version>
<build-version>${sebserver-version}</build-version>
<revision>${sebserver-version}</revision>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Fix CVE-2021-44228 : https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot -->
<log4j2.version>2.17.0</log4j2.version>
</properties>
<!-- NOTE: There currently are two profiles, a default one to build on
<!-- NOTE: There currently are two profiles, a default one to build on
Java 11 (from eclipse and command-line) and one to build still on Java 8
to support the Jenkins build on CI-Server that still no Java 11 installed -->
<profiles>
<profile>
<id>Java 17</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<java.version>17</java.version>
</properties>
<build>
<finalName>${project.artifactId}-${build-version}</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<release>${java.version}</release>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<systemPropertyVariables>
<file.encoding>UTF-8</file.encoding>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.4.0-b180830.0438</version> <!--$NO-MVN-MAN-VER$ --> <!-- TODO move to stable version when available -->
</dependency>
</dependencies>
</profile>
<profile>
<id>let_reporting</id>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<systemPropertyVariables>
<file.encoding>UTF-8</file.encoding>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.10.0</version>
<configuration>
<skipEmptyReport>false</skipEmptyReport>
<failOnViolation>false</failOnViolation>
<targetJdk>${java.version}</targetJdk>
<linkXRef>false</linkXRef>
<rulesets>
<ruleset>pmd-rulesets.xml</ruleset>
</rulesets>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
<goal>cpd-check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.5.3.0</version>
<configuration>
<effort>Max</effort>
<failOnError>false</failOnError>
<threshold>Low</threshold>
<xmlOutput>true</xmlOutput>
<excludeFilterFile>findbugs-excludes.xml</excludeFilterFile>
</configuration>
<dependencies>
<!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>4.6.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<excludes>
<exclude>ch/ethz/seb/sebserver/gui/**/*</exclude>
<exclude>ch/ethz/seb/sebserver/webservice/datalayer/batis/mapper/**/*</exclude>
<exclude>ch/ethz/seb/sebserver/webservice/datalayer/batis/model/**/*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.4.0-b180830.0438</version> <!--$NO-MVN-MAN-VER$ --> <!-- TODO move to stable version when available -->
</dependency>
</dependencies>
</profile>
</profiles>
<build>
<profiles>
<profile>
<id>Java 11</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<java.version>11</java.version>
</properties>
<build>
<finalName>${project.artifactId}-${build-version}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<release>17</release>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<release>${java.version}</release>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<systemPropertyVariables>
<file.encoding>UTF-8</file.encoding>
</systemPropertyVariables>
</configuration>
</plugin>
</plugins>
</build>
</build>
<dependencies>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<version>2.4.0-b180830.0438</version><!--$NO-MVN-MAN-VER$ --> <!-- TODO move to stable version when available -->
</dependency>
</dependencies>
</profile>
<dependencies>
<!-- Data Base -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<profile>
<id>let_reporting</id>
<properties>
<java.version>1.8</java.version>
</properties>
<build>
<plugins>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.dynamic-sql</groupId>
<artifactId>mybatis-dynamic-sql</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.4.6</version>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<!-- Spring / Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<!-- NOTE since org.springframework.security.oauth is not fully migrated
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.10.0</version>
<configuration>
<skipEmptyReport>false</skipEmptyReport>
<failOnViolation>false</failOnViolation>
<targetJdk>${java.version}</targetJdk>
<linkXRef>false</linkXRef>
<rulesets>
<ruleset>pmd-rulesets.xml</ruleset>
</rulesets>
</configuration>
<executions>
<execution>
<goals>
<goal>check</goal>
<goal>cpd-check</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>findbugs-maven-plugin</artifactId>
<version>3.0.4</version>
<configuration>
<effort>Max</effort>
<failOnError>false</failOnError>
<threshold>Low</threshold>
<xmlOutput>true</xmlOutput>
<excludeFilterFile>findbugs-excludes.xml</excludeFilterFile>
</configuration>
<executions>
<execution>
<id>analyze-compile</id>
<phase>compile</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>-->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.5.3.0</version>
<configuration>
<effort>Max</effort>
<failOnError>false</failOnError>
<threshold>Low</threshold>
<xmlOutput>true</xmlOutput>
<excludeFilterFile>findbugs-excludes.xml</excludeFilterFile>
</configuration>
<dependencies>
<!-- overwrite dependency on spotbugs if you want to specify the version of spotbugs -->
<dependency>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs</artifactId>
<version>4.6.0</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.3</version>
<executions>
<execution>
<id>prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
<configuration>
<excludes>
<exclude>ch/ethz/seb/sebserver/gui/**/*</exclude>
<exclude>ch/ethz/seb/sebserver/webservice/datalayer/batis/mapper/**/*</exclude>
<exclude>ch/ethz/seb/sebserver/webservice/datalayer/batis/model/**/*</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>10</source>
<target>10</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- Data Base -->
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.6</version>
</dependency>
<dependency>
<groupId>org.mybatis.dynamic-sql</groupId>
<artifactId>mybatis-dynamic-sql</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
<!-- Spring / Spring Boot -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
<!-- <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
<exclusions>
<exclusion>
<artifactId>spring-boot-starter-reactor-netty</artifactId>
<groupId>org.springframework.boot</groupId>
</exclusion>
</exclusions>
</dependency>-->
<!-- NOTE since org.springframework.security.oauth is not fully migrated
to spring-boot-starter-security we have to declare a separate version here.
This refers to the latest version of spring-security-oauth2 and should be
compatible with the overall version of spring boot SEE: https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M5-Release-Notes#oauth-20-support
TODO: once spring-security-oauth2 is fully migrated we should be able to
remove this dependency -->
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
<version>1.0.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.3.6.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-jwt</artifactId>
<version>1.0.9.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- Springdoc-openapi -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.10</version>
</dependency>
<!-- Springdoc-openapi -->
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<version>1.5.10</version>
</dependency>
<!-- Flyway -->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>7.8.2</version>
</dependency>
<!-- Flyway -->
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>7.8.2</version>
</dependency>
<!-- EHCache -->
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
<!-- EHCache -->
<dependency>
<groupId>org.ehcache</groupId>
<artifactId>ehcache</artifactId>
</dependency>
<dependency>
<groupId>javax.cache</groupId>
<artifactId>cache-api</artifactId>
</dependency>
<!-- Apache HTTP -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!-- Apache HTTP -->
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!-- Eclipse RAP / RWT -->
<dependency>
<groupId>org.eclipse.rap</groupId>
<artifactId>org.eclipse.rap.rwt</artifactId>
<version>3.15.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.rap</groupId>
<artifactId>org.eclipse.rap.fileupload</artifactId>
<version>3.7.0</version>
</dependency>
<!-- Eclipse RAP / RWT -->
<dependency>
<groupId>org.eclipse.rap</groupId>
<artifactId>org.eclipse.rap.rwt</artifactId>
<version>3.15.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.rap</groupId>
<artifactId>org.eclipse.rap.fileupload</artifactId>
<version>3.7.0</version>
</dependency>
<!-- Misc -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.cryptonode.jncryptor</groupId>
<artifactId>jncryptor</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.10.0</version>
</dependency>
<dependency>
<groupId>com.github.vladimir-bukhtoyarov</groupId>
<artifactId>bucket4j-core</artifactId>
<version>4.10.0</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.1</version>
</dependency>
<!-- Misc -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.10.9</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<dependency>
<groupId>org.cryptonode.jncryptor</groupId>
<artifactId>jncryptor</artifactId>
<version>1.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>com.github.vladimir-bukhtoyarov</groupId>
<artifactId>bucket4j-core</artifactId>
<version>4.10.0</version>
</dependency>
<!-- Testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<!-- Testing -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</dependencies>
</project>

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2019 ETH Zürich, IT Services
* Copyright (c) 2019 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
@ -122,14 +122,9 @@ public class ClientHttpRequestFactoryService {
log.debug("Initialize ClientHttpRequestFactory with proxy: {}", proxy);
}
final SSLContext sslContext = org.apache.http.ssl.SSLContexts
.custom()
.loadTrustMaterial(null, new TrustAllStrategy())
.build();
final HttpComponentsClientHttpRequestFactory factory =
new HttpComponentsClientHttpRequestFactory();
factory.setHttpClient(this.createProxiedClient(proxy, sslContext));
factory.setHttpClient(this.createProxiedClient(proxy, null));
factory.setBufferRequestBody(false);
factory.setConnectionRequestTimeout(this.connectionRequestTimeout);
factory.setConnectTimeout(this.connectTimeout);
@ -138,14 +133,8 @@ public class ClientHttpRequestFactoryService {
} else {
final SSLContext sslContext = org.apache.http.ssl.SSLContexts
.custom()
.loadTrustMaterial(null, new TrustAllStrategy())
.build();
final HttpClient client = HttpClients.custom()
.setSSLContext(sslContext)
.build();
final HttpComponentsClientHttpRequestFactory devClientHttpRequestFactory = new HttpComponentsClientHttpRequestFactory(client);
final HttpComponentsClientHttpRequestFactory devClientHttpRequestFactory =
new HttpComponentsClientHttpRequestFactory();
devClientHttpRequestFactory.setBufferRequestBody(false);
devClientHttpRequestFactory.setConnectionRequestTimeout(this.connectionRequestTimeout);
@ -174,7 +163,7 @@ public class ClientHttpRequestFactoryService {
final String truststoreFilePath = this.environment
.getProperty("server.ssl.trust-store", "");
final SSLContext sslContext;
SSLContext sslContext;
if (StringUtils.isBlank(truststoreFilePath)) {
if (log.isDebugEnabled()) {
@ -274,8 +263,6 @@ public class ClientHttpRequestFactoryService {
if (sslContext != null) {
clientBuilder.setSSLContext(sslContext);
} else {
}
return clientBuilder.build();

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2019 ETH Zürich, IT Services
* Copyright (c) 2019 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018 ETH Zürich, IT Services
* Copyright (c) 2018 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
@ -27,7 +27,7 @@ import ch.ethz.seb.sebserver.gbl.profile.ProdWebServiceProfile;
/** SEB-Server (Safe Exam Browser Server) is a server component to maintain and support
* Exams running with SEB (Safe Exam Browser). TODO add link(s)
* <p>
*
* SEB-Server uses Spring Boot as main framework is divided into two main components,
* a webservice component that implements the business logic, persistence management
* and defines a REST API to expose the services over HTTP. The second component is a
@ -49,7 +49,7 @@ public class SEBServer {
}
/*
* Add a redirect Connector on http port to redirect all http calls
* Add an additional redirect Connector on http port to redirect all http calls
* to https.
*
* NOTE: This works with TomcatServletWebServerFactory and embedded tomcat.

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2019 ETH Zürich, IT Services
* Copyright (c) 2019 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2019 ETH Zürich, IT Services
* Copyright (c) 2019 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 2018 ETH Zürich, IT Services
* Copyright (c) 2018 ETH Zürich, Educational Development and Technology (LET)
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
@ -40,6 +40,9 @@ import ch.ethz.seb.sebserver.gbl.profile.WebServiceProfile;
@Order(7)
public class WebSecurityConfig extends WebSecurityConfigurerAdapter implements ErrorController {
private static final String ERROR_PATH = "/sebserver/error";
private static final String CHECK_PATH = "/sebserver/check";
@Value("${sebserver.webservice.http.redirect.gui}")
private String guiRedirect;
@Value("${sebserver.webservice.api.exam.endpoint.discovery}")
@ -74,15 +77,31 @@ public class WebSecurityConfig extends WebSecurityConfigurerAdapter implements E
return new BCryptPasswordEncoder(4);
}
@RequestMapping(API.CHECK_PATH)
@Override
public void configure(final WebSecurity web) {
web
.ignoring()
.antMatchers(ERROR_PATH)
.antMatchers(CHECK_PATH)
.antMatchers(this.examAPIDiscoveryEndpoint)
.antMatchers(this.adminAPIEndpoint + API.INFO_ENDPOINT + API.LOGO_PATH_SEGMENT + "/**")
.antMatchers(this.adminAPIEndpoint + API.INFO_ENDPOINT + API.INFO_INST_PATH_SEGMENT + "/**")
.antMatchers(this.adminAPIEndpoint + API.REGISTER_ENDPOINT);
}
@RequestMapping(CHECK_PATH)
public void check() throws IOException {
}
@RequestMapping(API.ERROR_PATH)
@RequestMapping(ERROR_PATH)
public void handleError(final HttpServletResponse response) throws IOException {
response.getOutputStream().print(response.getStatus());
response.setHeader(HttpHeaders.LOCATION, this.guiRedirect);
response.flushBuffer();
}
@Override
public String getErrorPath() {
return ERROR_PATH;
}
}

Some files were not shown because too many files have changed in this diff Show more