diff --git a/package-lock.json b/package-lock.json
index d8b60be3e0e4bcdd802407e5db76e4258e8b6eba..a658219db06bf6d68e3a6e0c45c8362d09b3c144 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,9 +9,9 @@
       "version": "2.0.0",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/client-s3": "~3.637.0",
-        "@aws-sdk/lib-storage": "~3.637.0",
-        "@aws-sdk/s3-request-presigner": "~3.637.0",
+        "@aws-sdk/client-s3": "^3.637.0",
+        "@aws-sdk/lib-storage": "^3.637.0",
+        "@aws-sdk/s3-request-presigner": "^3.637.0",
         "@fortawesome/fontawesome-free": "~6.6.0",
         "@popperjs/core": "~2.11.8",
         "ajv": "~8.17.0",
@@ -279,18 +279,18 @@
       }
     },
     "node_modules/@aws-sdk/client-s3": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.637.0.tgz",
-      "integrity": "sha512-y6UC94fsMvhKbf0dzfnjVP1HePeGjplfcYfilZU1COIJLyTkMcUv4XcT4I407CGIrvgEafONHkiC09ygqUauNA==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.645.0.tgz",
+      "integrity": "sha512-RjT/mfNv4yr1uv/+aEXgSIxC5EB+yHPSU7hH0KZOZrvZEFASLl0i4FeoHzbMEOH5KdKGAi0uu3zRP3D1y45sKg==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha1-browser": "5.2.0",
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.0",
-        "@aws-sdk/client-sso-oidc": "3.637.0",
-        "@aws-sdk/client-sts": "3.637.0",
+        "@aws-sdk/client-sso-oidc": "3.645.0",
+        "@aws-sdk/client-sts": "3.645.0",
         "@aws-sdk/core": "3.635.0",
-        "@aws-sdk/credential-provider-node": "3.637.0",
+        "@aws-sdk/credential-provider-node": "3.645.0",
         "@aws-sdk/middleware-bucket-endpoint": "3.620.0",
         "@aws-sdk/middleware-expect-continue": "3.620.0",
         "@aws-sdk/middleware-flexible-checksums": "3.620.0",
@@ -300,11 +300,11 @@
         "@aws-sdk/middleware-recursion-detection": "3.620.0",
         "@aws-sdk/middleware-sdk-s3": "3.635.0",
         "@aws-sdk/middleware-ssec": "3.609.0",
-        "@aws-sdk/middleware-user-agent": "3.637.0",
+        "@aws-sdk/middleware-user-agent": "3.645.0",
         "@aws-sdk/region-config-resolver": "3.614.0",
         "@aws-sdk/signature-v4-multi-region": "3.635.0",
         "@aws-sdk/types": "3.609.0",
-        "@aws-sdk/util-endpoints": "3.637.0",
+        "@aws-sdk/util-endpoints": "3.645.0",
         "@aws-sdk/util-user-agent-browser": "3.609.0",
         "@aws-sdk/util-user-agent-node": "3.614.0",
         "@aws-sdk/xml-builder": "3.609.0",
@@ -348,9 +348,9 @@
       }
     },
     "node_modules/@aws-sdk/client-sso": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.637.0.tgz",
-      "integrity": "sha512-+KjLvgX5yJYROWo3TQuwBJlHCY0zz9PsLuEolmXQn0BVK1L/m9GteZHtd+rEdAoDGBpE0Xqjy1oz5+SmtsaRUw==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.645.0.tgz",
+      "integrity": "sha512-2rc8TjnsNddOeKQ/pfNN7deNvGLXAeKeYtHtGDAiM2qfTKxd2sNcAsZ+JCDLyshuD4xLM5fpUyR0X8As9EAouQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha256-browser": "5.2.0",
@@ -359,10 +359,10 @@
         "@aws-sdk/middleware-host-header": "3.620.0",
         "@aws-sdk/middleware-logger": "3.609.0",
         "@aws-sdk/middleware-recursion-detection": "3.620.0",
-        "@aws-sdk/middleware-user-agent": "3.637.0",
+        "@aws-sdk/middleware-user-agent": "3.645.0",
         "@aws-sdk/region-config-resolver": "3.614.0",
         "@aws-sdk/types": "3.609.0",
-        "@aws-sdk/util-endpoints": "3.637.0",
+        "@aws-sdk/util-endpoints": "3.645.0",
         "@aws-sdk/util-user-agent-browser": "3.609.0",
         "@aws-sdk/util-user-agent-node": "3.614.0",
         "@smithy/config-resolver": "^3.0.5",
@@ -397,22 +397,22 @@
       }
     },
     "node_modules/@aws-sdk/client-sso-oidc": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.637.0.tgz",
-      "integrity": "sha512-27bHALN6Qb6m6KZmPvRieJ/QRlj1lyac/GT2Rn5kJpre8Mpp+yxrtvp3h9PjNBty4lCeFEENfY4dGNSozBuBcw==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.645.0.tgz",
+      "integrity": "sha512-X9ULtdk3cO+1ysurEkJ1MSnu6U00qodXx+IVual+1jXX4RYY1WmQmfo7uDKf6FFkz7wW1DAqU+GJIBNQr0YH8A==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.0",
         "@aws-sdk/core": "3.635.0",
-        "@aws-sdk/credential-provider-node": "3.637.0",
+        "@aws-sdk/credential-provider-node": "3.645.0",
         "@aws-sdk/middleware-host-header": "3.620.0",
         "@aws-sdk/middleware-logger": "3.609.0",
         "@aws-sdk/middleware-recursion-detection": "3.620.0",
-        "@aws-sdk/middleware-user-agent": "3.637.0",
+        "@aws-sdk/middleware-user-agent": "3.645.0",
         "@aws-sdk/region-config-resolver": "3.614.0",
         "@aws-sdk/types": "3.609.0",
-        "@aws-sdk/util-endpoints": "3.637.0",
+        "@aws-sdk/util-endpoints": "3.645.0",
         "@aws-sdk/util-user-agent-browser": "3.609.0",
         "@aws-sdk/util-user-agent-node": "3.614.0",
         "@smithy/config-resolver": "^3.0.5",
@@ -446,27 +446,27 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.637.0"
+        "@aws-sdk/client-sts": "^3.645.0"
       }
     },
     "node_modules/@aws-sdk/client-sts": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.637.0.tgz",
-      "integrity": "sha512-xUi7x4qDubtA8QREtlblPuAcn91GS/09YVEY/RwU7xCY0aqGuFwgszAANlha4OUIqva8oVj2WO4gJuG+iaSnhw==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.645.0.tgz",
+      "integrity": "sha512-6azXYtvtnAsPf2ShN9vKynIYVcJOpo6IoVmoMAVgNaBJyllP+s/RORzranYZzckqfmrudSxtct4rVapjLWuAMg==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-crypto/sha256-browser": "5.2.0",
         "@aws-crypto/sha256-js": "5.2.0",
-        "@aws-sdk/client-sso-oidc": "3.637.0",
+        "@aws-sdk/client-sso-oidc": "3.645.0",
         "@aws-sdk/core": "3.635.0",
-        "@aws-sdk/credential-provider-node": "3.637.0",
+        "@aws-sdk/credential-provider-node": "3.645.0",
         "@aws-sdk/middleware-host-header": "3.620.0",
         "@aws-sdk/middleware-logger": "3.609.0",
         "@aws-sdk/middleware-recursion-detection": "3.620.0",
-        "@aws-sdk/middleware-user-agent": "3.637.0",
+        "@aws-sdk/middleware-user-agent": "3.645.0",
         "@aws-sdk/region-config-resolver": "3.614.0",
         "@aws-sdk/types": "3.609.0",
-        "@aws-sdk/util-endpoints": "3.637.0",
+        "@aws-sdk/util-endpoints": "3.645.0",
         "@aws-sdk/util-user-agent-browser": "3.609.0",
         "@aws-sdk/util-user-agent-node": "3.614.0",
         "@smithy/config-resolver": "^3.0.5",
@@ -557,15 +557,15 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-ini": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.637.0.tgz",
-      "integrity": "sha512-h+PFCWfZ0Q3Dx84SppET/TFpcQHmxFW8/oV9ArEvMilw4EBN+IlxgbL0CnHwjHW64szcmrM0mbebjEfHf4FXmw==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.645.0.tgz",
+      "integrity": "sha512-LlZW0qwUwNlTaAIDCNpLbPsyXvS42pRIwF92fgtCQedmdnpN3XRUC6hcwSYI7Xru3GGKp3RnceOvsdOaRJORsw==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-sdk/credential-provider-env": "3.620.1",
         "@aws-sdk/credential-provider-http": "3.635.0",
         "@aws-sdk/credential-provider-process": "3.620.1",
-        "@aws-sdk/credential-provider-sso": "3.637.0",
+        "@aws-sdk/credential-provider-sso": "3.645.0",
         "@aws-sdk/credential-provider-web-identity": "3.621.0",
         "@aws-sdk/types": "3.609.0",
         "@smithy/credential-provider-imds": "^3.2.0",
@@ -578,20 +578,20 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-sts": "^3.637.0"
+        "@aws-sdk/client-sts": "^3.645.0"
       }
     },
     "node_modules/@aws-sdk/credential-provider-node": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.637.0.tgz",
-      "integrity": "sha512-yoEhoxJJfs7sPVQ6Is939BDQJZpZCoUgKr/ySse4YKOZ24t4VqgHA6+wV7rYh+7IW24Rd91UTvEzSuHYTlxlNA==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.645.0.tgz",
+      "integrity": "sha512-eGFFuNvLeXjCJf5OCIuSEflxUowmK+bCS+lK4M8ofsYOEGAivdx7C0UPxNjHpvM8wKd8vpMl5phTeS9BWX5jMQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-sdk/credential-provider-env": "3.620.1",
         "@aws-sdk/credential-provider-http": "3.635.0",
-        "@aws-sdk/credential-provider-ini": "3.637.0",
+        "@aws-sdk/credential-provider-ini": "3.645.0",
         "@aws-sdk/credential-provider-process": "3.620.1",
-        "@aws-sdk/credential-provider-sso": "3.637.0",
+        "@aws-sdk/credential-provider-sso": "3.645.0",
         "@aws-sdk/credential-provider-web-identity": "3.621.0",
         "@aws-sdk/types": "3.609.0",
         "@smithy/credential-provider-imds": "^3.2.0",
@@ -621,12 +621,12 @@
       }
     },
     "node_modules/@aws-sdk/credential-provider-sso": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.637.0.tgz",
-      "integrity": "sha512-Mvz+h+e62/tl+dVikLafhv+qkZJ9RUb8l2YN/LeKMWkxQylPT83CPk9aimVhCV89zth1zpREArl97+3xsfgQvA==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.645.0.tgz",
+      "integrity": "sha512-d6XuChAl5NCsCrUexc6AFb4efPmb9+66iwPylKG+iMTMYgO1ackfy1Q2/f35jdn0jolkPkzKsVyfzsEVoID6ew==",
       "license": "Apache-2.0",
       "dependencies": {
-        "@aws-sdk/client-sso": "3.637.0",
+        "@aws-sdk/client-sso": "3.645.0",
         "@aws-sdk/token-providers": "3.614.0",
         "@aws-sdk/types": "3.609.0",
         "@smithy/property-provider": "^3.1.3",
@@ -657,9 +657,9 @@
       }
     },
     "node_modules/@aws-sdk/lib-storage": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.637.0.tgz",
-      "integrity": "sha512-HiNGOP4a1QrCWwO1joKw4mCp19nLXoF9K52PislBaYDI35IlHC3DP6MeOg5zmElwtL1GtEHFBy5olfPWPsLyLg==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/lib-storage/-/lib-storage-3.645.0.tgz",
+      "integrity": "sha512-9DTtmWgGBiXSb9XIJVFL26tv20vuvHesYCnQKk/ILNPFS40pMUlJBCWFi3HBAtYZU6jk5XKd696/kFyKLYsAAQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@smithy/abort-controller": "^3.1.1",
@@ -674,7 +674,7 @@
         "node": ">=16.0.0"
       },
       "peerDependencies": {
-        "@aws-sdk/client-s3": "^3.637.0"
+        "@aws-sdk/client-s3": "^3.645.0"
       }
     },
     "node_modules/@aws-sdk/middleware-bucket-endpoint": {
@@ -827,13 +827,13 @@
       }
     },
     "node_modules/@aws-sdk/middleware-user-agent": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.637.0.tgz",
-      "integrity": "sha512-EYo0NE9/da/OY8STDsK2LvM4kNa79DBsf4YVtaG4P5pZ615IeFsD8xOHZeuJmUrSMlVQ8ywPRX7WMucUybsKug==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.645.0.tgz",
+      "integrity": "sha512-NpTAtqWK+49lRuxfz7st9for80r4NriCMK0RfdJSoPFVntjsSQiQ7+2nW2XL05uVY633e9DvCAw8YatX3zd1mw==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-sdk/types": "3.609.0",
-        "@aws-sdk/util-endpoints": "3.637.0",
+        "@aws-sdk/util-endpoints": "3.645.0",
         "@smithy/protocol-http": "^4.1.0",
         "@smithy/types": "^3.3.0",
         "tslib": "^2.6.2"
@@ -860,9 +860,9 @@
       }
     },
     "node_modules/@aws-sdk/s3-request-presigner": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.637.0.tgz",
-      "integrity": "sha512-URRiEDZEICyfAXmXcXREQCsvZrapITAymvg46p1Xjnuv7PTnUB0SF18B2omPL0E5d/X+T3O9NKdtot+BqJbIWw==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.645.0.tgz",
+      "integrity": "sha512-YyEwg2ryp8ECDl/W9oJC4FqqtZdkIbaVXveqwv93Aq2hgui0XrTFbhZNXJUvfU/mBVjx3Kud/FQTB3Bx0qwqPQ==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-sdk/signature-v4-multi-region": "3.635.0",
@@ -940,9 +940,9 @@
       }
     },
     "node_modules/@aws-sdk/util-endpoints": {
-      "version": "3.637.0",
-      "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.637.0.tgz",
-      "integrity": "sha512-pAqOKUHeVWHEXXDIp/qoMk/6jyxIb6GGjnK1/f8dKHtKIEs4tKsnnL563gceEvdad53OPXIt86uoevCcCzmBnw==",
+      "version": "3.645.0",
+      "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.645.0.tgz",
+      "integrity": "sha512-Oe+xaU4ic4PB1k3pb5VTC1/MWES13IlgpaQw01bVHGfwP6Yv6zZOxizRzca2Y3E+AyR+nKD7vXtHRY+w3bi4bg==",
       "license": "Apache-2.0",
       "dependencies": {
         "@aws-sdk/types": "3.609.0",
@@ -2735,9 +2735,9 @@
       "license": "MIT"
     },
     "node_modules/@types/node": {
-      "version": "20.16.4",
-      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.4.tgz",
-      "integrity": "sha512-ioyQ1zK9aGEomJ45zz8S8IdzElyxhvP1RVWnPrXDf6wFaUb+kk1tEcVVJkF7RPGM0VWI7cp5U57oCPIn5iN1qg==",
+      "version": "20.16.5",
+      "resolved": "https://registry.npmjs.org/@types/node/-/node-20.16.5.tgz",
+      "integrity": "sha512-VwYCweNo3ERajwy0IUlqqcyZ8/A7Zwa9ZP3MnENWcB11AejO+tLy3pu850goUW2FC/IJMdZUfKpX/yxL1gymCA==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -2987,68 +2987,68 @@
       }
     },
     "node_modules/@volar/language-core": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.2.tgz",
-      "integrity": "sha512-sONt5RLvLL1SlBdhyUSthZzuKePbJ7DwFFB9zT0eyWpDl+v7GXGh/RkPxxWaR22bIhYtTzp4Ka1MWatl/53Riw==",
+      "version": "2.4.4",
+      "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-2.4.4.tgz",
+      "integrity": "sha512-kO9k4kTLfxpg+6lq7/KAIv3m2d62IHuCL6GbVgYZTpfKvIGoAIlDxK7pFcB/eczN2+ydg/vnyaeZ6SGyZrJw2w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@volar/source-map": "2.4.2"
+        "@volar/source-map": "2.4.4"
       }
     },
     "node_modules/@volar/source-map": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.2.tgz",
-      "integrity": "sha512-qiGfGgeZ5DEarPX3S+HcFktFCjfDrFPCXKeXNbrlB7v8cvtPRm8YVwoXOdGG1NhaL5rMlv5BZPVQyu4EdWWIvA==",
+      "version": "2.4.4",
+      "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-2.4.4.tgz",
+      "integrity": "sha512-xG3PZqOP2haG8XG4Pg3PD1UGDAdqZg24Ru8c/qYjYAnmcj6GBR64mstx+bZux5QOyRaJK+/lNM/RnpvBD3489g==",
       "dev": true,
       "license": "MIT"
     },
     "node_modules/@volar/typescript": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.2.tgz",
-      "integrity": "sha512-m2uZduhaHO1SZuagi30OsjI/X1gwkaEAC+9wT/nCNAtJ5FqXEkKvUncHmffG7ESDZPlFFUBK4vJ0D9Hfr+f2EA==",
+      "version": "2.4.4",
+      "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-2.4.4.tgz",
+      "integrity": "sha512-QQMQRVj0fVHJ3XdRKiS1LclhG0VBXdFYlyuHRQF/xLk2PuJuHNWP26MDZNvEVCvnyUQuUQhIAfylwY5TGPgc6w==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "@volar/language-core": "2.4.2",
+        "@volar/language-core": "2.4.4",
         "path-browserify": "^1.0.1",
         "vscode-uri": "^3.0.8"
       }
     },
     "node_modules/@vue/compiler-core": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.1.tgz",
-      "integrity": "sha512-WdjF+NSgFYdWttHevHw5uaJFtKPalhmxhlu2uREj8cLP0uyKKIR60/JvSZNTp0x+NSd63iTiORQTx3+tt55NWQ==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.3.tgz",
+      "integrity": "sha512-adAfy9boPkP233NTyvLbGEqVuIfK/R0ZsBsIOW4BZNfb4BRpRW41Do1u+ozJpsb+mdoy80O20IzAsHaihRb5qA==",
       "license": "MIT",
       "dependencies": {
         "@babel/parser": "^7.25.3",
-        "@vue/shared": "3.5.1",
+        "@vue/shared": "3.5.3",
         "entities": "^4.5.0",
         "estree-walker": "^2.0.2",
         "source-map-js": "^1.2.0"
       }
     },
     "node_modules/@vue/compiler-dom": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.1.tgz",
-      "integrity": "sha512-Ao23fB1lINo18HLCbJVApvzd9OQe8MgmQSgyY5+umbWj2w92w9KykVmJ4Iv2US5nak3ixc2B+7Km7JTNhQ8kSQ==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.3.tgz",
+      "integrity": "sha512-wnzFArg9zpvk/811CDOZOadJRugf1Bgl/TQ3RfV4nKfSPok4hi0w10ziYUQR6LnnBAUlEXYLUfZ71Oj9ds/+QA==",
       "license": "MIT",
       "dependencies": {
-        "@vue/compiler-core": "3.5.1",
-        "@vue/shared": "3.5.1"
+        "@vue/compiler-core": "3.5.3",
+        "@vue/shared": "3.5.3"
       }
     },
     "node_modules/@vue/compiler-sfc": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.1.tgz",
-      "integrity": "sha512-DFizMNH8eDglLhlfwJ0+ciBsztaYe3fY/zcZjrqL1ljXvUw/UpC84M1d7HpBTCW68SNqZyIxrs1XWmf+73Y65w==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.3.tgz",
+      "integrity": "sha512-P3uATLny2tfyvMB04OQFe7Sczteno7SLFxwrOA/dw01pBWQHB5HL15a8PosoNX2aG/EAMGqnXTu+1LnmzFhpTQ==",
       "license": "MIT",
       "dependencies": {
         "@babel/parser": "^7.25.3",
-        "@vue/compiler-core": "3.5.1",
-        "@vue/compiler-dom": "3.5.1",
-        "@vue/compiler-ssr": "3.5.1",
-        "@vue/shared": "3.5.1",
+        "@vue/compiler-core": "3.5.3",
+        "@vue/compiler-dom": "3.5.3",
+        "@vue/compiler-ssr": "3.5.3",
+        "@vue/shared": "3.5.3",
         "estree-walker": "^2.0.2",
         "magic-string": "^0.30.11",
         "postcss": "^8.4.44",
@@ -3056,13 +3056,13 @@
       }
     },
     "node_modules/@vue/compiler-ssr": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.1.tgz",
-      "integrity": "sha512-C1hpSHQgRM8bg+5XWWD7CkFaVpSn9wZHCLRd10AmxqrH17d4EMP6+XcZpwBOM7H1jeStU5naEapZZWX0kso1tQ==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.3.tgz",
+      "integrity": "sha512-F/5f+r2WzL/2YAPl7UlKcJWHrvoZN8XwEBLnT7S4BXwncH25iDOabhO2M2DWioyTguJAGavDOawejkFXj8EM1w==",
       "license": "MIT",
       "dependencies": {
-        "@vue/compiler-dom": "3.5.1",
-        "@vue/shared": "3.5.1"
+        "@vue/compiler-dom": "3.5.3",
+        "@vue/shared": "3.5.3"
       }
     },
     "node_modules/@vue/compiler-vue2": {
@@ -3123,9 +3123,9 @@
       }
     },
     "node_modules/@vue/language-core": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.4.tgz",
-      "integrity": "sha512-i8pfAgNjTNjabBX1xRsuV6aRw2E8bdQXwd5H8m3cUkTVJju3QN5nfdoXET0uK+yXsuloNJPzo6PXFujRRPNmMA==",
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/@vue/language-core/-/language-core-2.1.6.tgz",
+      "integrity": "sha512-MW569cSky9R/ooKMh6xa2g1D0AtRKbL56k83dzus/bx//RDJk24RHWkMzbAlXjMdDNyxAaagKPRquBIxkxlCkg==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
@@ -3148,53 +3148,53 @@
       }
     },
     "node_modules/@vue/reactivity": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.1.tgz",
-      "integrity": "sha512-aFE1nMDfbG7V+U5vdOk/NXxH/WX78XuAfX59vWmCM7Ao4lieoc83RkzOAWun61sQXlzNZ4IgROovFBHg+Iz1+Q==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.3.tgz",
+      "integrity": "sha512-2w61UnRWTP7+rj1H/j6FH706gRBHdFVpIqEkSDAyIpafBXYH8xt4gttstbbCWdU3OlcSWO8/3mbKl/93/HSMpw==",
       "license": "MIT",
       "dependencies": {
-        "@vue/shared": "3.5.1"
+        "@vue/shared": "3.5.3"
       }
     },
     "node_modules/@vue/runtime-core": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.1.tgz",
-      "integrity": "sha512-Ce92CCholNRHR3ZtzpRp/7CDGIPFxQ7ElXt9iH91ilK5eOrUv3Z582NWJesuM3aYX71BujVG5/4ypUxigGNxjA==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.3.tgz",
+      "integrity": "sha512-5b2AQw5OZlmCzSsSBWYoZOsy75N4UdMWenTfDdI5bAzXnuVR7iR8Q4AOzQm2OGoA41xjk53VQKrqQhOz2ktWaw==",
       "license": "MIT",
       "dependencies": {
-        "@vue/reactivity": "3.5.1",
-        "@vue/shared": "3.5.1"
+        "@vue/reactivity": "3.5.3",
+        "@vue/shared": "3.5.3"
       }
     },
     "node_modules/@vue/runtime-dom": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.1.tgz",
-      "integrity": "sha512-B/fUJfBLp5PwE0EWNfBYnA4JUea8Yufb3wN8fN0/HzaqBdkiRHh4sFHOjWqIY8GS75gj//8VqeEqhcU6yUjIkA==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.3.tgz",
+      "integrity": "sha512-wPR1DEGc3XnQ7yHbmkTt3GoY0cEnVGQnARRdAkDzZ8MbUKEs26gogCQo6AOvvgahfjIcnvWJzkZArQ1fmWjcSg==",
       "license": "MIT",
       "dependencies": {
-        "@vue/reactivity": "3.5.1",
-        "@vue/runtime-core": "3.5.1",
-        "@vue/shared": "3.5.1",
+        "@vue/reactivity": "3.5.3",
+        "@vue/runtime-core": "3.5.3",
+        "@vue/shared": "3.5.3",
         "csstype": "^3.1.3"
       }
     },
     "node_modules/@vue/server-renderer": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.1.tgz",
-      "integrity": "sha512-C5V/fjQTitgVaRNH5wCoHynaWysjZ+VH68drNsAvQYg4ArHsZUQNz0nHoEWRj41nzqkVn2RUlnWaEOTl2o1Ppg==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.3.tgz",
+      "integrity": "sha512-28volmaZVG2PGO3V3+gBPKoSHvLlE8FGfG/GKXKkjjfxLuj/50B/0OQGakM/g6ehQeqCrZYM4eHC4Ks48eig1Q==",
       "license": "MIT",
       "dependencies": {
-        "@vue/compiler-ssr": "3.5.1",
-        "@vue/shared": "3.5.1"
+        "@vue/compiler-ssr": "3.5.3",
+        "@vue/shared": "3.5.3"
       },
       "peerDependencies": {
-        "vue": "3.5.1"
+        "vue": "3.5.3"
       }
     },
     "node_modules/@vue/shared": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.1.tgz",
-      "integrity": "sha512-NdcTRoO4KuW2RSFgpE2c+E/R/ZHaRzWPxAGxhmxZaaqLh6nYCXx7lc9a88ioqOCxCaV2SFJmujkxbUScW7dNsQ==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.3.tgz",
+      "integrity": "sha512-Jp2v8nylKBT+PlOUjun2Wp/f++TfJVFjshLzNtJDdmFJabJa7noGMncqXRM1vXGX+Yo2V7WykQFNxusSim8SCA==",
       "license": "MIT"
     },
     "node_modules/@vue/tsconfig": {
@@ -4070,13 +4070,13 @@
       "license": "MIT"
     },
     "node_modules/debug": {
-      "version": "4.3.6",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.6.tgz",
-      "integrity": "sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==",
+      "version": "4.3.7",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz",
+      "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
-        "ms": "2.1.2"
+        "ms": "^2.1.3"
       },
       "engines": {
         "node": ">=6.0"
@@ -4842,9 +4842,9 @@
       }
     },
     "node_modules/filesize": {
-      "version": "10.1.5",
-      "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.5.tgz",
-      "integrity": "sha512-jcw4nVu7/Tsf9H8Unni6N8qcUOF6fPq7riSahe1S/paGV8C2Zbjtm9zPULqUapQBVBBUU6HbcXzGPWqQ8MnRVA==",
+      "version": "10.1.6",
+      "resolved": "https://registry.npmjs.org/filesize/-/filesize-10.1.6.tgz",
+      "integrity": "sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==",
       "license": "BSD-3-Clause",
       "engines": {
         "node": ">= 10.4.0"
@@ -4903,9 +4903,9 @@
       "license": "ISC"
     },
     "node_modules/follow-redirects": {
-      "version": "1.15.8",
-      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.8.tgz",
-      "integrity": "sha512-xgrmBhBToVKay1q2Tao5LI26B83UhrB/vM1avwVSDzt8rx3rO6AizBAaF46EgksTVr+rFTQaqZZ9MVBfUe4nig==",
+      "version": "1.15.9",
+      "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz",
+      "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
       "dev": true,
       "funding": [
         {
@@ -6125,9 +6125,9 @@
       }
     },
     "node_modules/ms": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-      "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+      "version": "2.1.3",
+      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+      "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
       "dev": true,
       "license": "MIT"
     },
@@ -7528,9 +7528,9 @@
       }
     },
     "node_modules/source-map-js": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz",
-      "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==",
+      "version": "1.2.1",
+      "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+      "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
       "license": "BSD-3-Clause",
       "engines": {
         "node": ">=0.10.0"
@@ -8162,16 +8162,16 @@
       "license": "MIT"
     },
     "node_modules/vue": {
-      "version": "3.5.1",
-      "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.1.tgz",
-      "integrity": "sha512-k4UNnbPOEskodSxMtv+B9GljdB0C9ubZDOmW6vnXVGIfMqmEsY2+ohasjGguhGkMkrcP/oOrbH0dSD41x5JQFw==",
+      "version": "3.5.3",
+      "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.3.tgz",
+      "integrity": "sha512-xvRbd0HpuLovYbOHXRHlSBsSvmUJbo0pzbkKTApWnQGf3/cu5Z39mQeA5cZdLRVIoNf3zI6MSoOgHUT5i2jO+Q==",
       "license": "MIT",
       "dependencies": {
-        "@vue/compiler-dom": "3.5.1",
-        "@vue/compiler-sfc": "3.5.1",
-        "@vue/runtime-dom": "3.5.1",
-        "@vue/server-renderer": "3.5.1",
-        "@vue/shared": "3.5.1"
+        "@vue/compiler-dom": "3.5.3",
+        "@vue/compiler-sfc": "3.5.3",
+        "@vue/runtime-dom": "3.5.3",
+        "@vue/server-renderer": "3.5.3",
+        "@vue/shared": "3.5.3"
       },
       "peerDependencies": {
         "typescript": "*"
@@ -8233,14 +8233,14 @@
       }
     },
     "node_modules/vue-tsc": {
-      "version": "2.1.4",
-      "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.4.tgz",
-      "integrity": "sha512-XTzMXQcsixAvNbpou/9qngEsZawaiJRZH3Ja+lfgRfv2A1TJv9vnZ/Kyv7XxPqv/TaZVFSnjGpM87VbWIg6yQg==",
+      "version": "2.1.6",
+      "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-2.1.6.tgz",
+      "integrity": "sha512-f98dyZp5FOukcYmbFpuSCJ4Z0vHSOSmxGttZJCsFeX0M4w/Rsq0s4uKXjcSRsZqsRgQa6z7SfuO+y0HVICE57Q==",
       "dev": true,
       "license": "MIT",
       "dependencies": {
         "@volar/typescript": "~2.4.1",
-        "@vue/language-core": "2.1.4",
+        "@vue/language-core": "2.1.6",
         "semver": "^7.5.4"
       },
       "bin": {
diff --git a/package.json b/package.json
index c050a655176ea2f67afc15d2cba550b8ab9ac6f8..63dff7b047b1bd32c0c567a52a2c3ff3f05daf9f 100644
--- a/package.json
+++ b/package.json
@@ -13,9 +13,9 @@
     "generate-clowm-client": "openapi --input http://localhost:9999/api/openapi.json --output src/client --client axios"
   },
   "dependencies": {
-    "@aws-sdk/client-s3": "~3.637.0",
-    "@aws-sdk/lib-storage": "~3.637.0",
-    "@aws-sdk/s3-request-presigner": "~3.637.0",
+    "@aws-sdk/client-s3": "^3.637.0",
+    "@aws-sdk/lib-storage": "^3.637.0",
+    "@aws-sdk/s3-request-presigner": "^3.637.0",
     "@fortawesome/fontawesome-free": "~6.6.0",
     "@popperjs/core": "~2.11.8",
     "ajv": "~8.17.0",
diff --git a/src/assets/base.css b/src/assets/base.css
index 1caebaaad3c1da4c77057a6efaf660ce4569c1dd..6cfda8b5ae4a63b7565b68803aa65c3db00a341e 100644
--- a/src/assets/base.css
+++ b/src/assets/base.css
@@ -19,10 +19,7 @@
     --vt-c-text-light-2: rgba(60, 60, 60, 0.66);
     --vt-c-text-dark-1: var(--vt-c-white);
     --vt-c-text-dark-2: rgba(235, 235, 235, 0.64);
-}
 
-/* semantic color variables for this project */
-:root {
     --color-background: var(--vt-c-white);
     --color-background-soft: var(--vt-c-white-soft);
     --color-background-mute: var(--vt-c-white-mute);
@@ -34,6 +31,7 @@
     --color-text: var(--vt-c-text-light-1);
 
     --section-gap: 160px;
+    --color-header: rgb(255, 177, 45)
 }
 
 *,
@@ -57,10 +55,19 @@ body {
     -moz-osx-font-smoothing: grayscale;
 }
 
+footer {
+    background: var(--color-header);
+}
+
+header {
+    background: var(--color-header);
+}
+
 
 [data-bs-theme="dark"] {
     --bs-box-shadow: 0 .5rem 1rem rgba(150, 150, 150, .55);
     --bs-box-shadow-sm: 0 .125rem .25rem rgba(150, 150, 150, .475);
     --bs-box-shadow-lg: 0 1rem 3rem rgba(150, 150, 150, .575);
     --bs-box-shadow-inset: inset 0 1px 2px rgba(150, 150, 150, .475);
+    --color-header: rgb(204, 129, 0);
 }
\ No newline at end of file
diff --git a/src/components/AppFooter.vue b/src/components/AppFooter.vue
index 09ff64daf0abfbf3b9a5edd363fd1b8d03417056..9e72ff98eec42a174b7fd62398eaeaf9fdeb7a09 100644
--- a/src/components/AppFooter.vue
+++ b/src/components/AppFooter.vue
@@ -24,10 +24,6 @@
 </template>
 
 <style scoped>
-footer {
-  background: rgb(255, 177, 45);
-}
-
 li {
   display: inline;
   margin-right: 0.5rem !important;
diff --git a/src/components/AppHeader.vue b/src/components/AppHeader.vue
index 024f7505cf4a497a0bea0b436c7c5f55c059e995..9e01c484e642dae1585ffffb088914d29e70ce30 100644
--- a/src/components/AppHeader.vue
+++ b/src/components/AppHeader.vue
@@ -370,10 +370,6 @@ watch(
 </template>
 
 <style scoped>
-header {
-  background: rgb(255, 177, 45);
-}
-
 ul {
   --bs-navbar-color: rgba(255, 255, 255, 0.75) !important;
   --bs-navbar-hover-color: rgba(255, 255, 255, 0.9) !important;
diff --git a/src/router/index.ts b/src/router/index.ts
index 227a77970998e57ee73327f430f3a9c858d998b7..a314b622bdfe85c37944999a6bae8562fb3f035a 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -1,14 +1,10 @@
 import { createRouter, createWebHistory } from "vue-router";
-import DashboardView from "../views/DashboardView.vue";
 import LoginView from "../views/LoginView.vue";
 import { workflowRoutes } from "@/router/workflowRoutes";
 import { s3Routes } from "@/router/s3Routes";
 import { resourceRoutes } from "@/router/resourceRoutes";
 import { adminRoutes } from "@/router/adminRoutes";
 import { userRoutes } from "@/router/userRoutes";
-import ImprintView from "@/views/ImprintView.vue";
-import PrivacyPolicyView from "@/views/PrivacyPolicyView.vue";
-import TermsOfUsageView from "@/views/TermsOfUsageView.vue";
 
 const router = createRouter({
   history: createWebHistory(import.meta.env.BASE_URL),
@@ -16,7 +12,7 @@ const router = createRouter({
     {
       path: "/dashboard",
       name: "dashboard",
-      component: DashboardView,
+      component: import("../views/DashboardView.vue"),
       children: [
         ...resourceRoutes,
         ...s3Routes,
@@ -39,6 +35,15 @@ const router = createRouter({
         invitationToken: route.query.invitation_token ?? undefined,
       }),
     },
+    {
+      path: "/signup",
+      name: "signup",
+      component: import("../views/SignupView.vue"),
+      meta: {
+        title: "Signup",
+        public: true,
+      },
+    },
     {
       path: "/",
       redirect: {
@@ -52,7 +57,7 @@ const router = createRouter({
         title: "Privacy Policy",
         public: true,
       },
-      component: PrivacyPolicyView,
+      component: import("../views/PrivacyPolicyView.vue"),
     },
     {
       path: "/terms",
@@ -61,7 +66,7 @@ const router = createRouter({
         title: "Terms of Usage",
         public: true,
       },
-      component: TermsOfUsageView,
+      component: import("../views/TermsOfUsageView.vue"),
     },
     {
       path: "/imprint",
@@ -70,7 +75,7 @@ const router = createRouter({
         title: "Imprint",
         public: true,
       },
-      component: ImprintView,
+      component: import("../views/ImprintView.vue"),
     },
     {
       path: "/:pathMatch(.*)",
diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue
index ab2ed19cefad6185a579fa78f566632a868e49b5..6b26966cca38d4aaae8f2b3c2ccaeebedf6ab597 100644
--- a/src/views/LoginView.vue
+++ b/src/views/LoginView.vue
@@ -65,16 +65,16 @@ onMounted(() => {
       <div class="fs-3 mb-3">
         <img
           src="/src/assets/images/clowm.svg"
-          class="mb-2 img-fluid"
-          width="48"
-          height="48"
+          class="mb-3 img-fluid"
+          width="128"
+          height="128"
           alt="CloWM Logo"
         />
-        <h5>
+        <h4>
           The <span class="blue fw-semibold">Clo</span>ud-based
           <span class="red fw-semibold">W</span>orkflow
           <span class="green fw-semibold">M</span>anager
-        </h5>
+        </h4>
       </div>
       <div class="card text-center ms-md-auto">
         <div v-if="invitationToken" class="card-header">Invitation</div>
@@ -97,7 +97,13 @@ onMounted(() => {
               style="max-height: 70px"
             />
           </a>
-          <div class="mt-2">
+          <div class="my-2">
+            Don't have an account?
+            <router-link :to="{ name: 'signup' }">
+              Create an account</router-link
+            >.
+          </div>
+          <div>
             By using this service you agree to our
             <router-link :to="{ name: 'terms' }">terms of usage</router-link>
             and
@@ -111,40 +117,40 @@ onMounted(() => {
       class="d-flex flex-row justify-content-evenly align-items-center flex-wrap w-100"
     >
       <div class="border rounded p-4 icon text-center m-2 text-bg-light" hidden>
-        <h4 class="mb-4">A Service By</h4>
+        <h5 class="mb-4">A Service By</h5>
         <a href="https://nfdi4microbiota.de/">
           <img
             src="/src/assets/images/nfdi.svg"
             alt="NFDI4Microbiota Logo"
-            height="50"
+            height="35"
           />
         </a>
       </div>
       <div class="border rounded p-4 icon text-center m-2 text-bg-light">
-        <h4 class="mb-4">Powered By</h4>
+        <h5 class="mb-4">Powered By</h5>
         <a href="https://www.denbi.de/">
           <img
             src="/src/assets/images/denbi.svg"
             alt="de.NBI Logo"
-            height="50"
+            height="35"
           />
         </a>
       </div>
       <div class="border rounded p-4 icon text-center m-2 text-bg-light">
-        <h4 class="mb-4">Hosted By</h4>
+        <h5 class="mb-4">Hosted By</h5>
         <a href="https://bibi.uni-bielefeld.de/">
-          <img src="/src/assets/images/bibi.png" alt="BiBi Logo" height="50" />
+          <img src="/src/assets/images/bibi.png" alt="BiBi Logo" height="35" />
         </a>
       </div>
       <div class="border rounded p-4 icon text-center m-2 text-bg-light">
-        <h4 class="mb-4">Funded By</h4>
-        <img src="/src/assets/images/dfg.png" alt="DFG Logo" height="50" />
+        <h5 class="mb-4">Funded By</h5>
+        <img src="/src/assets/images/dfg.png" alt="DFG Logo" height="35" />
       </div>
       <div class="border rounded p-4 icon text-center m-2 text-bg-light">
         <img
           src="/src/assets/images/unibi.svg"
           alt="Bielefeld University Logo"
-          height="50"
+          height="35"
         />
       </div>
     </div>
diff --git a/src/views/SignupView.vue b/src/views/SignupView.vue
new file mode 100644
index 0000000000000000000000000000000000000000..c03397be95c286349da7470b8fd6a635cd6dd9bc
--- /dev/null
+++ b/src/views/SignupView.vue
@@ -0,0 +1,45 @@
+<script setup lang="ts">
+import { OpenAPI } from "@/client";
+</script>
+
+<template>
+  <h2>How to create an account for the cloud-based workflow manager CloWM</h2>
+  <p>
+    The only prerequisite for using CloWM is an
+    <a href="https://lifescience-ri.eu/">LifeScience</a> account.
+  </p>
+  <h4>I don't have an LifeScience Account</h4>
+  <p>
+    I you don't have an LifeScience account yet, you can register by going to
+    the
+    <a
+      href="https://lifescience-ri.eu/ls-login/version-2023/user/how-to-get-ls-id.html"
+      >LifeScience website</a
+    >
+    and follow the instructions there.
+  </p>
+  <h4>I already have an LifeScience Account</h4>
+  <p class="fs-6">
+    Then you can simply log into CloWM by clicking the button below and a CloWM
+    account will be created automatically for you.
+  </p>
+  <div class="d-flex flex-column mx-auto w-fit align-items-center mt-5">
+    <a :href="`${OpenAPI.BASE}/auth/login?provider=lifescience`">
+      <img
+        src="/src/assets/images/ls-login.png"
+        alt="[LS Login]"
+        style="max-height: 70px"
+        class="hover-shadow"
+      />
+    </a>
+    <div class="mt-2">
+      By using this service you agree to our
+      <router-link :to="{ name: 'terms' }">terms of usage</router-link>
+      and
+      <router-link :to="{ name: 'privacy' }">privacy policy</router-link>
+      .
+    </div>
+  </div>
+</template>
+
+<style scoped></style>