diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9e0ebb9809408231ec3310be27d261a9097aaa14..5434f70a6bceb27a6de84f970929b37d691819b3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -16,7 +16,7 @@ variables:
   SECRET_DETECTION_EXCLUDED_PATHS: ""
 
 services:
-  - name: griefed/gitlab-ci-cd:2.0.0
+  - name: griefed/gitlab-ci-cd:2.0.2
     alias: docker
 
 sast:
@@ -357,7 +357,7 @@ coverage:
       cobertura: build/cobertura.xml
 
 Gradle Dependency-Checks:
-  image: griefed/baseimage-ubuntu-jdk-8:2.0.3
+  image: griefed/baseimage-ubuntu-jdk-8:2.0.5
   stage: Other
   allow_failure: true
   before_script:
diff --git a/Dockerfile.gradle b/Dockerfile.gradle
index a807ef95cd142f3ce17bb9049b038bc829e702db..04c8eb077ae475ed88d58ce1d2723d52a5afed9e 100644
--- a/Dockerfile.gradle
+++ b/Dockerfile.gradle
@@ -1,4 +1,4 @@
-FROM griefed/baseimage-ubuntu-jdk-8:2.0.3 AS builder
+FROM griefed/baseimage-ubuntu-jdk-8:2.0.5 AS builder
 
 ARG BRANCH_OR_TAG=main
 
@@ -15,7 +15,7 @@ RUN \
   ./gradlew about installQuasar cleanFrontend assembleFrontend copyDist build --info -x test && \
   ls -ahl ./build/libs/
 
-FROM griefed/baseimage-ubuntu-jdk-8:2.0.3
+FROM griefed/baseimage-ubuntu-jdk-8:2.0.5
 
 LABEL maintainer="Griefed <griefed@griefed.de>"
 LABEL description="DESCRIPTION"
diff --git a/Dockerfile.gradle.develop b/Dockerfile.gradle.develop
index a807ef95cd142f3ce17bb9049b038bc829e702db..04c8eb077ae475ed88d58ce1d2723d52a5afed9e 100644
--- a/Dockerfile.gradle.develop
+++ b/Dockerfile.gradle.develop
@@ -1,4 +1,4 @@
-FROM griefed/baseimage-ubuntu-jdk-8:2.0.3 AS builder
+FROM griefed/baseimage-ubuntu-jdk-8:2.0.5 AS builder
 
 ARG BRANCH_OR_TAG=main
 
@@ -15,7 +15,7 @@ RUN \
   ./gradlew about installQuasar cleanFrontend assembleFrontend copyDist build --info -x test && \
   ls -ahl ./build/libs/
 
-FROM griefed/baseimage-ubuntu-jdk-8:2.0.3
+FROM griefed/baseimage-ubuntu-jdk-8:2.0.5
 
 LABEL maintainer="Griefed <griefed@griefed.de>"
 LABEL description="DESCRIPTION"
diff --git a/frontend/package-lock.json b/frontend/package-lock.json
index 506d13cbc7a221ec436597401414b20373efeb40..752ce0c93bbd140cdbfc0e0406509075ef68670d 100644
--- a/frontend/package-lock.json
+++ b/frontend/package-lock.json
@@ -12,12 +12,12 @@
         "axios": "0.25.0",
         "core-js": "3.21.1",
         "quasar": "2.5.5",
-        "tsparticles": "1.40.0"
+        "tsparticles": "1.41.2"
       },
       "devDependencies": {
         "@babel/eslint-parser": "7.17.0",
         "@quasar/app": "3.3.3",
-        "electron": "17.0.0",
+        "electron": "17.0.1",
         "electron-packager": "15.4.0",
         "eslint": "8.9.0",
         "eslint-config-prettier": "8.3.0",
@@ -4985,9 +4985,9 @@
       }
     },
     "node_modules/electron": {
-      "version": "17.0.0",
-      "resolved": "https://registry.npmjs.org/electron/-/electron-17.0.0.tgz",
-      "integrity": "sha512-3UXcBQMwbMWdPvGHaSdPMluHrd+/bc+K143MyvE5zVZ+S1XCHt4sau7dj6svJHns5llN0YG/c6h/vRfadIp8Zg==",
+      "version": "17.0.1",
+      "resolved": "https://registry.npmjs.org/electron/-/electron-17.0.1.tgz",
+      "integrity": "sha512-CBReR/QEOpgwMdt59lWCtj9wC8oHB6aAjMF1lhXcGew132xtp+C5N6EaXb/fmDceVYLouziYjbNcpeXsWrqdpA==",
       "dev": true,
       "hasInstallScript": true,
       "dependencies": {
@@ -5185,9 +5185,9 @@
       "dev": true
     },
     "node_modules/electron/node_modules/@types/node": {
-      "version": "14.18.0",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz",
-      "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==",
+      "version": "14.18.12",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz",
+      "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==",
       "dev": true
     },
     "node_modules/elementtree": {
@@ -11925,9 +11925,9 @@
       "dev": true
     },
     "node_modules/tsparticles": {
-      "version": "1.40.0",
-      "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.40.0.tgz",
-      "integrity": "sha512-BqmVHm1+w0lRW7+lawZ1Mych2J5AgYKDLs+CpnDk/KBeOOwwEa9y1x7Sp0lUz21TZN0wfwmUnu2rlYsS/QfhEA==",
+      "version": "1.41.2",
+      "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.41.2.tgz",
+      "integrity": "sha512-DWnttSF4adMlvKWMTXuP0BvKEGXuwamatgzgEKp7nF4YqHzejjKySGeUpmEDCKAR0BnsmatYNZ+8cU8eMrTFjw==",
       "funding": [
         {
           "type": "github",
@@ -16814,9 +16814,9 @@
       "dev": true
     },
     "electron": {
-      "version": "17.0.0",
-      "resolved": "https://registry.npmjs.org/electron/-/electron-17.0.0.tgz",
-      "integrity": "sha512-3UXcBQMwbMWdPvGHaSdPMluHrd+/bc+K143MyvE5zVZ+S1XCHt4sau7dj6svJHns5llN0YG/c6h/vRfadIp8Zg==",
+      "version": "17.0.1",
+      "resolved": "https://registry.npmjs.org/electron/-/electron-17.0.1.tgz",
+      "integrity": "sha512-CBReR/QEOpgwMdt59lWCtj9wC8oHB6aAjMF1lhXcGew132xtp+C5N6EaXb/fmDceVYLouziYjbNcpeXsWrqdpA==",
       "dev": true,
       "requires": {
         "@electron/get": "^1.13.0",
@@ -16825,9 +16825,9 @@
       },
       "dependencies": {
         "@types/node": {
-          "version": "14.18.0",
-          "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.0.tgz",
-          "integrity": "sha512-0GeIl2kmVMXEnx8tg1SlG6Gg8vkqirrW752KqolYo1PHevhhZN3bhJ67qHj+bQaINhX0Ra3TlWwRvMCd9iEfNQ==",
+          "version": "14.18.12",
+          "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.12.tgz",
+          "integrity": "sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==",
           "dev": true
         }
       }
@@ -21986,9 +21986,9 @@
       "dev": true
     },
     "tsparticles": {
-      "version": "1.40.0",
-      "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.40.0.tgz",
-      "integrity": "sha512-BqmVHm1+w0lRW7+lawZ1Mych2J5AgYKDLs+CpnDk/KBeOOwwEa9y1x7Sp0lUz21TZN0wfwmUnu2rlYsS/QfhEA=="
+      "version": "1.41.2",
+      "resolved": "https://registry.npmjs.org/tsparticles/-/tsparticles-1.41.2.tgz",
+      "integrity": "sha512-DWnttSF4adMlvKWMTXuP0BvKEGXuwamatgzgEKp7nF4YqHzejjKySGeUpmEDCKAR0BnsmatYNZ+8cU8eMrTFjw=="
     },
     "tunnel": {
       "version": "0.0.6",
diff --git a/frontend/package.json b/frontend/package.json
index a09975dba3f0045d20a843f32c8e8002ca738d4a..98fe4f299e657fd63b0f77ee233df45090cdff53 100644
--- a/frontend/package.json
+++ b/frontend/package.json
@@ -30,11 +30,11 @@
     "axios": "0.25.0",
     "quasar": "2.5.5",
     "core-js": "3.21.1",
-    "tsparticles": "1.40.0"
+    "tsparticles": "1.41.2"
   },
   "devDependencies": {
     "@babel/eslint-parser": "7.17.0",
-    "electron": "17.0.0",
+    "electron": "17.0.1",
     "@quasar/app": "3.3.3",
     "electron-packager": "15.4.0",
     "eslint": "8.9.0",
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 7454180f2ae8848c63b8b4dea2cb829da983f2fa..41d9927a4d4fb3f96a785543079b8df6723c946b 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 2e6e5897b5285c749d75662c65ac5d2904c37bc6..41dfb87909a877d96c3af4adccce4c7a301b55a2 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,5 +1,5 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
diff --git a/gradlew b/gradlew
index c53aefaa5fc898b78c7265ea99a3bdc09349a7d0..1b6c787337ffb79f0e3cf8b1e9f00f680a959de1 100644
--- a/gradlew
+++ b/gradlew
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 #
-# Copyright © 2015-2021 the original authors.
+# Copyright © 2015-2021 the original authors.
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -32,10 +32,10 @@
 #       Busybox and similar reduced shells will NOT work, because this script
 #       requires all of these POSIX shell features:
 #         * functions;
-#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
-#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
-#         * compound commands having a testable exit status, especially «case»;
-#         * various built-in commands including «command», «set», and «ulimit».
+#         * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
+#           «${var#prefix}», «${var%suffix}», and «$( cmd )»;
+#         * compound commands having a testable exit status, especially «case»;
+#         * various built-in commands including «command», «set», and «ulimit».
 #
 #   Important for patching:
 #
diff --git a/gradlew.bat b/gradlew.bat
index 107acd32c4e687021ef32db511e8a206129b88ec..ac1b06f93825db68fb0c0b5150917f340eaa5d02 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -1,89 +1,89 @@
-@rem
-@rem Copyright 2015 the original author or authors.
-@rem
-@rem Licensed under the Apache License, Version 2.0 (the "License");
-@rem you may not use this file except in compliance with the License.
-@rem You may obtain a copy of the License at
-@rem
-@rem      https://www.apache.org/licenses/LICENSE-2.0
-@rem
-@rem Unless required by applicable law or agreed to in writing, software
-@rem distributed under the License is distributed on an "AS IS" BASIS,
-@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-@rem See the License for the specific language governing permissions and
-@rem limitations under the License.
-@rem
-
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem  Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Resolve any "." and ".." in APP_HOME to make it shorter.
-for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto execute
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
+@rem
+@rem Copyright 2015 the original author or authors.
+@rem
+@rem Licensed under the Apache License, Version 2.0 (the "License");
+@rem you may not use this file except in compliance with the License.
+@rem You may obtain a copy of the License at
+@rem
+@rem      https://www.apache.org/licenses/LICENSE-2.0
+@rem
+@rem Unless required by applicable law or agreed to in writing, software
+@rem distributed under the License is distributed on an "AS IS" BASIS,
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+@rem See the License for the specific language governing permissions and
+@rem limitations under the License.
+@rem
+
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto execute
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega