# Platform Changelog

**The INJECT Exercise Platform (IXP) is released in different versions.
Most significant changes between the releases are listed below.**

**This list is not complete, as each new release also includes numerous fixes and smaller improvements.**

## You might find useful

- If you want to learn more about backend and frontend version compatibility, read the second
    section in our [Installation Guide](tech/installation/overview.md#installation).
- If you are looking for the changelog of the definitions, go here:
    [definitions changelog](tech/architecture/definitions/CHANGELOG.md)
- If you are interested in the definition and platform compatibility, go here:
    [version compatibility](tech/version-compatibility.md)

______________________________________________________________________

## 4.0.1 (Frontend)

- toolbar moved to the right side in the trainee view for better accessibility
- fixed an issue where the email overlay in instructor view would close unexpectedly
- added information about the recipients for emails in the instructor TODO-list
- when switching between teams in instructor view, the same page now remains selected
    (e.g., emails, questionnaires)

## 4.0.1 (Frontend)

- toolbar moved to the right side in the trainee view for better accessibility
- fixed an issue where the email overlay in instructor view would close unexpectedly
- added information about the recipients for emails in the instructor TODO-list
- when switching between teams in instructor view, the same page now remains selected
    (e.g., emails, questionnaires)

## 4.0.2 (Backend)

- fixed an issue where files uploaded by trainees during an exercise were not deleted from
    the database when the exercise was deleted
- fixed an issue where exercise logs could contain uploaded files that were not actually uploaded
    during the exercise, see [known issues](known-issues.md#log-export) for more details.

## 4.0.1 (Backend)

- the database connection is now automatically closed when an exercise loop stops/finishes,
    which should prevent an excessive number of connections staying open unnecessarily
- changed how update times are logged during the exercise,
    now only the updates which took longer than the average update time are logged
- added a new environment variable which controls the maximum number of open connections to PostgreSQL,
    to utilize this new variable, use the new `v4.0.1` compose file and add it to the `.env` file,
    see the [setup](./tech/installation/setup.md#environment-variables) for more details

## 4.0.0

### New Exercise Definition Features

The exercise definition format was extended with new features to enable the creation of more
complex and engaging exercises.
The most important changes are listed below:

- added new questionnaire capabilities
    - added automatically evaluated free-form questions
    - added configurable minimum and maximum length settings for free-form questions
    - added multiple choice questions
    - added repeatable questionnaires
        - allows teams to answer a single questionnaire multiple times
            until some condition is fulfilled,
            for more details,
            see the [questionnaire documentation](./tech/architecture/definitions/README.md#questionnairesyml)
    - added questionnaires, which can be submitted after the exercise finishes
- added the option to mark email addresses as trusted
    - their emails are marked as digitally signed
- added a documents drive
    - creating a space for important documents accessible throughout the exercise

An exhaustive changelog can be found [here](./tech/architecture/definitions/CHANGELOG.md).

### Trainee Performance Evaluation and Reflection

A set of new features was added to allow instructors to evaluate and reflect on trainee performance.
Furthermore, instructors can now allow trainees to self-evaluate by looking at their performance overview:

- added configurable score to milestone, learning activities, and learning objectives
- added user score export to CSV to analyst view
- added instructor comments for trainee actions
- added performance overview to trainee view
    - enabled by instructors per-team

### Improved Analytics Capabilities

The analyst view was extended with new features to allow better analysis of the actions performed during the exercise:

- added new types of actions logged
    - added questionnaire submission logs
    - added questionnaire review logs
    - added file download logs
    - added milestone modification logs
    - with info about the source of the modification (automatic, trainee, or instructor action)
    - added confirmation button logs
- added user info to action logs
    - allowing the analyst to distinguish between users within the same team
- added team selection to analyst view
- overhauled the overview page in analyst view
    - providing better insights into the exercise progress and trainee performance

### Editor Updates

[The editor](INJECT_process/prepare/editor.md) has been updated to support the latest definition version.
All known bugs were fixed, and the user experience was improved:

- updated editor to support the latest definition version (0.23.3)
- overhauled editor learning activity creation
    - with better user experience and activity type categorization

### Extended Exercise and Platform Configuration

Significant new features were added to allow more flexible exercise and platform configuration:

- added on-demand exercises with configurable time interval
    - these can be started by the assigned trainees at any time within the defined time interval
- added multitenancy support
    - multiple exercises can be run simultaneously on the same platform instance
- added optional log-collection in OpenSearch for exercises
    - logging the actions performed by trainees within a prepared sandbox VM
    - *currently an experimental feature*
- added runtime platform configuration for admins
    - with maximum number of teams per exercise setting
    - with the default exercise loop update interval setting
- added time format setting
    - with absolute, relative, and in-exercise time options
- added Czech localization to trainee view

### Improved User Management

More features were added for easier user management:

- added guest account generation
    - with expiration configuration
    - with bulk account creation
    - with credentials export to CSV or PDF
- added the option to change the initial generated password to a custom password
- added the option for trainees to register to the platform by themselves
    - with allowed email domains configuration
- added user tag management

### New Exercise-Panel Features

Several new features were added to the exercise panel to improve the user experience:

- added instructor noticeboard
    - allowing instructors to share important notes about the current usage of the platform
    - with configurable expiration for each note
- added loading exercise definitions from GitLab

### Technical Improvements

A significant technical improvement was made to the exercise loop to enhance the responsiveness of exercises:

- fixed overrun issue in loop thread
    - allowing shorter exercise loop update intervals
    - making the exercise significantly more responsive
- a number of performance improvements throughout the whole platform

### Improved User Experience

Many smaller improvements were made to enhance the overall user experience:

- refined forms within the platform
    - providing better feedback when creating exercises, submitting questionnaires, etc.

## 3.0.3 (frontend)

Adds a notification when the WebSocket connection fails. This notification will prompt users to log
out and log in again to refresh the data.

## 3.0.2 (frontend)

Fixes email between teams. Increases the maximum number of teams per exercise to 50 (from 20).

## 3.0.1 (frontend)

Fixes the checkbox in table selection. Fixes exercise log download. Adds a descriptive message when
downloading a file not supported by the file viewer.

## 3.0.0

### Improved UI

Improvements were made to the platform to create a better user experience and increase efficiency:

- improved home page
    - added ability to view non-running exercises
- improved Instructor View
    - new Overview page
    - new Team Overview page
    - improved team selector
    - new ability to change milestone states for all/selected teams
    - new ability to move in-exercise time
- improved Exercise Panel
    - new "info" button for definitions and exercises
- extended Analyst View
    - new learning objectives page
    - new questionnaires page

### New options for exercise definition

Additional optional features were added to the
[exercise definition format](./tech/architecture/definitions/README.md) to enable you to create more
complex and engaging exercises. The most important changes are listed below:

- ability to embed media (audio, video, and images) in injects
- support for more file types in document viewer (video, audio, and SVGs)
- optional confirmation buttons in injects
- open-ended questions
- ability to define multiple info channels
- added tools without parameters
- improved overlay inject UI

An exhaustive changelog can be found [here](./tech/architecture/definitions/CHANGELOG.md).

Furthermore, an interactive wizard called Editor was added for exercise definition. You can find
more information about it [here](INJECT_process/prepare/editor.md).

## 2.0.0

Changelog is not available for this version

## 1.0.0

Initial version of IXP
