diff --git a/frontend/package.json b/frontend/package.json index 16c0f81..cafaa68 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -64,6 +64,7 @@ "js-cookie": "^3.0.1", "luxon": "^3.1.1", "mapbox-gl": "^2.11.0", + "mdsvex": "^0.10.6", "minisearch": "^5.1.0", "pikaso": "^2.7.4", "plausible-tracker": "^0.3.8", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index ca64bb9..8e83073 100644 --- a/frontend/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -52,6 +52,7 @@ specifiers: js-cookie: ^3.0.1 luxon: ^3.1.1 mapbox-gl: ^2.11.0 + mdsvex: ^0.10.6 minisearch: ^5.1.0 pikaso: ^2.7.4 plausible-tracker: ^0.3.8 @@ -132,6 +133,7 @@ devDependencies: js-cookie: 3.0.1 luxon: 3.1.1 mapbox-gl: 2.11.1 + mdsvex: 0.10.6_svelte@3.55.0 minisearch: 5.1.0 pikaso: 2.7.4 plausible-tracker: 0.3.8 @@ -1429,6 +1431,13 @@ packages: } dev: true + /@types/unist/2.0.6: + resolution: + { + integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ== + } + dev: true + /@typescript-eslint/eslint-plugin/5.46.1_qtjn2brzzhu6l3ntqnv7ocqkwu: resolution: { @@ -3617,6 +3626,21 @@ packages: } dev: true + /mdsvex/0.10.6_svelte@3.55.0: + resolution: + { + integrity: sha512-aGRDY0r5jx9+OOgFdyB9Xm3EBr9OUmcrTDPWLB7a7g8VPRxzPy4MOBmcVYgz7ErhAJ7bZ/coUoj6aHio3x/2mA== + } + peerDependencies: + svelte: 3.x + dependencies: + '@types/unist': 2.0.6 + prism-svelte: 0.4.7 + prismjs: 1.29.0 + svelte: 3.55.0 + vfile-message: 2.0.4 + dev: true + /memoize-one/6.0.0: resolution: { @@ -4547,6 +4571,21 @@ packages: hasBin: true dev: true + /prism-svelte/0.4.7: + resolution: + { + integrity: sha512-yABh19CYbM24V7aS7TuPYRNMqthxwbvx6FF/Rw920YbyBWO3tnyPIqRMgHuSVsLmuHkkBS1Akyof463FVdkeDQ== + } + dev: true + + /prismjs/1.29.0: + resolution: + { + integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q== + } + engines: { node: '>=6' } + dev: true + /promise-queue/2.2.5: resolution: { @@ -5387,6 +5426,15 @@ packages: busboy: 1.6.0 dev: true + /unist-util-stringify-position/2.0.3: + resolution: + { + integrity: sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + } + dependencies: + '@types/unist': 2.0.6 + dev: true + /update-browserslist-db/1.0.10_browserslist@4.21.4: resolution: { @@ -5417,6 +5465,16 @@ packages: } dev: true + /vfile-message/2.0.4: + resolution: + { + integrity: sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + } + dependencies: + '@types/unist': 2.0.6 + unist-util-stringify-position: 2.0.3 + dev: true + /vite-plugin-iso-import/1.0.0_vite@4.0.1: resolution: { diff --git a/frontend/src/routes/docs/(markdown)/+layout.svelte b/frontend/src/routes/docs/(markdown)/+layout.svelte new file mode 100644 index 0000000..5170ab5 --- /dev/null +++ b/frontend/src/routes/docs/(markdown)/+layout.svelte @@ -0,0 +1,20 @@ + + + +
+ +
diff --git a/frontend/src/routes/docs/(markdown)/features/+page.svx b/frontend/src/routes/docs/(markdown)/features/+page.svx new file mode 100644 index 0000000..6237b09 --- /dev/null +++ b/frontend/src/routes/docs/(markdown)/features/+page.svx @@ -0,0 +1,5 @@ +# Features + + +- [Custom-Field](/docs/features/custom-field) +- [Remote-Control](/docs/features/remote-control) diff --git a/frontend/src/routes/docs/(markdown)/features/custom-field/+page.svx b/frontend/src/routes/docs/(markdown)/features/custom-field/+page.svx new file mode 100644 index 0000000..6a33224 --- /dev/null +++ b/frontend/src/routes/docs/(markdown)/features/custom-field/+page.svx @@ -0,0 +1,24 @@ + + +# Custom Field + +## What is the Custom-Field? + +The Custom-Field is an input-field which can be enabled in the start-quiz modal. The custom-field has to be named, and +then it will be displayed if a player wants to join. + +## Use Case + +Imagine you're a teacher, and you want to know the real names of your students, but you don't want everyone to see +who is behind which username. That's where the custom-field comes into play. Players can enter their username and their +real name and only the admin (you) can see which username belongs to which real name and which real names exist. The +data can be obtained by downloading the quiz-results at the end. In the spreadsheet, you can then see all the data. + +## Notes + +- There is no validation at all. Users can also leave it empty, enter numbers and more. +- The value gets saved for future use, so make sure to clear it before starting a new quiz. diff --git a/frontend/src/routes/docs/(markdown)/features/remote-control/+page.svx b/frontend/src/routes/docs/(markdown)/features/remote-control/+page.svx new file mode 100644 index 0000000..d913cc2 --- /dev/null +++ b/frontend/src/routes/docs/(markdown)/features/remote-control/+page.svx @@ -0,0 +1,15 @@ + + +# Remote Control + +Control the admin-screen from a different device! + +## Use Case + +Imagine mirroring the admin-screen to a projector and you want to show the quiz full-screen without the disruption of +buttons, etc. That's where this feature comes in handy, since you can control the quiz from another device, e.g. your +phone. diff --git a/frontend/src/routes/docs/+page.svelte b/frontend/src/routes/docs/+page.svelte index 7b52de0..b80a861 100644 --- a/frontend/src/routes/docs/+page.svelte +++ b/frontend/src/routes/docs/+page.svelte @@ -1,3 +1,9 @@ + +