Skip to content

Commit

Permalink
Merge branch 'develop' into bugfix/plagiarism-detection-undefined
Browse files Browse the repository at this point in the history
  • Loading branch information
Strohgelaender authored Dec 5, 2023
2 parents 1f49325 + 7101235 commit 6d58c61
Show file tree
Hide file tree
Showing 144 changed files with 4,279 additions and 1,432 deletions.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 26 additions & 25 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,31 +94,32 @@ Once the PR is ready to merge, notify the responsible feature maintainer:

#### Maintainers

| Feature / Aspect | Maintainer |
|--------------------------------|-------------------------------------------------------------------------------------------------|
| Programming exercises | [@krusche](https://github.com/krusche) |
| Quiz exercises | [@Santia-go](https://github.com/Santia-go) |
| Modeling exercises (+ Apollon) | [@krusche](https://github.com/krusche) |
| Text exercises | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| File upload exercises | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Exam mode | [@krusche](https://github.com/krusche) |
| Grading | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Assessment | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Communication | [@rabeatwork](https://github.com/rabeatwork) |
| Notifications | [@rabeatwork](https://github.com/rabeatwork) |
| Team Exercises | [@krusche](https://github.com/krusche) |
| Lectures | [@maximiliansoelch](https://github.com/maximiliansoelch) [@bassner](https://github.com/bassner) |
| Integrated Markdown Editor | [@maximiliansoelch](https://github.com/maximiliansoelch) [@bassner](https://github.com/bassner) |
| Plagiarism checks | [@MarkusPaulsen](https://github.com/MarkusPaulsen) |
| Learning analytics | [@bassner](https://github.com/bassner) |
| Adaptive learning | [@bassner](https://github.com/bassner) |
| Tutorial Groups | [@Santia-go](https://github.com/Santia-go) |
| Iris | [@bassner](https://github.com/bassner) |
| Scalability | [@mtze](https://github.com/mtze) |
| Usability | [@rabeatwork](https://github.com/rabeatwork) |
| Performance | [@rabeatwork](https://github.com/rabeatwork) |
| Infrastructure | [@mtze](https://github.com/mtze) |
| Mobile apps (iOS + Android) | [@krusche](https://github.com/krusche) [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Feature / Aspect | Maintainer |
|--------------------------------|-----------------------------------------------------------------------------------------------------|
| Programming exercises | [@krusche](https://github.com/krusche) |
| Quiz exercises | [@Santia-go](https://github.com/Santia-go) |
| Modeling exercises (+ Apollon) | [@krusche](https://github.com/krusche) |
| Text exercises | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| File upload exercises | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Exam mode | [@krusche](https://github.com/krusche) |
| Grading | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Assessment | [@maximiliansoelch](https://github.com/maximiliansoelch) |
| Communication | [@rabeatwork](https://github.com/rabeatwork) |
| Notifications | [@rabeatwork](https://github.com/rabeatwork) |
| Team Exercises | [@krusche](https://github.com/krusche) |
| Lectures | [@maximiliansoelch](https://github.com/maximiliansoelch) [@bassner](https://github.com/bassner) |
| Integrated Markdown Editor | [@maximiliansoelch](https://github.com/maximiliansoelch) [@bassner](https://github.com/bassner) |
| Plagiarism checks | [@MarkusPaulsen](https://github.com/MarkusPaulsen) |
| Learning analytics | [@bassner](https://github.com/bassner) |
| Adaptive learning | [@bassner](https://github.com/bassner) [@maximiliananzinger](https://github.com/maximiliananzinger) |
| Learning paths | [@maximiliananzinger](https://github.com/maximiliananzinger) |
| Tutorial Groups | [@Santia-go](https://github.com/Santia-go) |
| Iris | [@bassner](https://github.com/bassner) |
| Scalability | [@mtze](https://github.com/mtze) |
| Usability | [@rabeatwork](https://github.com/rabeatwork) |
| Performance | [@rabeatwork](https://github.com/rabeatwork) |
| Infrastructure | [@mtze](https://github.com/mtze) |
| Mobile apps (iOS + Android) | [@krusche](https://github.com/krusche) [@maximiliansoelch](https://github.com/maximiliansoelch) |


### Building for production
Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ plugins {
}

group = "de.tum.in.www1.artemis"
version = "6.7.0"
version = "6.7.1"
description = "Interactive Learning with Individual Feedback"

java {
Expand Down
1 change: 1 addition & 0 deletions docs/admin/setup.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ For information on how to set up extension services to activate additional funct
:includehidden:
:maxdepth: 2

setup/security
setup/programming-exercises
setup/customization
setup/legal-documents
Expand Down
56 changes: 56 additions & 0 deletions docs/admin/setup/security.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
Security
========


Passwords
---------

The Artemis configuration files contain a few default passwords and secrets
that have to be overridden in your own configuration files or via environment
variables (`Spring relaxed binding <https://github.com/spring-projects/spring-boot/wiki/Relaxed-Binding-2.0>`_).

.. code-block:: yaml
artemis:
user-management:
internal-admin:
username: "artemis-admin"
# can be changed later, Artemis will update the password in the database
# and connected systems on the next start
password: "artemis-admin"
jhipster:
security:
authentication:
jwt:
# used to sign the JWT tokens for user authentication
# can be changed later, will require all users to log in again
#
# encoded using Base64 (you can use `echo 'secret-key'|base64` on your command line)
base64-secret: ""
registry:
password: "change-me" # only for distributed setups with multiple Artemis instances
spring:
prometheus:
# if Prometheus monitoring is enabled: a comma-separated list of
# IPs that are allowed to access the metrics endpoint
monitoring-ip: "127.0.0.1"
websocket:
broker:
username: "guest" # only for distributed setups
password: "guest" # only for distributed setups
.. note::

The usernames/passwords for external systems (Bamboo, Bitbucket, GitLab,
Jenkins, …) are not listed here, since the general setup documentation
describes how to set up those systems.
Without replacing the default values, the connection to them will not work.


.. note::

Ensure restrictive access to the configuration files, so that access is only
possible for the system account that runs Artemis and administrators.

2 changes: 1 addition & 1 deletion docs/dev/development-process.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Naming Conventions for GitHub Pull Requests

1. Possible feature tags are: ``Programming exercises``, ``Quiz exercises``, ``Modeling exercises``, ``Text exercises``, ``File upload exercises``, ``Exam mode``,
``Grading``, ``Assessment``, ``Communication``, ``Notifications``, ``Team exercises``, ``Lectures``, ``Plagiarism checks``, ``Learning analytics``,
``Adaptive learning``, ``Tutorial groups``, ``Iris``.
``Adaptive learning``, ``Learning path``, ``Tutorial groups``, ``Iris``.
2. If the change is not visible to end users, or it is a pure development or test improvement, we use the term “``Development``:”.
3. Everything else belongs to the ``General`` category.

Expand Down
52 changes: 45 additions & 7 deletions docs/user/adaptive-learning.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,16 @@ Adaptive Learning

Overview
--------
Artemis allows students and instructors to define and track competencies, which are overarching learning objectives that tie together various lectures and exercises. Adaptive Learning in Artemis is centered around these competencies, allowing users to customize their learning experience and objectives.
Artemis allows students and instructors to define and track competencies, which are overarching learning objectives that tie together various lectures and exercises. Adaptive Learning in Artemis is centered around these competencies, allowing users to customize their learning experience and objectives. Furthermore, Artemis is able to provide students with individualized learning paths based on these competencies and their relations.

Competencies
------------

Competencies for Students
-------------------------
Competencies allow students to understand the learning goals of the course and measure their progress towards achieving them.
^^^^^^^^^^^^^^^^^^^^^^^^^
Competencies allow students to understand the learning goals of the course and measure their progress toward achieving them.

In Artemis, a competency is considered mastered by a student when they completed all linked learning objects (progress equals 100%) and have an adequate confidence level (average score greater or equal to mastery threshold set by the instructor).
In Artemis, a competency is considered mastered by a student when they complete all linked learning objects (progress equals 100%) and have an adequate confidence level (average score greater or equal to the mastery threshold set by the instructor).

In case competencies are defined, students can get an overview of their individual progress and confidence on the competencies tab.
The page lists all competencies with their title, description, and `taxonomy <https://en.wikipedia.org/wiki/Bloom%27s_taxonomy>`_.
Expand All @@ -28,12 +31,12 @@ When clicking on a competency, a page opens and displays detailed statistics abo
The tripartite rings show the student's advancement:
The **blue ring describes the progress**, the percentage of completed lecture units and exercises.
The **green ring visualizes the confidence**, the average score in all linked exercises in relation to the threshold required for mastering the competency (set by the instructor).
The **red ring is a weighted metric of the student's progress and confidence**, which shows the overall advancement towards competency mastery.
The **red ring is a weighted metric of the student's progress and confidence**, which shows the overall advancement toward competency mastery.

|students-learning-goals-statistics-detail|

Competencies for Instructors
----------------------------
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Instructors have the ability to define competencies for a course, linking various lectures and exercises together under overarching learning objectives. They also have the ability to set the mastery threshold for these competencies.

Competencies are overarching learning objectives that link together different course materials.
Expand Down Expand Up @@ -64,6 +67,35 @@ Alternatively, instructors can also link competencies to an exercise or lecture

|instructors-learning-goals-link|

Learning Paths
--------------

Learning Paths for Students
^^^^^^^^^^^^^^^^^^^^^^^^^^^

Students can access their learning path in the learning path tab. Here, they can access recommended lecture units and participate in exercises.
Recommendations (visualized on the left) are generated via an intelligent agent that accounts for multiple metrics, e.g. prior performance, confidence, relations, and due dates, to support students in their selection of learning resources.
Students can use the up and down buttons to navigate to the previous or next recommendation respectively. Hovering over a node in the list will display more information about the learning resource.

|students-learning-path-participation|

Students can access their learning path graph via the eye icon on the top left. The graph displays all competencies, lecture units, exercises, and their relations. Each competency consists of a start node, visualized by the competency rings displaying progress, confidence, and overall mastery, and an end node represented by a checkered flag. Edges link learning resources to a competency via the respective start and end nodes. If the resource is still pending, it displays as a play symbol. Upon completion of the task, it appears as a checkmark.
Users can read the graph from top to bottom, starting with the competencies that have no prerequisites, continuing downwards toward competencies that build upon prior knowledge. Students can zoom, pan, and drag the graph to navigate. For better orientation, the top right corner contains a mini-map.
On the bottom right of the graph, users can view a legend describing the different types of nodes.
Hovering over any node, e.g. exercise or competency, opens a popover containing essential information about the item, e.g. the type of exercise and title, or for competencies, the details, including the description.

|students-learning-path-graph|

Learning Paths for Instructors
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Instructors can enable learning paths for their courses either by editing the course or on the dedicated learning path management page. This will generate individualized learning paths for all course participants.

Once the feature is enabled, instructors get access to each student's learning path. Instructors can search for students by login or name and view their respective learning path graph.

|instructors-learning-path-management|



.. |students-learning-goals-statistics| image:: adaptive-learning/students-learning-goals-statistics.png
:width: 1000
Expand All @@ -74,4 +106,10 @@ Alternatively, instructors can also link competencies to an exercise or lecture
.. |instructors-learning-goal-edit| image:: adaptive-learning/instructors-learning-goal-edit.png
:width: 1000
.. |instructors-learning-goals-link| image:: adaptive-learning/instructors-learning-goals-link.png
:width: 600
:width: 600
.. |students-learning-path-participation| image:: adaptive-learning/students-learning-path-participation.png
:width: 1000
.. |students-learning-path-graph| image:: adaptive-learning/students-learning-path-graph.png
:width: 1000
.. |instructors-learning-path-management| image:: adaptive-learning/instructors-learning-path-management.png
:width: 1000
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "artemis",
"version": "6.7.0",
"version": "6.7.1",
"description": "Interactive Learning with Individual Feedback",
"private": true,
"license": "MIT",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,27 @@
@Profile("lti")
public class CustomLti13Configurer extends Lti13Configurer {

/** Path for login. **/
private static final String LOGIN_PATH = "/auth-login";

/** Path for initiating login process. */
private static final String LOGIN_INITIATION_PATH = "/initiate-login";

/** Base path for LTI 1.3 API endpoints. */
public static final String LTI13_BASE_PATH = "/api/public/lti13";

/** Full path for LTI 1.3 login. */
public static final String LTI13_LOGIN_PATH = LTI13_BASE_PATH + LOGIN_PATH;

/** Full path for LTI 1.3 login initiation. */
public static final String LTI13_LOGIN_INITIATION_PATH = LTI13_BASE_PATH + LOGIN_INITIATION_PATH;

/** Redirect proxy path for LTI 1.3 login. */
public static final String LTI13_LOGIN_REDIRECT_PROXY_PATH = LTI13_BASE_PATH + "/auth-callback";

/** Path for LTI 1.3 deep linking. */
public static final String LTI13_DEEPLINKING_PATH = "/lti/deep-linking/";

public CustomLti13Configurer() {
super.ltiPath(LTI13_BASE_PATH);
super.loginInitiationPath(LOGIN_INITIATION_PATH);
Expand Down
Loading

0 comments on commit 6d58c61

Please sign in to comment.