100 lines
5.1 KiB
ReStructuredText
100 lines
5.1 KiB
ReStructuredText
.. _lms-setup-label:
|
|
|
|
Leraning Management System Setup
|
|
================================
|
|
|
|
Overview
|
|
--------
|
|
|
|
To be able to connect to a learning management system (LMS) and view and use the courses provided by a LMS is an essential feature of the SEB Server.
|
|
To create an exam or e-assessment, based on a course existing on a LMS, to use with SEB we need some data of this course from the LMS like,
|
|
start- end-time, name and others. If we furthermore want to be able to automatically restrict the course for SEB access only we need to have proper
|
|
integration API's in place on both sides, the LMS and the SEB Server. This integration is separated into two main features so far. This are:
|
|
|
|
**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 essential 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.
|
|
|
|
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: The standard system `Moodle REST API <https://docs.moodle.org/dev/Web_service_API_functions>`_. The SEB Server uses the "core_course" endpoints to get course data.
|
|
|
|
|
|
**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 a exam
|
|
setup will be possiblie but without automated SEB restriction feature.
|
|
|
|
To be able connect to an LMS from SEB Server, we need to create an API access-acount on the LMS side that can be used by the SEB Server to
|
|
access the API of the LMS. How to to 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.
|
|
|
|
|
|
|
|
|
|
|
|
Use Cases
|
|
---------
|
|
|
|
**Create a new LMS Setup for Open edX**
|
|
|
|
**Create a new LMS Setup for Moodle**
|
|
|
|
|
|
|
|
.. _lms-api-account-label:
|
|
Create API Access Account on LMS
|
|
--------------------------
|
|
|
|
**Open edX**
|
|
|
|
To be able to create an API access-account on Open edX you need a user-account with staff and administration privileges. 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
|
|
|
|
|
|
.. _lms-setup-rest-plugin-label:
|
|
Install SEB restriction API plugin
|
|
----------------------------------
|
|
|
|
**Open edX**
|
|
|
|
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>`_
|
|
|