Compare commits

..

1 Commits

Author SHA1 Message Date
167ddbc0ff
refactor: migrate to docusaurus 2023-11-06 20:50:42 +01:00
135 changed files with 10809 additions and 3685 deletions

33
.argo/application.yaml Normal file
View File

@ -0,0 +1,33 @@
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
annotations:
argocd-image-updater.argoproj.io/image-list: docs=registry.odit.services/lfk/docs:latest
argocd-image-updater.argoproj.io/write-back-method: argocd
argocd-image-updater.argoproj.io/update-strategy: digest
argocd-image-updater.argoproj.io/docs.pull-secret: pullsecret:argocd/registry-odit-services
name: docs-lfk-de
namespace: argocd
spec:
project: lfk
source:
repoURL: "git@git.odit.services:lfk/docs.git"
path: .argo
targetRevision: main
destination:
name: odit-h2
namespace: lfk
syncPolicy:
automated:
prune: true
selfHeal: true
allowEmpty: false
syncOptions:
- PruneLast=true
- CreateNamespace=true
retry:
limit: 5
backoff:
duration: 20s
factor: 2
maxDuration: 7m

14
.argo/cert.yaml Normal file
View File

@ -0,0 +1,14 @@
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: docs-lfk-de-cert
namespace: lfk
spec:
commonName: docs.lauf-fuer-kaya.de
secretName: docs-lfk-de-cert
dnsNames:
- docs.lauf-fuer-kaya.de
issuerRef:
name: letsencrypt-prod-dns
kind: ClusterIssuer

58
.argo/deployment.yaml Normal file
View File

@ -0,0 +1,58 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: docs-lfk-de
namespace: lfk
labels:
app: docs-lfk-de
spec:
replicas: 1
revisionHistoryLimit: 10
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: docs-lfk-de
template:
metadata:
labels:
app: docs-lfk-de
spec:
containers:
- name: docs-lfk-de
image: registry.odit.services/lfk/docs:latest
imagePullPolicy: IfNotPresent
ports:
- containerPort: 80
name: web
resources:
requests:
cpu: 50m
memory: 10Mi
limits:
cpu: 100m
memory: 128Mi
readinessProbe:
httpGet:
path: /health/
port: 80
initialDelaySeconds: 5
periodSeconds: 3
successThreshold: 4
livenessProbe:
httpGet:
path: /health/
port: 80
initialDelaySeconds: 5
periodSeconds: 3
lifecycle:
preStop:
exec:
command: ["/bin/sh", "-c", "sleep 10"]
imagePullSecrets:
- name: registry-odit-services
restartPolicy: Always

12
.argo/dns.yaml Normal file
View File

@ -0,0 +1,12 @@
apiVersion: externaldns.k8s.io/v1alpha1
kind: DNSEndpoint
metadata:
name: docs-lfk-de-dns
namespace: lfk
spec:
endpoints:
- dnsName: docs.lauf-fuer-kaya.de
recordTTL: 180
recordType: CNAME
targets:
- k.odit.services

17
.argo/ingress.yaml Normal file
View File

@ -0,0 +1,17 @@
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: docs-lfk-de
namespace: lfk
spec:
entryPoints:
- websecure
routes:
- match: Host(`docs.lauf-fuer-kaya.de`)
kind: Rule
services:
- name: docs-lfk-de
port: 80
tls:
secretName: docs-lfk-de-cert

7
.argo/kustomization.yaml Normal file
View File

@ -0,0 +1,7 @@
namespace: lfk
resources:
- deployment.yaml
- service.yaml
- ingress.yaml
- cert.yaml
- dns.yaml

15
.argo/service.yaml Normal file
View File

@ -0,0 +1,15 @@
---
apiVersion: v1
kind: Service
metadata:
name: docs-lfk-de
namespace: lfk
labels:
app: docs-lfk-de
spec:
ports:
- port: 80
name: web
selector:
app: docs-lfk-de
type: ClusterIP

View File

@ -1,2 +1,139 @@
*lock
public/**
# ---> VisualStudioCode
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/i18n-ally-custom-framework.yml
*.code-workspace
# Local History for Visual Studio Code
.history/
# ---> Node
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variables file
.env
.env.test
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
yarn.lock
package-lock.json
*.sqlite
*.sqlite-jurnal
/docs
lib
/oss-attribution
*.tmp

View File

@ -1,30 +0,0 @@
name: Build latest image
on:
push:
branches:
- main
jobs:
build-container:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Login to registry
uses: docker/login-action@v3
with:
registry: registry.odit.services
username: ${{ vars.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: |
${{ vars.REGISTRY }}/lfk/docs:latest
${{ vars.REGISTRY }}/lfk/docs:main-${{ gitea.run_number }}
platforms: linux/amd64,linux/arm64

View File

@ -1,27 +0,0 @@
name: Build release images
on:
push:
tags:
- "*.*.*"
jobs:
build-container:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Login to registry
uses: docker/login-action@v3
with:
registry: registry.odit.services
username: ${{ vars.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build and push
uses: docker/build-push-action@v6
with:
push: true
tags: |
${{ vars.REGISTRY }}/lfk/docs:${{ github.ref_name }}
platforms: linux/amd64,linux/arm64

22
.gitignore vendored
View File

@ -1,2 +1,20 @@
.hugo_build.lock
public
# Dependencies
/node_modules
# Production
/build
# Generated files
.docusaurus
.cache-loader
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

12
.npmignore Normal file
View File

@ -0,0 +1,12 @@
pids
logs
node_modules
npm-debug.log
coverage/
run
dist
.DS_Store
.nyc_output
.basement
config.local.js
basement_dist

20
.woodpecker/build.yml Normal file
View File

@ -0,0 +1,20 @@
steps:
- name: build latest
image: woodpeckerci/plugin-docker-buildx
settings:
repo: registry.odit.services/lfk/docs
tags:
- latest
registry: registry.odit.services
platforms: linux/amd64,linux/arm64
cache_from: registry.odit.services/lfk/docs:latest
username:
from_secret: odit-registry-builder-username
password:
from_secret: odit-registry-builder-password
secrets:
- source: odit-npm-cache-url
target: NPM_REGISTRY_URL
when:
branch: main
event: push

View File

@ -1,9 +1,14 @@
FROM hugomods/hugo:exts AS build
WORKDIR /app
COPY . /app/
# COPY .git /app/.git
RUN hugo
FROM hugomods/hugo:nginx
COPY --from=build /app/public /site
FROM registry.odit.services/hub/library/node:21.1.0-alpine3.18 AS build
ARG NPM_REGISTRY_URL=https://registry.npmjs.org
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN npm config set registry $NPM_REGISTRY_URL && npm i -g pnpm@8
RUN pnpm i --frozen-lockfile
COPY . ./
RUN pnpm build
# final image
FROM registry.odit.services/library/nginx-brotli:3.15.130
COPY --from=build /app/build /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/nginx.conf

View File

@ -1,27 +1,41 @@
# @lfk/documentation
# Website
The documentation for the LfK! 'Läufersystem'.
Powered by Hugo.
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator.
The main language for the content is German (since our primary target audience is the Lauf für Kaya! Team at a local German school) but every page has an English translation.
### Installation
## Quickstart 🐳
```
$ yarn
```
> Use this to run the documentation server via docker.
### Local Development
1. Clone the repo or copy the docker-compose.yml
2. Cd into the folder containing the docker-compose.yml
3. Run docker-compose: `docker-compose up -d`
4. Visit <http://127.0.0.1:8080/> to check if the server is running
```
$ yarn start
```
## Dev Setup 🛠
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
> Local dev setup for previewing changes.
### Build
1. Clone the repo
2. Install Hugo: `brew install hugo` or `winget install hugo.hugo.extended`
3. Start the dev server: `hugo server --buildDrafts --disableFastRender`
```
$ yarn build
```
### Recommended Editor
This command generates static content into the `build` directory and can be served using any static contents hosting service.
[Visual Studio Code](https://code.visualstudio.com/)
### Deployment
Using SSH:
```
$ USE_SSH=true yarn deploy
```
Not using SSH:
```
$ GIT_USER=<Your GitHub username> yarn deploy
```
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.

View File

@ -1,11 +0,0 @@
@font-face {
font-family: "Athiti";
src: url("/fonts/athiti.ttf");
}
html,
:host {
font-family: "Athiti";
}
.content {
font-family: "Athiti";
}

3
babel.config.js Normal file
View File

@ -0,0 +1,3 @@
module.exports = {
presets: [require.resolve('@docusaurus/core/lib/babel/preset')],
};

View File

@ -1,122 +0,0 @@
# Configuration
baseURL: "https://docs.lauf-fuer-kaya.de"
title: "LfK! Dokumentation"
module:
imports:
- path: github.com/imfing/hextra
enableRobotsTXT: true
hasCJKLanguage: true
outputs:
home: [HTML]
page: [HTML]
section: [HTML, RSS]
markup:
defaultMarkdownHandler: goldmark
highlight:
noClasses: false
goldmark:
renderer:
unsafe: true
extensions:
passthrough:
delimiters:
block: [['\[', '\]'], ['$$', '$$']]
inline: [['\(', '\)']]
enable: true
enableInlineShortcodes: true
defaultContentLanguage: de
languages:
de:
languageName: Deutsch
languageCode: de
title: LfK! Dokumentation
weight: 1
en:
languageName: English
languageCode: en
title: LfK! Documentation
weight: 2
menu:
main:
- identifier: user
name: Anwender
pageRef: /user
weight: 1
- identifier: admin
name: Administratoren
pageRef: /admin
weight: 2
- identifier: selfservice
name: Selfservice
pageRef: /selfservice
weight: 3
- identifier: scanstation
name: Scannerstationen
pageRef: /scanstation
weight: 4
- identifier: kiosk
name: Kiosk
pageRef: /kiosk
weight: 5
- identifier: beamershow
name: Beamershow
pageRef: /beamershow
weight: 6
- identifier: blog
name: Blog/Updates
pageRef: /blog/
weight: 6
- name: Suche
identifier: search
weight: 8
params:
type: search
- name: Sourcecode
weight: 9
url: "https://git.odit.services/lfk"
params:
icon: gitea
params:
description: Dokumentation für das Lauf für Kaya! Läufersystem.
navbar:
displayTitle: true
displayLogo: true
logo:
path: logo.svg
dark: logo.svg
link: /
width: normal
page:
width: normal
theme:
default: system
displayToggle: true
footer:
enable: true
displayCopyright: true
displayPoweredBy: false
width: normal
search:
enable: true
type: flexsearch
flexsearch:
index: content
tokenize: forward
highlight:
copy:
enable: true
display: hover
comments:
enable: false
editURL:
enable: true
base: "https://git.odit.services/lfk/docs/_edit/main/content"

View File

@ -1,65 +0,0 @@
---
title: Die Dokumentation für das LfK! Läufersystem
layout: hextra-home
lang: de
---
{{< hextra/hero-badge >}}
<div class="hx-w-2 hx-h-2 hx-rounded-full hx-bg-primary-400"></div>
<span>Kostenlos, open source</span>
{{< icon name="arrow-circle-right" attributes="height=14" >}}
{{< /hextra/hero-badge >}}
<div class="hx-mt-6 hx-mb-6">
{{< hextra/hero-headline >}}
Dokumentation des LfK! Läufersystems.
{{< /hextra/hero-headline >}}
</div>
<div class="hx-mb-12">
{{< hextra/hero-subtitle >}}
Hier findest du alle Informationen, die du benötigst, um das LfK! Läufersystem zu installieren, zu konfigurieren und zu nutzen.
{{< /hextra/hero-subtitle >}}
</div>
<div class="hx-mb-6">
{{< hextra/hero-button text="Schnellstart für Nutzer 👉" link="./user" >}}
</div>
{{< hextra/feature-grid >}}
{{< hextra/feature-card
title="Anwenderdoku"
subtitle="Orgs, Teams und Läufer:innen anlegen, verwalten und mehr."
style="background: radial-gradient(ellipse at 50% 80%,rgba(194,97,254,0.15),hsla(0,0%,100%,0));"
link="./user"
>}}
{{< hextra/feature-card
title="Admindoku"
subtitle="Installation, Konfiguration und Bedienung des Läufersystems."
style="background: radial-gradient(ellipse at 50% 80%,rgba(142,53,74,0.15),hsla(0,0%,100%,0));"
link="./admin"
>}}
{{< hextra/feature-card
title="Selfservice"
subtitle="Portal für Bürger- und Firmenläufer:innen."
style="background: radial-gradient(ellipse at 50% 80%,rgba(221,210,59,0.15),hsla(0,0%,100%,0));"
link="./selfservice"
>}}
{{< hextra/feature-card
title="Scannerstationen"
subtitle="Karten scannen, Kilometer und erfassen. Bedienung, Hardware und Software."
style="background: radial-gradient(ellipse at 50% 80%,rgba(59,221,210,0.15),hsla(0,0%,100%,0));"
link="./scanstation"
>}}
{{< hextra/feature-card
title="Kiosk"
subtitle="Anmeldekiosk für den Bürgerlauf vor Ort."
style="background: radial-gradient(ellipse at 50% 80%,rgba(53,142,74,0.15),hsla(0,0%,100%,0));"
link="./kiosk"
>}}
{{< hextra/feature-card
title="Beamershow"
subtitle="Aktuelle Statistiken und Toplisten zum Event."
style="background: radial-gradient(ellipse at 50% 80%,rgba(97,254,97,0.15),hsla(0,0%,100%,0));"
link="./beamershow"
>}}
{{< /hextra/feature-grid >}}

View File

@ -1,65 +0,0 @@
---
title: The Documentation for the LfK! Runner System
layout: hextra-home
lang: en
---
{{< hextra/hero-badge >}}
<div class="hx-w-2 hx-h-2 hx-rounded-full hx-bg-primary-400"></div>
<span>Free, open source</span>
{{< icon name="arrow-circle-right" attributes="height=14" >}}
{{< /hextra/hero-badge >}}
<div class="hx-mt-6 hx-mb-6">
{{< hextra/hero-headline >}}
Documentation of the LfK! Runner System.
{{< /hextra/hero-headline >}}
</div>
<div class="hx-mb-12">
{{< hextra/hero-subtitle >}}
Here you will find all the information you need to install, configure, and use the LfK! Runner System.
{{< /hextra/hero-subtitle >}}
</div>
<div class="hx-mb-6">
{{< hextra/hero-button text="Quickstart for Users 👉" link="./user" >}}
</div>
{{< hextra/feature-grid >}}
{{< hextra/feature-card
title="User Documentation"
subtitle="Create and manage orgs, teams, runners and mire."
style="background: radial-gradient(ellipse at 50% 80%,rgba(194,97,254,0.15),hsla(0,0%,100%,0));"
link="./user"
>}}
{{< hextra/feature-card
title="Admin Documentation"
subtitle="Installation, configuration, and operation of the runner system."
style="background: radial-gradient(ellipse at 50% 80%,rgba(142,53,74,0.15),hsla(0,0%,100%,0));"
link="./admin"
>}}
{{< hextra/feature-card
title="Self-service"
subtitle="Portal for citizen and company runners."
style="background: radial-gradient(ellipse at 50% 80%,rgba(221,210,59,0.15),hsla(0,0%,100%,0));"
link="./selfservice"
>}}
{{< hextra/feature-card
title="Scanner Stations"
subtitle="Scan cards, record kilometers. How-to, hardware, and software."
style="background: radial-gradient(ellipse at 50% 80%,rgba(59,221,210,0.15),hsla(0,0%,100%,0));"
link="./scanstation"
>}}
{{< hextra/feature-card
title="Kiosk"
subtitle="Self-service kiosk for the citizen run on site."
style="background: radial-gradient(ellipse at 50% 80%,rgba(53,142,74,0.15),hsla(0,0%,100%,0));"
link="./kiosk"
>}}
{{< hextra/feature-card
title="Beamer Show"
subtitle="Current statistics and top lists for the event."
style="background: radial-gradient(ellipse at 50% 80%,rgba(97,254,97,0.15),hsla(0,0%,100%,0));"
link="./beamershow"
>}}
{{< /hextra/feature-grid >}}

View File

@ -1,71 +0,0 @@
---
linkTitle: "Admins"
title: Admin-Doku
weight: 1
prev: /
next: /admin/quickstart
cascade:
type: docs
lang: de
---
Dieser Teil der Dokumentation befasst sich mit der Installation, Konfiguration und Bedienung des Läufersystems für normale Admins.
Solltest du an der Bedienung für normale Nutzer interessiert sein schau doch mal in den [Nutzerbereich](../../user).
## Services
Eine kurze Übersicht über die verschiedenen Services des Systems und ihre Interaktion
* Backend: Beinhaltet die Hauptlogik und verwaltet die Daten (via Datenbankanbindung)
* Mailer: Versendet auf Basis von HTML-Templates automatisiert Mails
* Document-Server: Erstellt PDFs (Urkunden, Läuferkarten, Sponsoringerklärungen) aus HTML-Templates
* Frontend: Verwaltungsoberfläche für die Admins und Benutzer:innen des Läufersystems
* Selfservice: Portal in dem sich Bürger- und Firmenläufer:innen registrieren und ihre Daten einsehen können
* Beamershow: Zeigt aktuelle Statistiken und Toplisten zum Event an
* Scanclient: Software für die Scannerstationen
* Kiosk: Software für die Registrierung von Läufer:innen vor Ort
* Docs: Diese Dokumentation
```mermaid
flowchart LR
subgraph Anwendungen
Frontend
Beamershow
Scanclient
Selfservice
Kiosk
end
subgraph Services
Backend
Mailer
Document-Server
end
subgraph Extern
Datenbank
Mail-Server
end
Frontend --> |Zeigt Daten an und bearbeitet sie| Backend
Beamershow -->|Fragt aktuelle Statistiken ab| Backend
Scanclient --> |Generiert und validiert Scans| Backend
Selfservice --> |Registriert Läufer| Backend
Kiosk --> |Registriert Läufer| Backend
Backend --> |Speichert Daten| Datenbank
Backend --> |Sendet Mails| Mailer
Mailer --> |Sendet Mails| Mail-Server
Frontend --> |Generiert PDFs| Document-Server
Selfservice --> |Generiert PDFs| Document-Server
```
## FAQ
Ein paar der meist gestellten Fragen vorab
### Warum sehe ich eine Seite nicht?
Nutzer sehen nur die Seiten im System, für die sie Berechtigungen haben.
Solltest du eine Seite nicht sehen bist du vermutlich nicht voll als Admin berechtigt.

View File

@ -1,71 +0,0 @@
---
linkTitle: "Admins"
title: Admin Documentation
weight: 1
prev: /
next: /admin/quickstart
cascade:
type: docs
lang: en
---
This part of the documentation deals with the installation, configuration, and operation of the runner system for regular admins.
If you are interested in the operation for regular users, take a look at the [User Area](../../user).
## Services
A brief overview of the various services of the system and their interaction
* Backend: Contains the main logic and manages the data (via database connection)
* Mailer: Automatically sends mails based on HTML templates
* Document-Server: Creates PDFs (certificates, runner cards, sponsorship declarations) from HTML templates
* Frontend: Management interface for the admins and users of the runner system
* Selfservice: Portal where citizen and company runners can register and view their data
* Beamershow: Displays current statistics and top lists for the event
* Scanclient: Software for the scanner stations
* Kiosk: Software for the on-site registration of runners
* Docs: This documentation
```mermaid
flowchart LR
subgraph Applications
Frontend
Beamershow
Scanclient
Selfservice
Kiosk
end
subgraph Services
Backend
Mailer
Document-Server
end
subgraph External
Database
Mail-Server
end
Frontend --> |Displays and edits data| Backend
Beamershow -->|Requests current statistics| Backend
Scanclient --> |Generates and validates scans| Backend
Selfservice --> |Registers runners| Backend
Kiosk --> |Registers runners| Backend
Backend --> |Stores data| Database
Backend --> |Sends mails| Mailer
Mailer --> |Sends mails| Mail-Server
Frontend --> |Generates PDFs| Document-Server
Selfservice --> |Generates PDFs| Document-Server
```
## FAQ
A few of the most frequently asked questions in advance
### Why can't I see a page?
Users only see the pages in the system for which they have permissions.
If you can't see a page, you are probably not fully authorized as an admin.

View File

@ -1,40 +0,0 @@
---
title: Schnellstart für Admins
weight: 2
prev: /admin
next: /admin/users
lang: de
---
Du willst das System schnell aufsetzen und testen? Dann bist du hier genau richtig!
## Voraussetzungen
Alle der folgenden Anleitungen gehen davon aus, dass du bereits Docker und Docker-Compose installiert hast.
Die Installationsanleitungen dafür findest du hier:
* [Docker](https://docs.docker.com/get-docker/)
* [Docker-Compose](https://docs.docker.com/compose/install/)
## Das ganze System
> Du willst das ganze System (backend, fronten, document-server) schnell aufsetzen.
{{% steps %}}
### Klonen
Klone das lfk/deployment git repo von: <https://git.odit.services/lfk/deployment> (oder lade es herunter).
### Starten
Navigiere nach `docker-compose/full_stack`: `cd deployment/docker-compose/full_stack`.
tarte das System mit `docker-compose up`
### Nutzen
Nachdem alles gestartet ist ist kannst du das Frontend aufrufen: <http://localhost:4010> (backend: <http://localhost:4010/api/>, document-server: <http://localhost:4010/documents/>)
Bei Bedarf können die Ports und andere Einstellungen im docker-compose.yml angepasst werden.
{{% /steps %}}

View File

@ -1,40 +0,0 @@
---
title: Quick Start for Admins
weight: 2
prev: /admin
next: /admin/users
lang: en
---
Do you want to set up and test the system quickly? Then you are in the right place!
## Prerequisites
All of the following instructions assume that you have already installed Docker and Docker-Compose.
You can find the installation instructions here:
* [Docker](https://docs.docker.com/get-docker/)
* [Docker-Compose](https://docs.docker.com/compose/install/)
## The whole system
> You want to quickly set up the entire system (backend, frontend, document-server).
{{% steps %}}
### Clone
Clone the lfk/deployment git repo from: <https://git.odit.services/lfk/deployment> (or download it).
### Start
Navigate to `docker-compose/full_stack`: `cd deployment/docker-compose/full_stack`.
Start the system with `docker-compose up`.
### Use
After everything has started, you can access the frontend at: <http://localhost:4010> (backend: <http://localhost:4010/api/>, document-server: <http://localhost:4010/documents/>).
If necessary, ports and other settings can be adjusted in the docker-compose.yml file.
{{% /steps %}}

View File

@ -1,51 +0,0 @@
---
title: Manage User Groups
weight: 4
prev: /admin/quickstart
next: /admin/usergroups
lang: en
---
As an admin, you can create user groups and assign users to them.
Users inherit the permissions of all the groups they belong to.
For example, you can put all admins in the `ADMINS` group instead of manually assigning permissions to each user.
## Create
To create a new user group, open the `User Groups` page in the runner system.
Click the `Create New Group` button to create a new user group.
You can give the group a name and (optionally) a description.
## Edit
To edit a user group, click the `Details` button for the desired group in the user groups overview.
In the overview for this user group, you can now adjust the name and description and view or edit permissions.
When you're done, just click `Save Changes`.
### Permissions
{{< callout type="info" >}}
There is a separate page for a user group's permissions.
{{< /callout >}}
To edit a group's permissions, click `Edit Permissions` on the group's detail page.
On the permissions page, there are two columns: `Available` (permissions the group does not have) and `Granted` (permissions the group has).
You can grant or remove permissions using the `+` and `-` buttons.
When you're done, just click `Save Changes`.
## Delete
You can delete a user group either from the user groups overview or the user group detail view.
Only the user group and its permissions will be deleted, not its users.
### In the User Groups Overview
Click the `Delete` button for the desired user group.
You will then be asked if you really want to delete the user group or cancel.
### In the User Group Detail View
Click the `Details` button for the desired user group.
At the top of the page, there is now a `Delete Group` button.
You will then be asked if you really want to delete the user group or cancel.

View File

@ -1,50 +0,0 @@
---
title: Manage Users
weight: 3
prev: /admin/quickstart
next: /admin/usergroups
lang: en
---
As an admin, you can create users.
Users can log in to the runner management system and the backend (API) and work within their permissions.
You can assign permissions directly to users or assign them to any number of groups from which they inherit permissions.
## Create
To create a new user, open the `Users` page in the runner system.
Click the `Create User` button to create a new user.
You can give the contact a name, username, password, and email address.
## Edit
To edit a user, click the `Details` button for the desired user in the user overview.
In the overview for this contact, you can now adjust the name, username, email, groups, and permissions.
When you are done, simply click `Save Changes`.
### Permissions
{{< callout type="info" >}}
There is a separate page for a user's permissions.
{{< /callout >}}
To edit a user's permissions, click `Edit Permissions` on the user's detail page.
On the permissions page, there are three columns: `Available` (permissions the user does not have directly), `Directly Granted` (permissions the user has directly), and `Inherited` (permissions the user has inherited from their user groups).
You can grant or remove direct permissions using the `+` and `-` buttons.
When you are done, simply click `Save Changes`.
## Delete
You can delete a user either from the user overview or the user detail view.
Only the user and their permissions will be deleted.
### In the User Overview
Click the `Delete` button for the desired user.
You will then be asked if you really want to delete the user or cancel.
### In the User Detail View
Click the `Details` button for the desired user.
At the top of the page, there is now a `Delete User` button.
You will then be asked if you really want to delete the user or cancel.

View File

@ -1,28 +0,0 @@
---
linkTitle: "Beamershow"
title: Beamershow
weight: 1
prev: /
next: /beamershow/config
cascade:
type: docs
lang: en
---
The beamer show displays live statistics for the current event.
As the name suggests, it is intended to be projected on a (screen) wall on-site using a beamer.
It should normally always be accessible under `<läufersystem>/beamershow`, more details can be found under [Configuration](./config).
## Pages/Information
> The beamer show includes the following pages/sections
* General
* Number of runners
* Total kilometers ran so far
* Current total donation amount
* Top 10 runners by distance
* Top 10 runners by fastest lap time
* Top 10 organizations by distance
* Top 10 teams by distance

View File

@ -1,19 +0,0 @@
---
title: Beamershow Config
weight: 1
prev: /beamershow
lang: en
---
## Start
When you open the Beamershow, you will first be asked for the API endpoint - this corresponds to the URL of the runner system (e.g., `https://lauf-fuer-kaya.de`).
Next, you will be asked for a client token, which you will receive from your admin.
Once you have entered the token, you can click the "Configure" button and the Beamershow will start.
## Change Configuration
Type `cnf` on any page of the Beamershow.
You will be immediately logged out of the Beamershow and can then enter a new API endpoint and client token.

View File

@ -1,80 +0,0 @@
---
title: Neue Funktionen und Verbesserungen
date: 2025-04-25
authors:
- name: ODIT.Services
link: https://odit.services
image: https://odit.services/img/profile-pic-no_bg.webp
tags:
- Release
- Kiosk
- Frontend
- Dokumente
excludeSearch: true
description: "In den letzten Wochen haben wir an mehreren neuen Funktionen und Verbesserungen der Plattform gearbeitet. Dieser Beitrag gibt einen Überblick über die wichtigsten Änderungen."
lang: de
---
In den letzten Wochen haben wir an mehreren neuen Funktionen und Verbesserungen der Plattform gearbeitet.
Dieser Beitrag gibt einen Überblick über die wichtigsten Änderungen.
## Kiosk
### LfK! 2023 - Kiosk 0.6
Vor zwei Jahren haben wir das Kiosk-Feature eingeführt, um Läufer:innen die Anmeldung am Veranstaltungstag vor Ort zu ermöglichen.
Es handelte sich um ein recht einfaches Formular, in das Vor- und Nachname eingetragen werden konnten.
Nach dem Absenden wurde die Läufer-ID auf dem Bildschirm zusammen mit einem scannbaren Barcode angezeigt dieser wurde jedoch nur von den Helfern genutzt, die Karten an die neu registrierten Läufer:innen ausgaben.
Der Kiosk löste genau ein Problem: Die Namen der Läufer:innen mussten nicht mehr mühsam buchstabiert und manuell eingetippt (und nach dem unvermeidlichen Tippfehler erneut eingegeben) werden.
### Der neue Kiosk (1.2)
Der Hauptkritikpunkt am alten Kiosk war, dass die Kartenzuordnung für über der Kiosk registrierte Läufer:innen weiterhin umständlich war.
Man benötigte eine 1:1-Zuordnung von Kiosk-PCs zu Helfern, die Karten an die neu registrierten Läufer:innen ausgaben, was den Durchsatz des Kiosks begrenzte.
Der neue Kiosk ist als vollständige self-service Lösung konzipiert und ermöglicht einen höheren Durchsatz.
Um diese Ziele zu erreichen, haben wir folgende Funktionen eingeführt:
- **Anmeldung mit E-Mail**: Läufer:innen können bei der Anmeldung am Kiosk optional ihre E-Mail-Adresse angeben. Dadurch können sie das Self-Service-Portal nutzen, um ihre Anmeldedaten und Rundenzeiten einzusehen.
- **Self-Service QR-Code-Generierung**: Statt eines nichtssagenden Barcodes erzeugt der Kiosk nach der Anmeldung nun einen QR-Code. Dieser kann von den Läufer:innen gescannt werden, um das Self-Service-Portal zu öffnen und ihre Anmeldedaten einzusehen.
- **Bestätigungsdruck**: Ist das Kiosk mit einem Bondrucker verbunden, wird automatisch ein Bestätigungsbeleg mit den Anmeldedaten und dem QR-Code ausgedruckt. Der QR-Code kann von den Läufer:innen gescannt werden, um das Self-Service-Portal zu öffnen und ihre Anmeldedaten sowie Rundenzeiten einzusehen. Er kann auch von den Helfern zur Kartenzuordnung genutzt werden (siehe unten).
Dieses Video demonstriert die neuen Kiosk-Funktionen:
<video width="320" height="240" controls>
<source src="/images/kiosk.mp4" type="video/mp4">
</video>
![LfK! Kiosk Bon](/images/kiosk.jpg)
## Frontend
### Schnelle Läufer ↔️ Karten Zuordnung
Wir haben eine neue Ansicht im Admin-Panel implementiert, die es Helfern und Admins ermöglicht, schnell Karten an Läufer:innen zuzuordnen, die sich über der Kiosk registriert haben.
Diese Ansicht besteht hauptsächlich aus einem webbasierten QR-Code/Barcode-Scanner, der die vom Kiosk, den Bestätigungsbelegen und dem Self-Service-Portal generierten QR-Codes erkennt.
Sobald ein gültiger Code gescannt wurde, wechselt der Scanner in den Karten-Zuordnungsmodus und der Helfer muss nur noch den Barcode einer Karte vorhalten.
Dieses kurze Video zeigt die neue Karten-Zuordnungsfunktion:
<video width="320" height="240" controls>
<source src="/images/cardassign.mp4" type="video/mp4">
</video>
## Dokumente
### Performance-Verbesserungen
Der Dokumentenserver wurde komplett in Go neu geschrieben, um die Performance und Zuverlässigkeit zu verbessern.
Dies ist ein rein technischer Aspekt der Plattform und hat keine Auswirkungen auf die Nutzererfahrung.
### QR-Codes auf den Urkunden
Die Läuferurkunden enthalten nun zwei QR-Codes am unteren Rand der zweiten Seite:
- **Self-Service-Portal**: Der erste QR-Code führt zum Self-Service-Portal, in dem Läufer:innen ihre Anmeldedaten und Rundenzeiten einsehen können.
- **Zahlung**: Der zweite QR-Code ist ein EPC-Zahlungscode, der mit den meisten Banking-Apps gescannt werden kann und Empfänger, Verwendungszweck und Betrag für die mit dem Läufer verbundenen Spenden automatisch ausfüllt.
## Allgemein
- **Anmelde-Tracking**: Das Backend zeichnet nun die Anmeldequelle jeder Läufer:in auf. Dies wurde hauptsächlich implementiert, um die Nutzung des Kiosks und des Self-Service-Portals zu verfolgen.

View File

@ -1,70 +0,0 @@
---
title: New Features and Improvements
date: 2025-04-25
authors:
- name: ODIT.Services
link: https://odit.services
image: https://odit.services/img/profile-pic-no_bg.webp
tags:
- Release
- Kiosk
- Frontend
- Documents
excludeSearch: true
description: "Over the last few weeks we have been working on several new features and improvements to the platform. This post provides an overview of the most important changes."
lang: en
---
Over the last few weeks we have been working on several new features and improvements to the platform.
This post provides an overview of the most important changes.
## Kiosk
### LfK! 2023 - Kiosk 0.6
Two years ago, we introduced the Kiosk feature to allow runners to sign up in person on the day of the event.
It was a pretty basic form that allowed runners to enter their first name and last name.
After hitting enter the runner's ID was shown on the screen alongside a scannable barcode - but this was only used for the kisok attendees that assigned cards to the newly registered runners.
The kiosk fixed exactly one problem: Not needing to ask runners to spell their names out loud and having to type them in manually (and re-type them after the inevitable typo).
### The new kiosk (1.2)
The main pain point of the old kiosk was that it was still a hastle assign a card to a runner that registered via the kiosk.
You still needed a 1:1 assignment of kiosk pcs to helpers that assigned cards to the newly registered runners, limiting the throughput of the kiosk.
The new kiosk is designed to be completely self-service and allow for higher throughput.
To achieve these goals we have introduced the following features:
- **Signup with email**: Runners can optionally provide their email address when signing up via the kiosk. This allows them to use the runner self-service portal to view their registration details and lap times.
- **Self-service QR-Code generation**: Instead of some none-descript barcode the kiosk now generates a QR-Code after signup. This QR-Code can be scanned by the runner to open the self-service portal and view their registration details.
- **Confirmation printing**: If your kiosk hardware is connected to a receipt printer the kiosk automatically prints a confirmation slip with the runner's registration details and QR-Code. The QR-Code can be scanned by the runner to open the self-service portal and view their registration details and lap times. It can also be used by the helpers to assign a card to the runner (see below).
This video demonstrates the new kiosk features: TODO: Video
## Frontend
### Fast runner ↔️ card assignment
We implemented a new view in the admin panel that allows helpers and admins to quickly assign cards to runners that registered via the kiosk.
This view mainly consists of a web-based QR-Code/barcode scanner that can recognize the QR-Codes generated by the kiosk, confirmation slips and the self-service portal.
As soon as a valid code is scanned the scanner switches to card assignment mode and the helper just has to present a card's barcode to the scanner.
This short video demonstrates the new card assignment feature: TODO: Video
## Documents
### Performance improvements
The document server has been rewritten from scratch in go to improve performance and reliability.
This is just a technical aspect of the platform and does not change the user experience.
### QR-Codes on the certificates
The runner certificates now include two QR-Codes on the bottom of the second page:
- **Self-service portal**: The first QR-Code links to the self-service portal where runners can view their registration details and lap times.
- **Payment**: The second QR-Code is an EPC payment code that can be scanned via any banking app and automatically fills in the payment recipient, purpose and amount for the donations assoicated with the runner.
## General
- **Sign up tracking**: The backend now tracks the signup source of each runner. This was mainly implemented to allow us to track the usage of the kiosk and self-service portal.

View File

@ -1,33 +0,0 @@
---
title: Anonyme Spenden
date: 2025-04-28
authors:
- name: ODIT.Services
link: https://odit.services
image: https://odit.services/img/profile-pic-no_bg.webp
tags:
- Release
- Backend
- Frontend
- Spenden
excludeSearch: true
description: "Auf vielfachen Wunsch unserer selbst, haben wir eine neue Funktion zur Plattform hinzugefügt: Anonyme Spenden!"
lang: de
---
Bei den letzten Veranstaltungen haben wir gelegentlich Anfragen von Läufern erhalten, eine feste Summe anonym spenden zu können.
Das bedeutet, dass die Spende nicht mit einem bestimmten Läufer oder Spender verknüpft ist, aber dennoch in der Spendenstatistik angezeigt wird.
Meistens wurde dies bisher dadurch erreicht, dass Bargeld direkt an den Veranstalter übergeben wurde und dieses Geld dann nicht in die Spendenstatistik eingeflossen ist.
Dank [backend@1.4.0](https://git.odit.services/lfk/backend/releases/tag/1.4.0), [lib@1.2.5](https://www.npmjs.com/package/@odit/lfk-client-js/v/1.2.5) und [frontend@1.12.1](https://git.odit.services/lfk/frontend/releases/tag/1.12.1) gehört das nun der Vergangenheit an!
Wir haben eine neue Funktion zur Plattform hinzugefügt, mit der anonyme Spenden erstellt werden können.
Diese Funktion ist im Admin-Panel verfügbar und ermöglicht es, im Bereich „Spenden“ anonyme Spenden zu erfassen.
Einfach eine neue Spende hinzufügen, den Typ „Anonyme Spende“ auswählen und den gespendeten Betrag eintragen.
![Spende hinzufügen](/images/blog/2025-04-28_anonymous-donations_add.png)
Die Spende wird dann in der Spendenstatistik angezeigt, ist aber nicht mit einem bestimmten Läufer oder Spender verknüpft.
Sie erscheint außerdem in der Spendenübersicht im Admin-Panel und kann wie jede andere Spende gelöscht werden.
![Anonyme Spende in der Übersicht](/images/blog/2025-04-28_anonymous-donations_overview.png)

View File

@ -1,33 +0,0 @@
---
title: Anonymous Donations
date: 2025-04-28
authors:
- name: ODIT.Services
link: https://odit.services
image: https://odit.services/img/profile-pic-no_bg.webp
tags:
- Release
- Backend
- Frontend
- Donations
excludeSearch: true
description: "As requested by no one but ourselves we have added a new feature to the platform: Anonymous donations!"
lang: en
---
During the last events we sometimes received requests from runners to be able to donate a fixed anonymously.
This means that the donation is not linked to a specific runner or donor but will still be shown in the donation statistics.
Most of the time this was achived by just handing over cash to the event organizer and the cash not getting counted in the donation statistics.
This is now a thing of the past thanks to [backend@1.4.0](https://git.odit.services/lfk/backend/releases/tag/1.4.0), [lib@1.2.5](https://www.npmjs.com/package/@odit/lfk-client-js/v/1.2.5) and [frontend@1.12.1](https://git.odit.services/lfk/frontend/releases/tag/1.12.1)!
We have added a new feature to the platform that allows you to create anonymous donations.
This feature is available in the admin panel and allows you to create anonymous donations in the "Donations" section.
Just add a new donation, select the Type "Anonymous Donation" and enter the donated amount.
![Add donation](/images/blog/2025-04-28_anonymous-donations_add.png)
The donation will then be shown in the donation statistics but will not be linked to a specific runner or donor.
It will also be shown in the donation overview in the admin panel and can be deleted like any other donation.
![Anonymous donation in the overview](/images/blog/2025-04-28_anonymous-donations_overview.png)

View File

@ -1,73 +0,0 @@
---
title: Neues vor dem LfK! 2025
date: 2025-05-17
authors:
- name: ODIT.Services
link: https://odit.services
image: https://odit.services/img/profile-pic-no_bg.webp
tags:
- Release
- Frontend
- Feedback
- Tools
excludeSearch: true
description: "Kurz vor dem LfK! 2025 sind noch einige neue Funktionen und Verbesserungen auf der Plattform verfügbar. Dieser Beitrag gibt einen Überblick über die wichtigsten Änderungen."
lang: de
---
In unter einer Woche findet der LfK! 2025 statt und wir haben noch einige neue Funktionen und Verbesserungen auf der Plattform implementiert.
Dieser Beitrag gibt einen Überblick über die wichtigsten Änderungen.
## Frontend
Vor kurzem kam im Frontend für Admins die [Schnelle Kartenzuweisung](../2025-04-25_newfeatures#schnelle-läufer--karten-zuordnung) hinzu, die es ermöglicht, Karten schnell und einfach zuzuweisen.
Nach der guten Erfahrung mit diesem neuen Feature, haben wir noch ein paar weitere Tools ergänzt, die Admins und Helfern die Arbeit erleichtern sollen.
### Karten ersetzen
Gerade am Vormittag des Events kommt es häufig vor, dass Karten verloren gehen oder beschädigt werden.
Um die Arbeit der Helfer:innen zu erleichtern, haben wir ein neues Feature implementiert, das es ermöglicht, Karten schnell zu ersetzen.
Dabei kann die Läufer:in per ID oder Name gesucht werden und anschließend die Karte ersetzt werden, indem die neue Karte via Barcodescanner oder Smartphone-Kamera gescannt wird.
![Karte ersetzen](/images/blog/2025-05-19_replace_card.png)
### Mobiler Scanclient
Traditionell werden die Läuferkarten am Verantstaltungstag mit Hand-Barcode-Scannern gescannt, um die Rundenzeiten zu erfassen.
Dies ist auch immernoch die beste Methode, um die Rundenzeiten zu erfassen, da die Hand-Scanner eine hohe Scanrate haben und auch bei schlechten Lichtverhältnissen gut funktionieren.
Allerdings ist es nicht immer möglich, Hand-Scanner zu verwenden, z.B. wenn die Helfer:innen keine Hand-Scanner haben oder die Hand-Scanner nicht funktionieren.
Daher haben wir einen neuen mobilen Scanclient entwickelt, der es ermöglicht, Rundenzeiten mit einem Smartphone zu scannen.
Der Mobile Scanclient nutzt die Kamera des Smartphones, um Barcodes zu scannen und die Rundenzeiten zu erfassen.
![Mobiler Scanclient](/images/blog/2025-05-19_mobile_scanclient.png)
### Sponsoring-Schnellanlage
Tradition werden wenige Tage vor dem Event die Sponsoring-Verträge der Teilnehmer:innen eingesammelt und manuell über das Frontend eingepflegt.
Dabei musste bisher in zwei Ansichten gearbeitet werden:
1. In der Spnsoren-Übersicht, um Sponsoren zu suchen und/oder zu erstellen.
2. In der Sponsoring-Übersicht, um die Sponsorings zu ersten und zu bearbeiten.
In der neuen Schnelleingabe können Sponsoren und Sponsoring-Verträge in einer Ansicht erstellt werden. Dazu müssen nur folgende Schritte durchgeführt werden:
1. Läufer:in suchen (nach Name oder ID)
2. Sponsor Suchen oder neu erstellen
3. Betrag pro Kilometer eingeben
4. Sponsoring erstellen
![Neue Sponsoring-Schnelleingabe](/images/blog/2025-05-19_sponsoring_quick_add.png)
## Feedback
Wir wollten dieses Jahr beim LfK! 2025 QR-Codes aufhängen, über die uns Teilnehmer:innen Feedback geben können. Dafür haben wir verschiedene Tools ausprobiert und waren aber mit keinem wirklich zufrieden.
Was macht der gute Programmierer in so einem Fall? Er baut sich sein eigenes Tool! Und genau das haben wir getan.
Das neue Tool nimmt Feedback von Teilnehmer:innen entgegen, wobei eine Sterne-Wertung und ein Kommentar (+ optional die eigene E-Mail Adresse) abgegeben werden können.
![Feedback Form](/images/blog/2025-05-19_feedback_form.png)
In einem eigenen Admin-Bereich können die abgegebenen Bewertungen und Kommentare eingesehen und verwaltet werden.
Dabei gibt es neben ein paar Statistiken auch eine rudimentäre Sentiment-Analyse, die die abgegebenen Kommentare in positiv, neutral und negativ einteilt.
![Feedback Admin](/images/blog/2025-05-19_feedback_admin.png)

View File

@ -1,73 +0,0 @@
---
title: News before LfK! 2025
date: 2025-05-17
authors:
- name: ODIT.Services
link: https://odit.services
image: https://odit.services/img/profile-pic-no_bg.webp
tags:
- Release
- Frontend
- Feedback
- Tools
excludeSearch: true
description: "Shortly before LfK! 2025, several new features and improvements have been added to the platform. This post provides an overview of the most important changes."
lang: en
---
In less than a week, LfK! 2025 will take place, and we have implemented several new features and improvements on the platform.
This post provides an overview of the most important changes.
## Frontend
Recently, we added the [Quick Card Assignment](../2025-04-25_newfeatures#quick-runner--card-assignment) feature to the admin frontend, which makes it possible to assign cards quickly and easily.
After the positive experience with this new feature, we have added a few more tools to make the work of admins and helpers easier.
### Card Replacement
Especially on the morning of the event, cards often get lost or damaged.
To make the work of helpers easier, we have implemented a new feature that allows for quick card replacement.
The runner can be searched by ID or name, and then the card can be replaced by scanning the new card using a barcode scanner or smartphone camera.
![Replace Card](/images/blog/2025-05-19_replace_card.png)
### Mobile Scan Client
Traditionally, runner cards are scanned with handheld barcode scanners on the event day to record lap times.
This is still the best method to capture lap times, as handheld scanners have a high scan rate and work well even in poor lighting conditions.
However, it's not always possible to use handheld scanners, e.g., when helpers don't have handheld scanners or the scanners don't work.
Therefore, we have developed a new mobile scan client that allows for recording lap times with a smartphone.
The mobile scan client uses the smartphone's camera to scan barcodes and record lap times.
![Mobile Scan Client](/images/blog/2025-05-19_mobile_scanclient.png)
### Quick Sponsorship Creation
Traditionally, a few days before the event, participants' sponsorship contracts are collected and manually entered through the frontend.
Until now, this required working in two different views:
1. In the sponsors overview to search for and/or create sponsors.
2. In the sponsorship overview to create and edit sponsorships.
In the new quick entry form, sponsors and sponsorship contracts can be created in a single view. To do this, only the following steps need to be completed:
1. Search for a runner (by name or ID)
2. Search for or create a new sponsor
3. Enter the amount per kilometer
4. Create the sponsorship
![New Quick Sponsorship Creation](/images/blog/2025-05-19_sponsoring_quick_add.png)
## Feedback
This year at LfK! 2025, we wanted to post QR codes that participants could use to give us feedback. We tried various tools for this but weren't really satisfied with any of them.
What does a good programmer do in such a case? He builds his own tool! And that's exactly what we did.
The new tool accepts feedback from participants, allowing them to give a star rating and a comment (+ optionally their own email address).
![Feedback Form](/images/blog/2025-05-19_feedback_form.png)
In a dedicated admin area, the submitted ratings and comments can be viewed and managed.
In addition to some statistics, there is also a rudimentary sentiment analysis that categorizes the submitted comments as positive, neutral, or negative.
![Feedback Admin](/images/blog/2025-05-19_feedback_admin.png)

View File

@ -1,11 +0,0 @@
---
title: "Blog"
lang: de
---
<div style="text-align: center; margin-top: 1em;">
{{< hextra/hero-badge link="index.xml" >}}
<span>RSS Feed</span>
{{< icon name="rss" attributes="height=14" >}}
{{< /hextra/hero-badge >}}
</div>

View File

@ -1,11 +0,0 @@
---
title: "Blog"
lang: en
---
<div style="text-align: center; margin-top: 1em;">
{{< hextra/hero-badge link="index.xml" >}}
<span>RSS Feed</span>
{{< icon name="rss" attributes="height=14" >}}
{{< /hextra/hero-badge >}}
</div>

View File

@ -1,23 +0,0 @@
---
linkTitle: "Kiosk"
title: Kiosk
weight: 1
prev: /
next: /kiosk/setup
cascade:
type: docs
lang: de
---
Der Kiosk kann verwendet werden, um sich vor Ort für die Veranstaltung anzumelden.
Es handelt sich um eine Webanwendung, die auf jedem Gerät mit einem Webbrowser genutzt werden kann, ist jedoch hauptsächlich für die Verwendung mit dedizierter Hardware (z.B. Tablets) vorgesehen.
Der Kiosk ist für den Einsatz im öffentlichen Raum konzipiert und sollte daher einfach zu bedienen sein und keine besonderen Kenntnisse oder Schulungen erfordern.
## Bevorzugte Hardware
Wir empfehlen Hardware, die über einen Touchscreen und eine Tastatur verfügt.
Dies ermöglicht eine einfache Dateneingabe und macht den Kiosk benutzerfreundlicher.
Die Hardware sollte außerdem robust sein und starker Beanspruchung standhalten können, da sie während der Veranstaltung von vielen Personen genutzt wird.
Bonuspunkte, wenn das System einen Belegdrucker enthält, der es ermöglicht, Anmeldebelege direkt vom Kiosk auszudrucken.
Diese Belege enthalten einen QR-Code, der bei der Anmeldung gescannt werden kann, um den Benutzer zu registrieren, und vom Benutzer, um auf unser Self-Service-Portal zuzugreifen.

View File

@ -1,23 +0,0 @@
---
linkTitle: "Kiosk"
title: Kiosk
weight: 1
prev: /
next: /kiosk/setup
cascade:
type: docs
lang: en
---
The kiosk can be used to sign up to the event on site.
It's a web application that can be used on any device with a web browser, but is primarily intended for use with dedicated hardware (e.g. tablets).
The kiosk is designed to be used in a public space, so it should be easy to use and not require any special knowledge or training.
## Prefered Hardware
We recomend hardware that has a touchscreen and a keyboard.
This allows for easy input of data and makes the kiosk more user-friendly.
The hardware should also be durable and able to withstand heavy use, as it will be used by many people during the event.
Bonus points if the system includes a receipt printer, this allows for registration receipts to be printed directly from the kiosk.
These receipts include a QR code that can be scanned at signup to register the user and by the user to access our self-service portal.

View File

@ -1,28 +0,0 @@
---
title: Konfiguration
weight: 3
prev: /kiosk/setup
lang: de
---
Wie du den Kiosk nach der Einrichtung konfigurierst.
{{% steps %}}
### Benutzer erstellen
Erstelle einen neuen Benutzer im System - vorzugsweise mit dem Namen `kiosk`.
Weitere Informationen zum Erstellen eines Benutzers findest du in der [Admindokumentation](../admin/users).
### Berechtigungen zuweisen
Der Benutzer benötigt folgende Berechtigungen:
- `RUNNER:CREATE`
Weitere Informationen zum Zuweisen von Berechtigungen findest du in der [Admindokumentation](../admin/users).
### Anmelden
Melde dich auf deinem Kiosk-Gerät mit dem Benutzer an, den du im vorherigen Schritt erstellt hast.
{{% /steps %}}

View File

@ -1,28 +0,0 @@
---
title: Configuration
weight: 3
prev: /kiosk/setup
lang: en
---
How to configure the kiosk after setup.
{{% steps %}}
### Create user
Create a new user in the system - preferably with the name `kiosk`.
Please refer to the [admin docs](../admin/users) for more information on how to create a user.
### Assign permissions
The user needs the following permissions:
- `RUNNER:CREATE`
Please refer to the [admin docs](../admin/users) for more information on how to assign permissions.
### Login
Login in on your kiosk device with the user you created in the previous step.
{{% /steps %}}

View File

@ -1,184 +0,0 @@
---
title: Kiosk Einrichtung
weight: 2
prev: /kiosk
next: /kiosk/config
lang: de
---
So richten Sie den Kiosk für die Veranstaltung ein.
## Mit Windows Assigned Access
{{< callout type="info" >}}
Dies wurde nur auf Windows 11 Pro und Enterprise getestet.
{{< /callout >}}
### Voraussetzungen
- Windows 11 Pro oder Enterprise
- Nur ein konfigurierter Drucker oder Belegdrucker als Standarddrucker eingerichtet - du kannst die Druckfunktion deaktivieren, aber mit Drucker ist die Benutzererfahrung besser
- Administratorzugriff auf das System
### Einrichtung
1. Laden Sie [psexec](/files/psexec.exe) herunter
2. Öffnen Sie eine PowerShell mit Administratorrechten
3. Wechseln Sie zum Download-Ordner `cd C:\Users\<Benutzername>\Downloads`
4. Führe den psexec-Befehl aus: `.\psexec.exe -i -s powershell.exe`
5. Führe das folgende Skript aus
{{< tabs items="Mit Drucker, Ohne Drucker" >}}
{{< tab >}}
```powershell
$assignedAccessConfiguration = @"
<?xml version="1.0" encoding="utf-8"?>
<AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config" xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config" xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config">
<Profiles>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
<KioskModeApp v4:ClassicAppPath="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" v4:ClassicAppArguments="--kiosk https://kiosk.lauf-fuer-kaya.de/?print=true --kiosk-printing --edge-kiosk-type=fullscreen" />
<v4:BreakoutSequence Key="Ctrl+E" />
</Profile>
</Profiles>
<Configs>
<Config>
<AutoLogonAccount rs5:DisplayName="Lfk Kiosk" />
<DefaultProfile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" />
</Config>
</Configs>
</AssignedAccessConfiguration>
"@
$namespaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
$obj.Configuration = [System.Net.WebUtility]::HtmlEncode($assignedAccessConfiguration)
Set-CimInstance -CimInstance $obj
```
{{< /tab >}}
{{< tab >}}
```powershell
$assignedAccessConfiguration = @"
<?xml version="1.0" encoding="utf-8"?>
<AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config" xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config" xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config">
<Profiles>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
<KioskModeApp v4:ClassicAppPath="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" v4:ClassicAppArguments="--kiosk https://kiosk.lauf-fuer-kaya.de/ --kiosk-printing --edge-kiosk-type=fullscreen" />
<v4:BreakoutSequence Key="Ctrl+E" />
</Profile>
</Profiles>
<Configs>
<Config>
<AutoLogonAccount rs5:DisplayName="Lfk Kiosk" />
<DefaultProfile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" />
</Config>
</Configs>
</AssignedAccessConfiguration>
"@
$namespaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
$obj.Configuration = [System.Net.WebUtility]::HtmlEncode($assignedAccessConfiguration)
Set-CimInstance -CimInstance $obj
```
{{< /tab >}}
{{< /tabs >}}
6. Ruhezustand und Windows Tastenkombinationen deaktivieren
```powershell
$NullKey = [byte[]]($null,$null)
$LeftWindows = [byte[]](0x5b,0xe0)
$RightWindows = [byte[]](0x5c,0xe0)
$RemapCount = 2
$ReMap = [byte[]](
[Byte[]]::new(8) +
[BitConverter]::GetBytes(1+$RemapCount) +
$NullKey + $LeftWindows +
$NullKey + $RightWindows +
[Byte[]]::new(4)
)
$Splat = @{
'Path' = 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layout'
'Name' = 'ScanCode Map'
'Value' = $Remap
'Force' = $True
}
New-ItemProperty @Splat
$RegistryPath = "HKLM:\SOFTWARE\Policies\Microsoft\Dsh"
$Name = "AllowNewsAndInterests"
$Value = 0
If (-not (Test-Path $RegistryPath)) {
New-Item -Path $RegistryPath -Force | Out-Null
}
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type DWORD -Force | Out-Null
powercfg.exe -x -monitor-timeout-ac 0
powercfg.exe -x -monitor-timeout-dc 0
powercfg.exe -x -disk-timeout-ac 0
powercfg.exe -x -disk-timeout-dc 0
powercfg.exe -x -standby-timeout-ac 0
powercfg.exe -x -standby-timeout-dc 0
powercfg.exe -x -hibernate-timeout-ac 0
powercfg.exe -x -hibernate-timeout-dc 0
```
7. Nur für den Druck: Druck ohne Metadaten einrichten:
1. Lade die [Administrativen Richtlinienvorlagen für Edge](https://www.microsoft.com/de-de/edge/business/download) herunter (Neueste Version herunterladen -> Windows 64-bit -> Windows 64-bit-Richtlinie herunterladen)
2. Kopiere den Inhalt der ZIP-Datei aus dem `.cab`-Archiv nach `C:\Windows\PolicyDefinitions`.
3. Öffne den Gruppenrichtlinien-Editor (GPEdit) und navigiere zu `Computerkonfiguration -> Administrative Vorlagen -> Microsoft Edge -> Drucken`
4. Öffne die Richtlinie `Kopf- und Fußzeilen drucken`, setze sie auf `Deaktiviert` und klicke auf `OK`.
8. Neustarten via `shutdown -r -t 0` oder die Windows Benutzeroberfläche.
### Deinstallation
1. Um den Kiosk-Modus zu verlassen, drücken Sie `Strg+E`
2. Öffnen Sie eine PowerShell mit Administratorrechten
3. Wechseln Sie zum Desktop-Ordner (C:\Users\<Benutzername>\Desktop)
4. Führen Sie den psexec-Befehl aus: `psexec.exe -i -s powershell.exe`
5. Führen Sie das folgende Skript aus
```powershell
$namespaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
$obj.Configuration = $null
Set-CimInstance -CimInstance $obj
$Splat = @{
'Path' = 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layout'
'Name' = 'ScanCode Map'
'Force' = $True
}
Remove-ItemProperty @Splat
$RegistryPath = "HKLM:\SOFTWARE\Policies\Microsoft\Dsh"
$Name = "AllowNewsAndInterests"
If (Test-Path -Path $RegistryPath) {
If (Get-ItemProperty -Path $RegistryPath -Name $Name -ErrorAction SilentlyContinue) {
Remove-ItemProperty -Path $RegistryPath -Name $Name -Force | Out-Null
}
}
```
## Mit deinem bevorzugten Browser
{{< callout type="warning" >}}
Die Möglichkeit, den Browser zu verlassen und/oder DevTools zu öffnen, könnte standardmäßig verfügbar sein.
Bitte prüfe, ob dein Browser einen Kiosk-Modus unterstützt und wie du ihn einrichten kannst.
{{< /callout >}}
{{< callout type="warning" >}}
Dein Browser unterstützt möglicherweise nicht das Drucken ohne Dialog.
Bitte prüfe, ob dein Browser diese Funktion unterstützt und wie du sie einrichten kannst.
{{< /callout >}}
Öffne einfach den Link in deinem bevorzugten Browser und nutze den Kiosk-Modus deines Browsers:
- Mit automatischem Druck: <https://kiosk.lauf-fuer-kaya.de/?print=true>
- Ohne automatischen Druck: <https://kiosk.lauf-fuer-kaya.de/>

View File

@ -1,186 +0,0 @@
---
title: Kiosk Setup
weight: 2
prev: /kiosk
next: /kiosk/config
lang: en
---
How to set up the kiosk for the event.
## With Windows Assigned Access
{{< callout type="info" >}}
This is only tested on windows 11 pro and enterprise.
{{< /callout >}}
### Prerequesites
- Windows 11 Pro or Enterprise
- Only one configured printer or receipt printer configured as default printer - you can disable printing but it's cooler to have it
- Admin access to the system
### Setup
1. Download [psexec](/files/psexec.exe)
2. Open a admin windows PowerShell prompt
3. Cd to Downloads `cd C:\Users\<Username>\Downloads`
4. Run the psexec command: `.\psexec.exe -i -s powershell.exe`
5. Run the following script
{{< tabs items="With printing, Without printing" >}}
{{< tab >}}
```powershell
$assignedAccessConfiguration = @"
<?xml version="1.0" encoding="utf-8"?>
<AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config" xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config" xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config">
<Profiles>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
<KioskModeApp v4:ClassicAppPath="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" v4:ClassicAppArguments="--kiosk https://kiosk.lauf-fuer-kaya.de/?print=true --kiosk-printing --edge-kiosk-type=fullscreen" />
<v4:BreakoutSequence Key="Ctrl+E" />
</Profile>
</Profiles>
<Configs>
<Config>
<AutoLogonAccount rs5:DisplayName="Lfk Kiosk" />
<DefaultProfile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" />
</Config>
</Configs>
</AssignedAccessConfiguration>
"@
$namespaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
$obj.Configuration = [System.Net.WebUtility]::HtmlEncode($assignedAccessConfiguration)
Set-CimInstance -CimInstance $obj
```
{{< /tab >}}
{{< tab >}}
```powershell
$assignedAccessConfiguration = @"
<?xml version="1.0" encoding="utf-8"?>
<AssignedAccessConfiguration xmlns="http://schemas.microsoft.com/AssignedAccess/2017/config" xmlns:rs5="http://schemas.microsoft.com/AssignedAccess/201810/config" xmlns:v4="http://schemas.microsoft.com/AssignedAccess/2021/config">
<Profiles>
<Profile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}">
<KioskModeApp v4:ClassicAppPath="%ProgramFiles(x86)%\Microsoft\Edge\Application\msedge.exe" v4:ClassicAppArguments="--kiosk https://kiosk.lauf-fuer-kaya.de/ --kiosk-printing --edge-kiosk-type=fullscreen" />
<v4:BreakoutSequence Key="Ctrl+E" />
</Profile>
</Profiles>
<Configs>
<Config>
<AutoLogonAccount rs5:DisplayName="Lfk Kiosk" />
<DefaultProfile Id="{EDB3036B-780D-487D-A375-69369D8A8F78}" />
</Config>
</Configs>
</AssignedAccessConfiguration>
"@
$namespaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
$obj.Configuration = [System.Net.WebUtility]::HtmlEncode($assignedAccessConfiguration)
Set-CimInstance -CimInstance $obj
```
{{< /tab >}}
{{< /tabs >}}
6. Disable sleep and hibernation alongside the windows button:
```powershell
$NullKey = [byte[]]($null,$null)
$LeftWindows = [byte[]](0x5b,0xe0)
$RightWindows = [byte[]](0x5c,0xe0)
$RemapCount = 2
$ReMap = [byte[]](
[Byte[]]::new(8) +
[BitConverter]::GetBytes(1+$RemapCount) +
$NullKey + $LeftWindows +
$NullKey + $RightWindows +
[Byte[]]::new(4)
)
$Splat = @{
'Path' = 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layout'
'Name' = 'ScanCode Map'
'Value' = $Remap
'Force' = $True
}
New-ItemProperty @Splat
$RegistryPath = "HKLM:\SOFTWARE\Policies\Microsoft\Dsh"
$Name = "AllowNewsAndInterests"
$Value = 0
If (-not (Test-Path $RegistryPath)) {
New-Item -Path $RegistryPath -Force | Out-Null
}
New-ItemProperty -Path $RegistryPath -Name $Name -Value $Value -Type DWORD -Force | Out-Null
powercfg.exe -x -monitor-timeout-ac 0
powercfg.exe -x -monitor-timeout-dc 0
powercfg.exe -x -disk-timeout-ac 0
powercfg.exe -x -disk-timeout-dc 0
powercfg.exe -x -standby-timeout-ac 0
powercfg.exe -x -standby-timeout-dc 0
powercfg.exe -x -hibernate-timeout-ac 0
powercfg.exe -x -hibernate-timeout-dc 0
```
7. For print only: Setup printing without metadata:
1. Download the [Administrative Policy Templates for Edge](https://www.microsoft.com/en-en/edge/business/download) (Download the latest -> Windows 64-bit -> Download Windows 64-bit Policy)
2. Copy the Contents of the zip inside the `.cab` to `C:\Windows\PolicyDefinitions`.
3. Open GPEdit and navigate to `Computer Configuration -> Administrative Templates -> Microsoft Edge -> Printing`
4. Open the `Print headers and footers` policy, set it to `Disabled` and click `OK`.
8. Reboot via `shutdown -r -t 0` or the windows GUI.
### Teardown
1. To escape the experience press `Ctrl+E`
2. Open a admin windows PowerShell prompt
3. Cd to Desktop (C:\Users\<Username>\Desktop
4. Run the psexec command: `psexec.exe -i -s powershell.exe`
5. Run the following script
```powershell
$namespaceName="root\cimv2\mdm\dmmap"
$className="MDM_AssignedAccess"
$obj = Get-CimInstance -Namespace $namespaceName -ClassName $className
$obj.Configuration = $null
Set-CimInstance -CimInstance $obj
$Splat = @{
'Path' = 'HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layout'
'Name' = 'ScanCode Map'
'Force' = $True
}
Remove-ItemProperty @Splat
$RegistryPath = "HKLM:\SOFTWARE\Policies\Microsoft\Dsh"
$Name = "AllowNewsAndInterests"
If (Test-Path -Path $RegistryPath) {
If (Get-ItemProperty -Path $RegistryPath -Name $Name -ErrorAction SilentlyContinue) {
Remove-ItemProperty -Path $RegistryPath -Name $Name -Force | Out-Null
}
}
```
## With your favourite browser
{{< callout type="warning" >}}
The ability to exit the browser and/or open devtools may be available by default.
Please check if your browser supports a kiosk mode and how to set it up.
{{< /callout >}}
{{< callout type="warning" >}}
Your browser might not support printing without a dialog.
Please check if your browser supports this feature and how to set it up.
{{< /callout >}}
Just open the link in your favourite browser and use the kiosk mode of your browser:
- With auto-printing: <https://kiosk.lauf-fuer-kaya.de/?print=true>
- Without auto-printing: <https://kiosk.lauf-fuer-kaya.de/>

View File

@ -1,38 +0,0 @@
---
linkTitle: "Scannerstationen"
title: Über die Scannerstationen
weight: 1
prev: /
next: /scanstation/install
cascade:
type: docs
lang: de
---
Die Scannerstation ist die Kombination aus Hardware und Software, die dazu genutzt wird Läuferkarten zu scannen und damit gelaufene Distanzen im System zu erfassen.
Wir schreiben grundsätzlich keine Hardware oder Software vor - stellen aber selbst eine Software bereit und empfehlen Hardware.
Die API für Scannerstationen im Läufersystem ist grundsätzlich so gestaltet, dass Scans live erfasst und validiert (Läufer, Track, Rundenzeit) werden.
## Bedienung
{{< callout type="info" >}}
Die Bedienung kann erst nach der [Konfiguration](./config) erfolgen.
{{< /callout >}}
Die Bedienung der Software als Helfer an der Scannerstation ist relativ einfach.
{{% steps %}}
### Scannen
Den Handscanner auf den Barcode der Läuferkarte halten und auf den Bestätigungs-Ton warten.
### Validierung
Schau auf den Bildschirm deiner Scannerstation, ob der Scan valide war.
Hier wird auch die aktuelle Kilometerzahl und die Rundenzeit angezeigt.
{{% /steps %}}

View File

@ -1,36 +0,0 @@
---
linkTitle: "Scannerstationen"
title: "About the Scanner Stations"
weight: 1
prev: /
next: /scanstation/install
cascade:
type: docs
lang: en
---
The scanner station is the combination of hardware and software used to scan runner cards and record the distances run in the system.
We do not prescribe any specific hardware or software - but we do provide our own software and recommend hardware.
The API for scanner stations in the runner system is designed to capture and validate scans live (runner, track, lap time).
## Operation
{{< callout type="info" >}}
Operation can only be performed after [configuration](./config).
{{< /callout >}}
Operating the software as a helper at the scanner station is relatively simple.
{{% steps %}}
### Scanning
Hold the handheld scanner over the barcode of the runner card and wait for the confirmation tone.
### Validation
Look at the screen of your scanner station to see if the scan was valid.
The current kilometer count and lap time are also displayed here.
{{% /steps %}}

View File

@ -1,49 +0,0 @@
---
title: Scanner Station Configuration
weight: 3
prev: /scanstation/install
lang: en
---
## Start
{{% steps %}}
### API Endpoint
When you open the Scanclient software, you will first be asked for an API endpoint.
Here you need to enter the URL of your LfK backend (e.g., `https://lauf-fuer-kaya.de`).
### Client Token
Next, you will be asked for a Client Token.
The setup is described under [Create Token](../../user/scanstations).
### Confirm
If you made a typo in the API endpoint, you can enter `rst` instead of a Client Token to set it again.
Once you have entered the token, you can click the "Configure" button and the Scanclient will start.
{{% /steps %}}
## Change Configuration
{{% steps %}}
### Start Config Mode
Type `cnf` in the runner card field and press Enter.
### Config Mode
Now the configuration overview opens, listing all the details of the configured scanner station.
### Save Settings
When you are done, you can switch back to scan mode by clicking the "Back to Scanner" button.
### Log Out
If you want to log out the software from the runner system or change the token, click on "Log out from this Client".
{{% /steps %}}

View File

@ -1,55 +0,0 @@
---
title: Scannerkonfiguration
weight: 31
prev: /scanstation/config
lang: de
---
{{< callout type="warning" >}}
Diese Konfiguration wurde nur mit GD4130-BK/WH USB Scannern getestet
{{< /callout >}}
{{< callout type="info" >}}
Download als PDF: [Scannerkonfiguration.pdf](/files/scannerconfig.pdf)
{{< /callout >}}
{{% steps %}}
### Werkseinstellungen wiederherstellen
![Factory reset](/images/barcode_config/00_factory_reset.png)
### 2. Programming Mode Aktivieren
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
### 3. Nur EAN-13 scannen (optional)
![Check EAN Checkdigit](/images/barcode_config/02_disable_all.png)
![Disable EAN Checkdigit](/images/barcode_config/03_enable_ean.png)
### 4. EAN13 Check-Zahl überprüfen, aber nicht übertragen
![Disable EAN Checkdigit](/images/barcode_config/05_disable_ean_digit.png)
### 5. Scanner auf always on stellen (optional)
![Scan mode: Always on](/images/barcode_config/06_always_on.png)
### 6. Programming Mode Verlassen
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
### 7. Beep ausschalten (optional)
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
![Scan mode: Always on](/images/barcode_config/07_beep_off.png)
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
### 8. Tastatur auf Deutsch stellen (optional)
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
![Country Mode: Germany](/images/barcode_config/08_countrycode_germany.png)
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
{{% /steps %}}

View File

@ -1,20 +0,0 @@
---
title: Hardware Recommendations
weight: 4
prev: /scanstation/config
lang: en
---
Known-good hardware that we can recommend for the scanning stations.
## Computer
* Raspberry Pi 3 or newer
* Processor: Minimum: Intel Core 2 Duo
* Memory: Minimum 4GB
## Barcode Scanner
* Datalogic Gryphon GD4130-BK/WH USB Scanner (1D)
* Datalogic Gryphon GD4200 USB Scanner (1D)
* Datalogic Gryphon GD4400 USB Scanner (2D)

View File

@ -1,72 +0,0 @@
---
title: Scannerstation Installation
weight: 2
prev: /scanstation
next: /scanstation/config
lang: de
---
Es gibt aktuell zwei Varianten, um die Scanclient Software zu installieren/nutzen.
1. Als Livesystem starten (empfohlen)
2. Für Windows oder Linux herunterladen
## Livesystem
{{< callout type="info" >}}
Wir empfehlen die Nutzung des Livesystems, da es keine Installation erfordert und immer die aktuellste Version verwendet.
{{< /callout >}}
{{% steps %}}
### Download
Lade dir die aktuellste Version des Betriebssystems herunter: [Versionsübersicht](https://git.odit.services/lfk/scanclient-live/releases)
* Den neusten (obersten) Release auswählen.
* Unter "Downloads" die Datei lfk-scanclient-live_X.Y.Z_x64.zip anklicken
### Stick Formatieren
Einen USB-Stick einstecken und als FAT32 formatieren (Achtung: Hierbei gehen alle Daten verloren, die auf dem Stick sind).
### Kopieren und Entpacken
Die ZIP-Datei auf den Stick kopieren und entpacken.
Du solltest einen neuen Order `slax` erhalten
### Den Stick bootfähig machen
* Windows: Die Datei `USBSTICK\slax\boot\bootinst.bat` als Administrator ausführen
* Linux/Mac: Die Datei `USBSTICK/slax/boot/bootinst.sh` mit Root-Rechten (sudo) ausführen
### Booten
Den Stick in den Rechner deiner Wahl einstecken und von ihm Starten.
Bei den meisten Rechner geht das, indem du beim Hochfahren F12 und/oder Entf drückst und dann den USB-Stick auswählst.
{{% /steps %}}
## Windows/Linux
{{% steps %}}
### Herunterladen
Programm aus dem Git Repo herunterladen: [Versionsübersicht](https://git.odit.services/lfk/scanclient-electron/releases)
* Den neusten (obersten) Release auswählen.
* Unter "Downloads" die Datei für dein Betriebssystem anklicken
* Windows: `@lfk-scanclient-electron-win32-x64.zip`
* Linux: `@lfk-scanclient-electron-linux-x64.zip`
### Entpacken
Die ZIP-Datei entpacken und den Ordner `lfk-scanclient-electron-win32-x64` öffnen.
### Starten
* Windows: Die Datei `@lfk-scanclient-electron.exe` öffnen.
* Linux: Die Datei `@lfk-scanclient-electron` öffnen.
{{% /steps %}}

View File

@ -1,72 +0,0 @@
---
title: Scannerstation Installation
weight: 2
prev: /scanstation
next: /scanstation/config
lang: en
---
There are currently two ways to install/use the Scanclient software.
1. Start as a live system (recommended)
2. Download for Windows or Linux
## Live System
{{< callout type="info" >}}
We recommend using the live system as it requires no installation and always uses the latest version.
{{< /callout >}}
{{% steps %}}
### Download
Download the latest version of the operating system: [Version Overview](https://git.odit.services/lfk/scanclient-live/releases)
* Select the latest (top) release.
* Under "Downloads" click on the file lfk-scanclient-live_X.Y.Z_x64.zip
### Format Stick
Insert a USB stick and format it as FAT32 (Warning: This will erase all data on the stick).
### Copy and Unzip
Copy the ZIP file to the stick and unzip it.
You should get a new folder `slax`
### Make the Stick Bootable
* Windows: Run the file `USBSTICK\slax\boot\bootinst.bat` as Administrator
* Linux/Mac: Run the file `USBSTICK/slax/boot/bootinst.sh` with root privileges (sudo)
### Boot
Insert the stick into the computer of your choice and boot from it.
On most computers, you can do this by pressing F12 and/or Delete during startup and then selecting the USB stick.
{{% /steps %}}
## Windows/Linux
{{% steps %}}
### Download
Download the program from the Git repo: [Version Overview](https://git.odit.services/lfk/scanclient-electron/releases)
* Select the latest (top) release.
* Under "Downloads" click on the file for your operating system
* Windows: `@lfk-scanclient-electron-win32-x64.zip`
* Linux: `@lfk-scanclient-electron-linux-x64.zip`
### Unzip
Unzip the ZIP file and open the folder `lfk-scanclient-electron-win32-x64`.
### Start
* Windows: Open the file `@lfk-scanclient-electron.exe`.
* Linux: Open the file `@lfk-scanclient-electron`.
{{% /steps %}}

View File

@ -1,24 +0,0 @@
---
linkTitle: "Selfservice"
title: Introduction
weight: 1
prev: /
next: /selfservice/orgs
cascade:
type: docs
lang: en
---
The self-service allows runners to register themselves for the run and view their own data.
It includes (but is not limited to) the following functions:
* Registration for citizen runners
* Registration for corporate runners
* Viewing a runner's own data
* General data: First name, middle name, last name, email address, phone number
* Lap times
* Download a runner certificate
* Completely delete a runner's data from the system (GDPR compliant)
Note: For the self-service to work for citizen runners, the automatically generated citizen run organization must exist!

View File

@ -1,40 +0,0 @@
---
title: Selfservice für Organisationen
weight: 1
prev: /selfservice
lang: de
---
{{< callout type="warning" >}}
Für den Bürgerlauf gibt es die Org "Citizen" (ID 1), die nicht gelöscht werden sollte.
{{< /callout >}}
Läufer:innen von Firmen und andere Institutionen können sich über den Selfservice für den Lauf registrieren.
So werden sie automatisch im System angelegt und bekommen per Mail einen Link zugesendet, mit dem sie ihre persönlichen Daten und Rundenzeiten ansehen können.
## Selfservice für eine Organisations freischalten
{{< callout type="warning" >}}
Nur Teammitglider können Organisationen für die Registrierung über den Selfservice freischalten.
Solltest du zu einer Organisation gehören, die sich freischalten lassen will wende dich bitte an das Laufteam.
{{< /callout >}}
{{% steps %}}
### Org-Übersicht
Rufe im Läufersystem die Seite `Organisationen auf`
### Org-Details
Klicke für die gewünschte Organisation auf den Button `Details`
### Selfservice aktivieren
Setze einen Haken bei `Selfservice Registrierung`, falls dieser noch nicht gesetzt ist und klicke auf `Änderungen speichern`
### Link Teilen
Kopiere den Registrierungslink für die Organisation
{{% /steps %}}

View File

@ -1,38 +0,0 @@
---
title: Selfservice for organizations
weight: 1
prev: /selfservice
lang: en
---
{{< callout type="warning" >}}
The org "Citizen" (ID 1) is reserved for the citizen run event and should not be deleted.
{{< /callout >}}
Runners from companies and other institutions can register for the run through the self-service. They will be automatically added to the system and receive a link via email to view their personal data and lap times.
## Enable Self-service for an Organization
{{< callout type="warning" >}}
Only team members can enable organizations for registration through the self-service.
If you belong to an organization that wants to use the selfservice, please contact the team.
{{< /callout >}}
{{% steps %}}
### Org Overview
Open the `Organizations` page in the runner system
### Org Details
Click the `Details` button for the desired organization
### Enable Self-service
Check the `Self-service Registration` box if it is not already checked and click `Save changes`
### Share Link
Copy the registration link for the organization
{{% /steps %}}

View File

@ -1,19 +0,0 @@
---
linkTitle: "Nutzerdokumentation"
title: Einleitung
cascade:
type: docs
lang: en
---
This part of the documentation describes the interaction with the system for normal users.
If you're interested in installing, configuring or administrating the system take a look at the [admin section](../admin).
## FAQ
> A couple of frequently asked questiones.
### Why can't i see the page XY?
Users can only see pages if they have the right permissions.
If you can't view a page that you need to, please contact your administrator.

View File

@ -1,75 +0,0 @@
---
title: Runner Cards
weight: 9
lang: en
---
Runner cards are used to generate [Trackscans](../scans) for [Runners](../runners) through [Scanner Stations](../scanstations).
Runner cards can either be permanently assigned to a runner or used as blank cards that can be assigned to any runner.
## Creating
You can create runner cards either manually or have the system generate them automatically.
You can also generate as many blank cards as you need from the system.
### Create Manually
To create a new runner card, open the `Runner Cards` page in the runner system.
Click the `Create Card` button to create a new runner card.
Here you can select a runner (but you don't have to).
Once you have entered all the information, click the `Create` button to create the runner card.
### Generate Blank Cards
To create new blank cards, open the `Runner Cards` page in the runner system.
Click the `Create Blank Cards` button to create new blank cards.
Here you can select how many cards should be generated.
Once you have entered all the information, click the `Create` button to generate the blank cards.
### For Runners
In the runner overview, you can select any number of runners (or all runners using the `Select All` button).
Then the `Generate Runner Cards` button will appear above the runner list.
Once you click it, you can select the language for the runner card PDFs.
The runner cards will then be created, the PDFs generated, and downloaded.
### For Teams
#### For Teams in the Team Overview
In the team overview, you can select any number of teams (or all teams using the `Select All` button).
Then the `Generate Runner Cards` button will appear above the team list.
Once you click it, you can select the language for the runner card PDFs.
The runner cards for all runners in the teams will then be created, the PDFs generated, and downloaded.
#### For Individual Teams in the Team Detail View
To generate runner cards for all runners in a single team, click the `Details` button for the desired team in the team overview.
Then, in the detail view, simply click the `Generate Runner Cards` button and select the desired language - the runner cards will then be generated and downloaded.
### For Organizations
#### For Organizations in the Organization Overview
In the organization overview, you can select any number of organizations (or all organizations using the `Select All` button).
Then the `Generate Runner Cards` button will appear above the organization list.
Once you click it, you can select the language for the runner card PDFs.
The runner cards for all runners in the organization (including teams) will then be created, the PDFs generated, and downloaded.
#### For Individual Organizations in the Organization Detail View
To generate runner cards for all runners in a single organization (including its teams), click the `Details` button for the desired organization in the organization overview.
Then, in the detail view, simply click the `Generate Runner Cards` button and select the desired language - the runner cards will then be generated and downloaded.
## Editing
To edit a runner card, open the `Runner Cards` page in the runner system.
In the runner card overview, click the `Details` button for the desired runner card.
Now you can assign the card to a different runner or deactivate it.
Once you have made all the changes, click the `Save Changes` button to apply the changes.
## Deleting
To delete a runner card, open the `Runner Cards` page in the runner system.
In the runner card overview, click the `Delete` button for the desired runner card.
You will then be asked if you really want to delete the card or cancel.

View File

@ -1,39 +0,0 @@
---
title: Contacts
weight: 5
lang: en
---
Contacts are used for Customer Relation Management (CRM) and can be assigned to any number of [Teams](../teams) and [Orgs](../teams).
Note: A team/organization can only have one contact at a time.
Currently, contacts are only used for documentation, but in the future, it will be possible to send certificates for all their teams/orgs to a contact via email with the push of a button.
## Creating
To create a new contact, open the `Contact` page in the runner system.
You can create a new contact using the `Create Contact` button.
You can give the contact a name, phone number, and email address and assign them to any number of groups (teams/organizations).
You can also choose whether to set an address for the contact (if not, simply uncheck the address box).
## Editing
To edit a contact, click the `Details` button for the desired contact in the contact overview.
In the overview for this contact, you can now adjust the name, phone number, email address, and address.
When you are finished, simply click `Save Changes`.
## Deleting
You can delete a contact either from the contact overview or the contact detail view.
Only the contact will be deleted, no associated orgs or teams.
### In the Contact Overview
Click the `Delete` button for the desired contact.
You will then be asked if you really want to delete the contact or cancel.
### In the Contact Detail View
Click the `Details` button for the desired contact.
At the top of the page, there is now a `Delete Contact` button.
You will then be asked if you really want to delete the contact or cancel.

View File

@ -1,48 +0,0 @@
---
title: Sponsorship Declarations
weight: 10
lang: en
---
The system can generate sponsorship declarations for any [runners](../runners), [teams](../teams), or entire [organizations](../orgs).
The sponsorship declarations are currently available in German and English.
The texts on the sponsorship declarations and the number of declarations per runner can be adjusted by your admins.
## For Runners
### For Runners in the Runner Overview
In the runner overview, you can select any number of runners (or all via the `Select All` button).
Then, the `Generate Sponsorship Contract` button appears above the runner list.
As soon as you click it, the sponsorship declarations are generated and downloaded.
### For Individual Runners in the Runner Detail View
To generate a sponsorship declaration for an individual runner, you can click the `Details` button for the desired runner in the runner overview.
Then, in the detail view, simply click the `Generate Sponsorship Contract` button - the sponsorship declaration will be generated and downloaded.
## For Teams
### For Teams in the Team Overview
In the team overview, you can select any number of teams (or all via the `Select All` button).
Then, the `Generate Sponsorship Contracts` button appears above the team list.
As soon as you click it, the sponsorship declarations for all runners in the teams are generated and downloaded.
### For Individual Teams in the Team Detail View
To generate sponsorship declarations for all runners in an individual team, you can click the `Details` button for the desired team in the team overview.
Then, in the detail view, simply click the `Generate Sponsorship Contracts` button - the sponsorship declarations will be generated and downloaded.
## For Organizations
### For Organizations in the Organization Overview
In the organization overview, you can select any number of organizations (or all via the `Select All` button).
Then, the `Generate Sponsorship Contracts` button appears above the organization list.
As soon as you click it, the sponsorship declarations for all runners in the organizations (including their teams) are generated and downloaded.
### For Individual Organizations in the Organization Detail View
To generate sponsorship declarations for all runners in an individual organization (including their teams), you can click the `Details` button for the desired organization in the organization overview.
Then, in the detail view, simply click the `Generate Sponsorship Contracts` button - the sponsorship declarations will be generated and downloaded.

View File

@ -1,71 +0,0 @@
---
title: Donations
weight: 9
lang: en
---
Sponsorships can either be fixed amount donations or kilometer donations.
Kilometer donations connect [runners](../runners) with [sponsors](../donors) who donate a fixed amount per kilometer run by the runner.
## Creating
To create a new sponsorship, open the `Sponsorships` page in the runner system.
You can create a new sponsorship by clicking the `Create Sponsorship` button.
First, you can choose whether to create a (kilometer) sponsorship or a fixed amount donation.
Then you need to select the sponsor.
### Sponsorship (Kilometer Donation)
For kilometer donations, you need to select a runner and specify how many euros the sponsor will donate per kilometer run by the runner.
Once you have entered all the details, you can create the sponsorship by clicking the `Create` button.
### Fixed Amount Donation
For fixed amount donations, you need to specify the donation amount in euros.
Once you have entered all the details, you can create the fixed amount donation by clicking the `Create` button.
## Editing
To edit a sponsorship, you can click the `Details` button for the desired sponsorship in the sponsorship overview.
Here you can see the total amount (calculated for kilometer donations) of the sponsorship and change the sponsor.
### Sponsorship (Kilometer Donation)
For kilometer donations, you can also adjust the runner and the donation amount per kilometer run.
Once you have made all the adjustments, you can save the changes by clicking the `Save Changes` button.
### Fixed Amount Donation
For fixed amount donations, you can also adjust the donation amount.
Once you have made all the adjustments, you can save the changes by clicking the `Save Changes` button.
## Entering Payment
### In the Sponsorship Overview
To enter a payment, you can click the `Enter Payment` button for the desired sponsorship in the sponsorship overview.
A dialog will open where you can enter the paid amount for the sponsorship.
If the sponsorship has been paid to the exact cent, you can save yourself the typing by clicking the `MAX` button.
Once you have made your changes, you can save them by clicking the `Save Changes` button.
### In the Sponsorship Details
See Editing Sponsorship
## Deleting
You can delete a sponsorship either from the sponsorship overview or the sponsorship detail view.
### In the Sponsorship Overview
Click the `Delete` button for the desired sponsorship.
You will then be asked if you really want to delete the sponsorship or cancel.
### In the Sponsorship Detail View
Click the `Details` button for the desired sponsorship.
At the top of the page, there is now a `Delete Sponsorship` button.
You will then be asked if you really want to delete the sponsorship or cancel.

View File

@ -1,55 +0,0 @@
---
title: Donors
weight: 8
lang: en
---
Sponsors are the donors who support the Run for Kaya! with a fixed amount or a per-kilometer donation.
Together with the [sponsorships](../donations), they form the cornerstone of donation management and accounting.
## Sponsor Overview
> A brief overview of the functions of the sponsor overview.
The sponsor overview lists all sponsors registered in the system.
From here, you can add, edit, or delete individual sponsors.
In addition to the name and contact information, all sponsorships (fixed amount donations, per-kilometer donations) of the sponsor are also listed (and linked) here.
The total donation amount of all sponsorships of the sponsor is also listed here.
There is also a search function that allows you to search for sponsor names and IDs.
## Creating
To create a new sponsor, open the `Sponsors` page in the runner system.
You can add a new sponsor via the `Add Sponsor` button.
You need to provide a first name and last name.
Additionally, you can provide a middle name (second first name), a phone number, and an email address.
If the sponsor needs a donation receipt, you can check the `Donation receipt needed` box and enter the sponsor's address.
Once you have entered everything, you can create the sponsor with the `Create` button.
## Editing
To edit a sponsor, you can click the `Details` button for the desired sponsor in the sponsor overview.
In the overview for the sponsor, you can now edit the first name, middle name, last name, as well as the phone number, email address, and address (donation receipt needed).
When you are finished, simply click `Save changes`.
## Deleting
You can delete a sponsor either from the sponsor overview or the sponsor detail view.
### In the Sponsor Overview
Click the `Delete` button for the desired sponsor.
You will then be asked if you really want to delete the sponsor or cancel.
### In the Sponsor Detail View
Click the `Details` button for the desired sponsor.
At the top of the page, there is now a `Delete Sponsor` button.
You will then be asked if you really want to delete the sponsor or cancel.
### Sponsor with Sponsorships
If the sponsor still has sponsorships, a warning will appear after confirming the deletion.
Here you must confirm the deletion including all sponsorships again, or you can cancel.

View File

@ -1,216 +0,0 @@
---
title: Läuferimport
weight: 7
lang: de
---
Um das Eintragen von Läufer:innen ins System zu erleichtern können Läufer aus Excel-Tabellen(CSV, XLSX) importiert werden.
Diese Funktion ist vor allem für Schulen und Kindergärten gedacht, kann aber natürlich für alle Arten von Teams und Organisationen verwendet werden.
Im Folgenden erklären wir dir Schritt für Schritt, wie du Läufer ins System importieren kannst.
## Aufbau der Importdateien
> Die Datei muss im Format XLSX(Excel) oder CSV vorliegen
Alle Läufer müssen auf einem "Tabellenblatt"(Excel) stehen, alle weiteren Tabellenblätter werden ignoriert.
Die Tabelle muss folgendem Schema folgen:
| Vorname | Mittelname | Nachname | Team/Klasse |
| -------- | ---------- | --------- | ----------- |
| Vorname1 | Optional | Nachname1 | Optional |
Achtung: Die Team Spalte kann Team oder Klasse heißen!
### Beispiel: CSV
#### Mit Mittelname
> [Beispieldatei herunterladen](/files/class_with_middlename.csv)
```csv
Vorname; Mittelname; Nachname; Team;
Peter; ; Tester; 1A
Manuel; Steffen; Regenwald; 1A
Toller; ; Typ; 2A
```
#### Ohne Mittelname
> [Beispieldatei herunterladen](/files/class_without_middlename.csv)
```csv
Vorname; Nachname; Team;
Peter; Tester; 1A
Manuel; Regenwald; 1A
Toller; Typ; 2A
```
### Beispiel: XLSX (Excel)
#### Mit Mittelname
> [Beispieldatei herunterladen](/files/class_with_middlename.xlsx)
![Excel Screenshot with Middlename](/images/runner_import_excel_with_middlename.png)
#### Ohne Mittelname
> [Beispieldatei herunterladen](/files/class_without_middlename.xlsx)
![Excel Screenshot with Middlename](/images/runner_import_excel_no_middlename.png)
## Import in eine Organisation
Wähle diese Variante, wenn du in einer Organisation automatisch Teams anlegen und die Läufer in diese Importieren willst.
Wähle diese Variante, wenn du Läufer direkt in eine Organisation importieren willst.
Wenn in der Datei bei einer Läufer:in kein Team angegeben ist wird sie direkt in die Organisation importiert.
Ist ein Team angegeben wird das Team in der Organisation gesucht und neu Angelegt, wenn es nicht gefunden wurde - danach wird die Läufer:in in das Team importiert.
### Aus der Organisationsübersicht
{{% steps %}}
### Übersicht öffnen
Öffne im Läufersystem die Seite `Orgs`
### Datei auswählen
Klicke oben auf `Läufer importieren`
Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst
### Läufer überprüfen
Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
### Organisation auswählen
Wähle oben die Organisation aus, in die die Läufer:innen importiert werden sollen.
### Import starten
Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen.
Die Läufer werden nun in die Organisation importiert.
{{% /steps %}}
### Aus der Organisationsdetailansicht
{{% steps %}}
### Übersicht öffnen
Öffne im Läufersystem die Seite `Orgs`.
Klicke bei der gewünschten Organisation auf den `Details` Button.
### Datei auswählen
Klicke oben auf `Läufer importieren`.
Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst.
### Läufer überprüfen
Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
### Organisation auswählen
Wähle oben die Organisation aus, in die die Läufer:innen importiert werden sollen.
### Import starten
Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen.
Die Läufer werden nun in die Organisation importiert.
{{% /steps %}}
### Aus der Läuferübersicht
{{% steps %}}
### Übersicht öffnen
Öffne im Läufersystem die Seite `Läufer`
### Datei auswählen
Klicke oben auf `Läufer importieren`.
Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst.
### Läufer überprüfen
Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
### Organisation auswählen
Wähle oben die Organisation (Hat kein `>` im Namen) aus, in die die Läufer:innen importiert werden sollen.
### Import starten
Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen.
Die Läufer werden nun in die Organisation importiert.
{{% /steps %}}
## Import in ein Team
> Wähle diese Variante, wenn du Läufer direkt in ein Team importieren willst.
Wenn in der Datei bei einer Läufer:in ein Team angegeben ist wird dieses ignoriert und mit dem gewählten Team überschrieben..
### Aus der Teamdetailansicht
{{% steps %}}
### Übersicht öffnen
Öffne im Läufersystem die Seite `Teams`.
Klicke bei de, gewünschten Team auf den `Details` Button.
### Datei auswählen
Klicke oben auf `Läufer importieren`.
Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst.
### Läufer überprüfen
Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
### Team auswählen
Wähle oben das Team aus, in die die Läufer:innen importiert werden sollen.
### Import starten
Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen.
Die Läufer werden nun in das Team importiert
{{% /steps %}}
### Aus der Läuferübersicht
{{% steps %}}
### Übersicht öffnen
Öffne im Läufersystem die Seite `Läufer`.
### Datei auswählen
Klicke oben auf `Läufer importieren`.
Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst.
### Läufer überprüfen
Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
### Team auswählen
Wähle oben das Team (Hat ein `>` im Namen) aus, in die die Läufer:innen importiert werden sollen.
### Import starten
Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen.
Die Läufer werden nun in das Team importiert
{{% /steps %}}

View File

@ -1,216 +0,0 @@
---
title: Runner Import
weight: 7
lang: en
---
To facilitate the entry of runners into the system, runners can be imported from Excel spreadsheets (CSV, XLSX).
This function is mainly intended for schools and kindergartens, but can of course be used for all types of teams and organizations.
Below we explain step by step how to import runners into the system.
## Structure of the Import Files
> The file must be in XLSX (Excel) or CSV format
All runners must be on one "worksheet" (Excel), all other worksheets will be ignored.
The table must follow this schema:
| Vorname | Mittelname | Nachname | Team/Klasse |
| ---------- | ---------- | --------- | ----------- |
| FirstName1 | Optional | LastName1 | Optional |
Note: The Team column can be named Team or Class!
### Example: CSV
#### With Middle Name
> [Download sample file](/files/class_with_middlename.csv)
```csv
First Name; Middle Name; Last Name; Team;
Peter; ; Tester; 1A
Manuel; Steffen; Rainforest; 1A
Great; ; Guy; 2A
```
#### Without Middle Name
> [Download sample file](/files/class_without_middlename.csv)
```csv
First Name; Last Name; Team;
Peter; Tester; 1A
Manuel; Rainforest; 1A
Great; Guy; 2A
```
### Example: XLSX (Excel)
#### With Middle Name
> [Download sample file](/files/class_with_middlename.xlsx)
![Excel Screenshot with Middlename](/images/runner_import_excel_with_middlename.png)
#### Without Middle Name
> [Download sample file](/files/class_without_middlename.xlsx)
![Excel Screenshot with Middlename](/images/runner_import_excel_no_middlename.png)
## Import into an Organization
Choose this option if you want to automatically create teams in an organization and import the runners into them.
Choose this option if you want to import runners directly into an organization.
If no team is specified for a runner in the file, they will be imported directly into the organization.
If a team is specified, the team will be searched for in the organization and created if not found - then the runner will be imported into the team.
### From the Organization Overview
{{% steps %}}
### Open Overview
Open the `Orgs` page in the runner system
### Select File
Click on `Import Runners` at the top
Click on `Select File` and choose the file from which you want to import runners
### Verify Runners
A summary of all runners found in the file will be displayed - check all runners for correctness
### Select Organization
Select the organization at the top into which the runners should be imported.
### Start Import
Click on `Import Runners` at the bottom to import the runners or `Cancel` to cancel the import.
The runners will now be imported into the organization.
{{% /steps %}}
### From the Organization Detail View
{{% steps %}}
### Open Overview
Open the `Orgs` page in the runner system.
Click on the `Details` button for the desired organization.
### Select File
Click on `Import Runners` at the top.
Click on `Select File` and choose the file from which you want to import runners.
### Verify Runners
A summary of all runners found in the file will be displayed - check all runners for correctness
### Select Organization
Select the organization at the top into which the runners should be imported.
### Start Import
Click on `Import Runners` at the bottom to import the runners or `Cancel` to cancel the import.
The runners will now be imported into the organization.
{{% /steps %}}
### From the Runner Overview
{{% steps %}}
### Open Overview
Open the `Runners` page in the runner system
### Select File
Click on `Import Runners` at the top.
Click on `Select File` and choose the file from which you want to import runners.
### Verify Runners
A summary of all runners found in the file will be displayed - check all runners for correctness
### Select Organization
Select the organization (does not have a `>` in the name) at the top into which the runners should be imported.
### Start Import
Click on `Import Runners` at the bottom to import the runners or `Cancel` to cancel the import.
The runners will now be imported into the organization.
{{% /steps %}}
## Import into a Team
> Choose this option if you want to import runners directly into a team.
If a team is specified for a runner in the file, it will be ignored and overwritten with the selected team.
### From the Team Detail View
{{% steps %}}
### Open Overview
Open the `Teams` page in the runner system.
Click on the `Details` button for the desired team.
### Select File
Click on `Import Runners` at the top.
Click on `Select File` and choose the file from which you want to import runners.
### Verify Runners
A summary of all runners found in the file will be displayed - check all runners for correctness
### Select Team
Select the team at the top into which the runners should be imported.
### Start Import
Click on `Import Runners` at the bottom to import the runners or `Cancel` to cancel the import.
The runners will now be imported into the team
{{% /steps %}}
### From the Runner Overview
{{% steps %}}
### Open Overview
Open the `Runners` page in the runner system.
### Select File
Click on `Import Runners` at the top.
Click on `Select File` and choose the file from which you want to import runners.
### Verify Runners
A summary of all runners found in the file will be displayed - check all runners for correctness
### Select Team
Select the team (has a `>` in the name) at the top into which the runners should be imported.
### Start Import
Click on `Import Runners` at the bottom to import the runners or `Cancel` to cancel the import.
The runners will now be imported into the team
{{% /steps %}}

View File

@ -1,53 +0,0 @@
---
title: Organizations
weight: 3
lang: en
---
{{< callout type="warning" >}}
You are not allowed to delete the organization "Citizen" (ID 1 by default).
It is required by the [selfservice](../../selfservice)
{{< /callout >}}
{{< callout type="info" >}}
If you are interested in the self-service for organizations, you can find the documentation [here](../../selfservice/orgs).
{{< /callout >}}
Runner organizations are the heart of the group system for runners.
An organization can be a company, school, kindergarten, club, or similar.
Runners can be directly assigned to an organization.
To further sort the runners of an organization (e.g., school), multiple teams (e.g., classes) can be assigned to an organization.
A contact can be assigned to an organization/team, more about this can be found [here](../contacts).
More about teams can be found [here](../teams).
## Creating
To create a new organization, open the `Orgs` page in the runner system.
You can create a new organization by clicking the `Create Organization` button.
You can give the organization a name.
## Editing
To edit an organization, click the `Details` button for the desired organization in the organization overview.
In the overview for this organization, you can now change the name of the organization and the assigned contact.
When you are done, simply click `Save changes`.
## Deleting
You can delete an organization either from the organization overview or the organization detail view.
### In the organization overview
Click the `Delete` button for the desired organization.
You will then be asked if you really want to delete the organization or cancel.
### In the organization detail view
Click the `Details` button for the desired organization.
At the top of the page, there is now a `Delete organization` button.
You will then be asked if you really want to delete the organization or cancel.
### Organization with teams and runners
If the organization still has teams and/or runners, a warning will appear after confirming the deletion.
Here you must confirm the deletion including all runners and teams again, alternatively, you can cancel.

View File

@ -1,68 +0,0 @@
---
title: Runners
weight: 6
lang: en
---
Runners are the heart of the runner system.
They are used to track routes and calculate donations.
Runners can be assigned to a [Team](../teams) or an [Organization](../teams).
## Runner Overview
> A brief overview of the functions of the runner overview.
The runner overview lists all runners registered in the system.
From here you can add, edit, or delete individual runners.
To make it easier to search for individual runners, there is a filter by teams and organizations.
If you add multiple teams/organizations to the filter, all runners registered in any of the teams/organizations will be displayed.
There is also a search function that allows you to search by runner names, IDs, and groups (teams/organizations).
If you enter an ID, only the runner with exactly that ID will be displayed. If you want to see all runners whose IDs start with your input, add a `*` at the end of the ID.
Examples:
* `Peter` -> All runners with Peter in their name
* `Gymnasium` -> All runners in a group named Gymnasium
* `421` -> The runner with ID 421
* `42*` -> All runners whose ID starts with 42
## Actions
### Create
{{< callout type="warning" >}}
To create a runner, you must first create an organization and/or a team.
{{< /callout >}}
To create a new runner, open the `Runners` page in the runner system.
Click the `Add Runner` button to create a new runner.
You must provide a first name, last name, and group (team/organization).
Additionally, you can provide a middle name (second first name), phone number, and email address.
### Edit
To edit a runner, click the `Details` button for the desired runner in the runner overview.
In the runner's overview, you can now edit the first name, middle name, last name, phone number, email address, and group.
When you are finished, simply click `Save Changes`.
### Delete
You can delete a runner either from the runner overview or the runner detail view.
### In the Runner Overview
Click the `Delete` button for the desired runner.
You will then be asked if you really want to delete the runner or cancel.
### In the Runner Detail View
Click the `Details` button for the desired runner.
At the top of the page, there is now a `Delete Runner` button.
You will then be asked if you really want to delete the runner or cancel.
## Import
You can find the import instructions [here](../import).

View File

@ -1,53 +0,0 @@
---
title: Scans
weight: 12
lang: en
---
Scans are the heart of kilometer tracking - they connect [runners](../runners) with the distance covered.
There are two types of scans in the system: "Fixed Distance Scans" and "Track Scans".
Fixed Distance Scans can only be created by users in the runner system and assign a fixed distance to a runner.
This is particularly useful when runners have lost cards halfway or receive a distance bonus for other reasons.
Track Scans, on the other hand, can only be generated by a scanning station scanning the code of a runner's card, thus creating a new scan.
Track Scans are always linked to a runner and a [track](../tracks), from which the distance is derived.
## Creating
> You can only create Fixed Distance Scans in the runner system.
To create a new scan, open the `Scans` page in the runner system.
You can create a new scan using the `Create Scan` button.
You must assign a runner and a distance in meters to the scan.
Once you have provided all the information, you can create the scan using the `Create` button.
## Editing
To edit a scan, you can click the `Details` button for the desired scan in the scan overview.
### Fixed Distance Scans
In the scan detail view of Fixed Distance Scans, you can adjust the validity, runner, and distance.
When you are done, simply click `Save Changes`.
### Track Scans
In the scan detail view of Track Scans, you can only adjust the validity - all other values are fixed in the system.
When you are done, simply click `Save Changes`.
## Deleting
You can delete a scan either from the scan overview or the scan detail view.
We generally recommend deactivating scans rather than deleting them to prevent human errors.
### In the Scan Overview
Click the `Delete` button for the desired scan.
You will then be asked whether you really want to delete the scan or cancel.
### In the Scan Detail View
Click the `Details` button for the desired scanning station.
At the top of the page, there is now a `Delete Scan` button.
You will then be asked whether you really want to delete the scanning station or cancel.

View File

@ -1,64 +0,0 @@
---
title: Scanner Stations
weight: 13
lang: en
---
{{< callout type="info" >}}
The documentation for using the [scanner stations can be found here](../../scanstation)
{{< /callout >}}
Scanner stations create scans for runner cards on [Tracks](../tracks).
In the real world, scanner stations are usually laptops with barcode scanners and special software.
The scanner stations in the runner system are used to register the "real" scanner stations and assign them to a track.
This part of the documentation only deals with the scanner stations in the runner system!
## Creating
{{< callout type="warning" >}}
Before you can create a scanner station, you must first create a [track](../tracks) to which it belongs.
{{< /callout >}}
{{< callout type="info" >}}
When you create a scanner station, you will receive a token (code/key) for it - keep it safe!
{{< /callout >}}
To create a new scanner station, open the `Scanner Stations` page in the runner system.
You can create a new scanner station by clicking the `Create Station` button.
You must assign the station to a track and you can give the station a description and deactivate it.
When you are done, simply click the `Create` button.
After the scanner station has been created in the system, you will be shown its token.
This token is only displayed once and cannot be changed - so keep it safe!
You can click on the token or the copy button to copy the token to your clipboard.
Once you have securely saved the token, you can close the dialog by clicking the `Yes, I have copied the token` button.
## Editing
To edit a scanner station, click the `Details` button for the desired scanner station in the scanner station overview.
In the overview for this scanner station, you can now change the track and description of the scanner station and (de)activate it.
When you are done, simply click `Save changes`.
## Deleting
You can delete a scanner station either from the scanner station overview or from the scanner station detail view.
### In the Scanner Station Overview
Click the `Delete` button for the desired scanner station.
You will then be asked if you really want to delete the scanner station or cancel.
### In the Scanner Station Detail View
Click the `Details` button for the desired scanner station.
At the top of the page, there is now a `Delete Station` button.
You will then be asked if you really want to delete the scanner station or cancel.
### Scanner Station with Scans
{{< callout type="error" >}}
We recommend never deleting stations with scans, but simply deactivating them!
{{< /callout >}}
If the scanner station still has associated scans, a warning will appear again after confirming the deletion.
Here you must confirm the deletion including all scans again, or you can cancel.

View File

@ -1,46 +0,0 @@
---
title: Teams
weight: 4
lang: en
---
Runner teams are the subgroups of the group system for runners.
A team can be a class, department, group, or similar.
Runners can be assigned to a team, which in turn belongs to an organization (more about organizations can be found [here](../orgs)).
An organization/team can be assigned a contact, more about that can be found [here](../contacts)).
## Creating
{{< callout type="warning" >}}
Warning: To create a team, you must first create the parent organization for the team.
{{< /callout >}}
To create a new team, open the `Teams` page in the runner system.
You can create a new team using the `Create Team` button.
You can give the team a name and select which organization the team belongs to.
## Editing
To edit a team, you can click the `Details` button for the desired team in the team overview.
In the overview for this team, you can now change the name, parent organization, and contact of the team.
When you are finished, simply click `Save Changes`.
## Deleting
You can delete a team either from the team overview or the team detail view.
### In the Team Overview
Click the `Delete` button for the desired team.
You will then be asked if you really want to delete the team or cancel.
### In the Team Detail View
Click the `Details` button for the desired team.
At the top of the page, there is now a `Delete Team` button.
You will then be asked if you really want to delete the team or cancel.
### Teams with Runners
If the team still has runners, a warning will appear after confirming the deletion.
Here you must confirm the deletion including all runners again, or you can cancel.

View File

@ -1,26 +0,0 @@
---
title: Tracks
weight: 11
lang: en
---
Tracks are predefined running routes in the system, based on which distances for scans are calculated.
They have a name, a distance (in meters), and a minimum lap time (faster laps are automatically flagged as cheating).
In the past, the "Run for Kaya!" event always had two tracks: "small lap" (400m) and "big lap" (1000m).
## Creating
To create a new track, open the `Tracks` page in the runner system.
You can create a new track by clicking the `Create Track` button.
You need to provide the name of the track and its length in meters - optionally, you can also specify a minimum lap time in seconds.
## Editing
To edit a track, click the `Edit` button for the desired track in the track overview.
You can then edit the values in the track's columns.
When you are done, simply click `Save`.
## Deleting
To delete a track, click the `Delete` button for the desired track in the track overview.
You will then have the option to cancel the deletion process or confirm the deletion by clicking `Confirm`.

View File

@ -1,54 +0,0 @@
---
title: Nutzer:innen
weight: 2
lang: de
---
{{< callout type="info" >}}
Administratoren können Nutzer:innen im System anlegen und verwalten.
Mehr Informationen dazu findest du im [Admin](../../admin) Bereich.
{{< /callout >}}
## Passwort vergessen
{{% steps %}}
### Anmeldeseite
Die Login Seite des Systems aufrufen.
Auf `Passwort vergessen?` klicken.
### E-Mail eingeben
Deine E-Mail Adresse eingeben.
### E-Mail bestätigen
Du bekommst eine Mail.
In dieser klickst du einfach auf den Link.
### Neues Passwort setzen
Das neue Passwort setzen.
Wieder normal anmelden
{{% /steps %}}
## Einstellungen ändern
{{% steps %}}
### Anmelden
Melde dich im Läufersystem an.
### Anpassen
Gehe auf die Seite `Einstellungen`.
Pass deine Nutzereinstellungen an.
### Speichern
Klicke auf `Speichern`
{{% /steps %}}

View File

@ -1,53 +0,0 @@
---
title: Users
weight: 2
lang: en
---
{{< callout type="info" >}}
Administrators can create and manage users in the system.
You can find more information in the [Admin](../../admin) section.
{{< /callout >}}
## Forgot Password
{{% steps %}}
### Login Page
Open the login page of the system.
Click on `Forgot Password?`.
### Enter Email
Enter your email address.
### Confirm Email
You will receive an email, click on the link in the email.
### Set New Password
Set the new password.
Log in normally again.
{{% /steps %}}
## Change Settings
{{% steps %}}
### Log In
Log in to the runner system.
### Adjust
Go to the `Settings` page.
Adjust your user settings.
### Save
Click on `Save`.
{{% /steps %}}

File diff suppressed because one or more lines are too long

View File

@ -1,6 +1,6 @@
version: "3.3"
services:
httpd:
build: .
ports:
- 8080:80
version: "3.3"
services:
httpd:
build: .
ports:
- 12345:80

26
docs/admins/README.md Normal file
View File

@ -0,0 +1,26 @@
# Admins
Dieser Teil der Dokumentation befasst sich mit der Installation, Konfiguration und Bedienung des Läufersystems für normale Admins.
Solltest du an der Bedienung für normale Nutzer interessiert sein schau doch mal in den <router-link to="./users">Nutzerbereich</router-link>.
## Services
> Eine kurze Übersicht über die verschiedenen Services des Systems und ihre Interaktion
* Backend: Beinhaltet die Hauptlogik und verwaltet die Daten (via Datenbankanbindung)
* Mailer: Versendet auf Basis von HTML-Templates automatisiert Mails
* Document-Server: Erstellt PDFs (Urkunden, Läuferkarten, Sponsoringerklärungen) aus HTML-Templates
* Frontend: Verwaltungsoberfläche für die Admins und Benutzer:innen des Läufersystems
* Selfservice: Portal in dem sich Bürger- und Firmenläufer:innen registrieren und ihre Daten einsehen können
* Beamershow: Zeigt aktuelle Statistiken und Toplisten zum Event an
* Scanclient: Software für die Scannerstationen
* Docs: Diese Dokumentation
![Service Diagramms](/images/service_interaction.png)
## FAQ
> Ein paar der meist gestellten Fragen vorab
### Warum sehe ich eine Seite nicht?
Nutzer sehen nur die Seiten im System, für die sie Berechtigungen haben.
Solltest du eine Seite nicht sehen bist du vermutlich nicht voll als Admin berechtigt.

19
docs/admins/quickstart.md Normal file
View File

@ -0,0 +1,19 @@
# Schnellstart
> Du willst das System schnell aufsetzen und testen? Dann bist du hier genau richtig!
> Um das System für produktive Zwecke einzusetzen schau dir bitte die <router-link to="./installation">Installationsanleitung</router-link> an.
## Voraussetzungen
Alle der folgenden Anleitungen gehen davon aus, dass du bereits Docker und Docker-Compose installiert hast.
Die Installationsanleitungen dafür findest du hier:
* [Docker](https://docs.docker.com/get-docker/)
* [Docker-Compose](https://docs.docker.com/compose/install/)
## Das ganze System
> Du willst das ganze System (backend, fronten, document-server) schnell aufsetzen.
1. Klone das lfk/deployment git repo von: https://git.odit.services/lfk/deployment (oder lade es herunter)
2. Navigiere nach `docker-compose/full_stack`: `cd deployment/docker-compose/full_stack`
3. Starte das System mit `docker-compose up`
4. Nachdem alles gestartet ist ist kannst du das Frontend aufrufen: http://localhost:4010 (backend: http://localhost:4010/api/, document-server: http://localhost:4010/documents/)
Bei Bedarf können die Ports und andere Einstellungen im docker-compose.yml angepasst werden.

View File

@ -1,10 +1,4 @@
---
title: Benutzergruppen verwalten
weight: 4
prev: /admin/quickstart
next: /admin/usergroups
lang: de
---
# Benutzergruppen
Als Admin kannst du Benutzergruppen anlegen und Benutzer:innen in diese Einsortieren.
Die Benutzer:innen erben dadurch die Berechtigungen aller Gruppen, in denen sie sind.
@ -12,40 +6,31 @@ Die Benutzer:innen erben dadurch die Berechtigungen aller Gruppen, in denen sie
So kannst du z.B. alle Admins in die `ADMINS` Gruppe packen, anstatt jeder Benutzer:in langwierig alle Berechtigungen von Hand zuzuweisen.
## Anlegen
Um eine neue Benutzergruppe anzulegen öffne im Läufersystem die Seite `Benutzergruppen`.
Über den Button `Neue Gruppe erstellen` kannst du eine neue Benutzergruppe erstellen.
Dabei kannst du der Gruppe einen Namen und (optional) eine Beschreibung geben.
## Bearbeiten
Um eine Benutzergruppe zu bearbeiten kannst du in der Benutzergruppenübersicht den Button `Details` für die gewünschte Gruppe anklicken.
In der Übersicht für diese Benutzergruppe kannst du nun den Namen und die Beschreibung anpassen und Berechtigungen einsehen oder bearbeiten.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
### Berechtigungen
{{< callout type="info" >}}
Für die Berechtigung einer Benutzergruppe gibt es eine extra Seite.
{{< /callout >}}
> Für die Berechtigung einer Benutzergruppe gibt es eine extra Seite.
Um die Berechtigungen einer Gruppe zu bearbeiten kannst du auf der Detailseite der Gruppe auf `Berechtigungen bearbeiten` klicken.
Auf der Berechtigungsseite gibt es zwei Spalten: `Verfügbare`(Berechtigungen, die die Gruppe nicht hat) und `Gewährt`(Berechtigungen, die die Gruppe hat).
Du kannst hier über die Buttons `+` und `-` die Berechtigungen erteilen oder wegnehmen.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
## Löschen
Du kannst eine Benutzergruppe entweder aus der Benutzergruppenübersicht oder der Benutzergruppendetailansicht löschen.
Dabei wird nur die Benutzergruppe samt Berechtigungen gelöscht, nicht ihre Benutzer:innen.
> Du kannst eine Benutzergruppe entweder aus der Benutzergruppenübersicht oder der Benutzergruppendetailansicht löschen.
> Dabei wird nur die Benutzergruppe samt Berechtigungen gelöscht, nicht ihre Benutzer:innen.
### In der Benutzergruppenübersicht
Klick bei der gewünschten Benutzergruppe auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du die Benutzergruppe wirklich löschen oder abbrechen willst.
### In der Benutzergruppendetailansicht
Klick bei der gewünschten Benutzergruppe auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Gruppe löschen`.
Daraufhin wirst du gefragt, ob du die Benutzergruppe wirklich löschen oder abbrechen willst.
Daraufhin wirst du gefragt, ob du die Benutzergruppe wirklich löschen oder abbrechen willst.

View File

@ -1,50 +1,35 @@
---
title: Benutzer:innen verwalten
weight: 3
prev: /admin/quickstart
next: /admin/usergroups
lang: de
---
# Benutzer:innen
Als Admin kannst du Benutzer:innen anlegen.
Benutzer:innen können sich in der Läuferverwaltung und am Backend (API) anmelden und im Rahmen ihrer Berechtigungen damit Arbeiten.
Benutzer:innen kannst du Berechtigungen direkt zuweisen oder sie beliebig vielen Gruppen zuweisen, von denen sie dann Berechtigungen erben.
## Anlegen
Um eine neue Benutzer:in anzulegen öffne im Läufersystem die Seite `Benutzer`.
Über den Button `Benutzer anlegen` kannst du eine neue Benutzer:in erstellen.
Dabei kannst du dem Kontakt eine(n) Namen, Benutzernamen, Passwort und E-Mail Adresse geben.
## Bearbeiten
Um eine Benutzer:in zu bearbeiten kannst du in der Benutzerübersicht den Button `Details` für die gewünschte Benutzer:in anklicken.
In der Übersicht für diesen Kontakt kannst du nun den Namen, Benutzernamen, die E-Mail, Gruppen und Berechtigungen anpassen.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
### Berechtigungen
{{< callout type="info" >}}
Für die Berechtigung einer Benutzer:in gibt es eine extra Seite.
{{< /callout >}}
> Für die Berechtigung einer Benutzer:in gibt es eine extra Seite.
Um die Berechtigungen einer Benutzer:in zu bearbeiten kannst du auf der Detailseite der Benutzer:in auf `Berechtigungen bearbeiten` klicken.
Auf der Berechtigungsseite gibt es drei Spalten: `Verfügbare`(Berechtigungen, die die Benutzer:in nicht direkt hat), `Direkt erteilte`(Berechtigungen, die die Benutzer:in direkt hat) und `geerbte`(Berechtigungen, die die Benutzer:in von ihren Benutzergruppen geerbt hat).
Du kannst hier über die Buttons `+` und `-` die direkten Berechtigungen erteilen oder wegnehmen.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
## Löschen
Du kannst eine Benutzer:in entweder aus der Benutzerübersicht oder der Benutzerdetailansicht löschen.
Dabei wird nur die Benutzer:in samt Berechtigungen gelöscht.
> Du kannst eine Benutzer:in entweder aus der Benutzerübersicht oder der Benutzerdetailansicht löschen.
> Dabei wird nur die Benutzer:in samt Berechtigungen gelöscht.
### In der Benutzerübersicht
Klick bei der gewünschten Benutzer:in auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du die Benutzer:in wirklich löschen oder abbrechen willst.
### In der Benutzerdetailansicht
Klick bei der gewünschten Benutzer:in auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Benutzer:in löschen`.
Daraufhin wirst du gefragt, ob du die Benutzer:in wirklich löschen oder abbrechen willst.

View File

@ -1,28 +1,17 @@
---
linkTitle: "Beamershow"
title: Beamershow
weight: 1
prev: /
next: /beamershow/config
cascade:
type: docs
lang: de
---
# Beamershow
Die Beamershow zeigt live Statistiken zum aktuellen Event an.
Wie der Name schon andeutet ist sie dafür gedacht mit einem Beamer vor Ort auf eine (Lein)Wand projeziert zu werden.
Sie sollte im Normalfall immer unter `<läufersystem>/beamershow` erreichbar sein, mehr dazu unter [Konfiguration](./config)
Sie sollte im Normalfall immer unter `<läufersystem>/beamershow` erreichbar sein, mehr dazu unter <router-link to="./config">Konfiguration</router-link>
## Seiten/Informationen
> Die Beamershow umfasst folgende Seiten/Abschnitte
* Allgemeines
* Anzahl an Läufer:innen
* Bisher insgesamt erlaufene Kilometer
* Aktuelle Spendengesamtsumme
* Anzahl an Läufer:innen
* Bisher insgesamt erlaufene Kilometer
* Aktuelle Spendengesamtsumme
* Top 10 Läufer nach Distanz
* Top 10 Läufer nach schnellster Rundenzeit
* Top 10 Organisationen nach Distanz
* Top 10 Teams nach Distanz
* Top 10 Teams nach Distanz

View File

@ -1,19 +1,12 @@
---
title: Beamershow Konfig
weight: 1
prev: /beamershow
lang: de
---
# Konfiguration
> Wie man die Beamershow konfiguriert
## Start
Wenn du die Beamershow öffnest wirst du als erstes nach dem API Endpunkt gefragt - diese entspricht der URL des Läufersystems (z.B.: `https://lauf-fuer-kaya.de`).
Wenn du die Beamershow öffnest wirst du als erstes nach dem API Endpunkt gefragt - diese entspricht der URL des Läufersystems (z.B.: `https://dev.lauf-fuer-kaya.de`).<br/>
Als nächstes musst du noch einen Client Token gefragt, den du von deinem Admin bekommst.
Sobald du den Token eingegeben hast kannst du auf den Button "Konfigurieren" klicken und die Beamershow wird gestartet.
## Konfiguration ändern
Tippe `cnf` auf einer beliebigen Seite der Beamershow.
Du wirst sofort von der Beamershow abbemeldet und kannst so einen neuen API Endpunkt und Client Token angeben.
Tippe `cnf` auf einer beliebigen Seite der Beamershow.<br/>
Du wirst sofort von der Beamershow abbemeldet und kannst so einen neuen API Endpunkt und Client Token angeben.

View File

@ -0,0 +1,13 @@
# Über die Scannerstationen
Die Scannerstation ist die Kombination aus Hardware und Software, die dazu genutzt wird Läuferkarten zu scannen und damit gelaufene Distanzen im System zu erfassen.
Wir schreiben grundsätzlich keine Hardware oder Software vor - stellen aber selbst eine Software bereit und empfehlen Hardware.
Die API für Scannerstationen im Läufersystem ist grundsätzlich so gestaltet, dass Scans live erfasst und validiert (Läufer, Track, Rundenzeit) werden.
## Bedienung
> Die Bedienung nach der <router-link to="./config.html">Konfiguration</router-link>
Die Bedienung der Software als Helfer an der Scannerstation ist sehr einfach:
1. Scannen
2. Auf dem Bildschirm sehen, ob der Scan valide war

View File

@ -1,49 +1,17 @@
---
title: Scannerstation Konfig
weight: 3
prev: /scanstation/install
lang: de
---
# Konfiguration
> Wie man die Scanclient Software konfiguriert
## Start
{{% steps %}}
### API Endpunkt
Wenn du die Scanclient Software öffnest wirst du als erstes nach einem API Endpunkt gefragt.
Hier musst du die URL deines LfK-Backends eintragen (z.B.: `https://lauf-fuer-kaya.de`).
Hier musst du die URL deines LfK-Backends eintragen (z.B.: `https://dev.lauf-fuer-kaya.de`).
### Client-Token
Als nächstes musst du noch einen Client Token gefragt -> <router-link to="../users/scanstations.html">So kommst du an einen Client token</router-link><br/>
Solltest du dich beim API-Endpunkt vertippt haben kannst du hier auch `rst` eingeben, um diesen nochmal zu setzen.
Als nächstes musst du noch einen Client Token gefragt.
Die Anlage ist unter [Token anlegen](../../user/scanstations) beschrieben.
### Bestätigen
Solltest du dich beim API-Endpunkt vertippt haben kannst du anstatt eines Client Token auch `rst` eingeben, um diesen nochmal zu setzen.
Sobald du den Token eingegeben hast kannst du auf den Button "Konfigurieren" klicken und der Scanclient wird gestartet.
{{% /steps %}}
## Konfiguration ändern
{{% steps %}}
### Config-Modus starten
Tippe `cnf` in das Läuferkarten-Feld und bestätige mit Enter.
### Config-Modus
Jetzt öffnet sich die Konfigurationsübersicht, in der alle Details zur Konfigurierten Scannerstation aufgelistet sind.
### Einstellungen speichern
Wenn du fertig bist kannst du über den Button "Back to Scanner" wieder in den Scan-Modus wechseln.
### Abmelden
Wenn du die Software vom Läufersystem abmelden oder den Token ändern willst klicke auf "Log out from this Client".
{{% /steps %}}
Wenn du fertig bist kannst du über den Button "Back to Scanner" wieder in den Scan-Modus wechseln.

View File

@ -1,55 +1,31 @@
---
title: Scanner Configuration
weight: 32
prev: /scanstation/config
lang: en
---
{{< callout type="warning" >}}
This configuration has only been tested with GD4130-BK/WH USB scanners
{{< /callout >}}
{{< callout type="info" >}}
Download as PDF: [Scanner Configuration.pdf](/files/scannerconfig.pdf)
{{< /callout >}}
{{% steps %}}
### Restore Factory Settings
# Scannerkonfiguration
> Achtung: Diese Konfiguratiuon wurde nur mit GD4130-BK/WH USB Scannern getestet
> Download als PDF: [Scannerkonfiguration.pdf](/files/scannerconfig.pdf)
## 1. Werkseinstellungen wiederherstellen
![Factory reset](/images/barcode_config/00_factory_reset.png)
### 2. Activate Programming Mode
## 2. Programming Mode Aktivieren
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
### 3. Scan only EAN-13 (optional)
## 3. Nur EAN-13 scannen (optional)
![Check EAN Checkdigit](/images/barcode_config/02_disable_all.png)
![Disable EAN Checkdigit](/images/barcode_config/03_enable_ean.png)
### 4. Verify EAN13 Check Digit but Do Not Transmit
## 4. EAN13 Check-Zahl überprüfen, aber nicht übertragen
![Disable EAN Checkdigit](/images/barcode_config/05_disable_ean_digit.png)
### 5. Set Scanner to Always On (optional)
## 5. Scanner auf always on stellen (optional)
![Scan mode: Always on](/images/barcode_config/06_always_on.png)
### 6. Exit Programming Mode
## 6. Programming Mode Verlassen
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
### 7. Turn Off Beep (optional)
## 7. Beep ausschalten (optional)
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
![Scan mode: Always on](/images/barcode_config/07_beep_off.png)
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
### 8. Set Keyboard to German (optional)
## 8. Tastatur auf Deutsch stellen (optional)
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
![Country Mode: Germany](/images/barcode_config/08_countrycode_germany.png)
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
{{% /steps %}}

View File

@ -1,20 +1,12 @@
---
title: Hardwareempfehlungen
weight: 4
prev: /scanstation/config
lang: de
---
Known-good Hardware, die wir für die Scannerstationen empfehlen können.
# Hardwareempfehlungen
> Known-good Hardware, die wir für die Scannerstationen empfehlen können
## Computer
* Raspberry Pi 3 oder neuer
* Prozessor: Minimum: Intel Core 2 Duo
* Arbeitsspeicher: Minimum 4GB
## Barcodescanner
* Datalogic Gryphon GD4130-BK/WH USB Scanner (1D)
* Datalogic Gryphon GD4200 USB Scanner (1D)
* Datalogic Gryphon GD4400 USB Scanner (2D)
* Datalogic Gryphon GD4400 USB Scanner (2D)

View File

@ -0,0 +1,35 @@
# Installation
Es gibt aktuell drei Varianten, um die Scanclient Software zu installieren/nutzen
* Als Livesystem starten (empfohlen)
* Für Windows herunterladen
* Für Linux herunterladen
## Livesystem
> Empfohlene Variante
1. Lade dir die aktuellste Version des Betriebssystems herunter: [Versionsübersicht](https://git.odit.services/lfk/scanclient-live/releases)
* Den neusten (obersten) Release auswählen.
* Unter "Downloads" die Datei lfk-scanclient-live_X.Y.Z_x64.zip anklicken
2. Einen USB-Stick einstecken und als FAT32 formatieren (Achtung: Hierbei gehen alle Daten verloren, die auf dem Stick sind)
3. Die ZIP-Datei auf den Stick kopieren
4. Die ZIP Datei auf dem Stick entpacken -> Du solltest einen neuen Order `slax` erhalten
5. Den Stick bootfähig machen
* Windows: Die Datei `USBSTICK\slax\boot\bootinst.bat` als Administrator ausführen
* Linux/Mac: Die Datei `USBSTICK/slax/boot/bootinst.sh` mit Root-Rechten (sudo) ausführen
6. Den Stick in den Rechner deiner Wahl einstecken und von ihm Starten
* Bei den meisten Rechner: Beim Hochfahren F12 drücken und dann den USB-Stick auswähren
## Windows
1. Programm aus dem Git Repo herunterladen: [Versionsübersicht](https://git.odit.services/lfk/scanclient-electron/releases)
* Den neusten (obersten) Release auswählen.
* Unter "Downloads" die Datei @lfk-scanclient-electron-win32-x64.zip anklicken
2. Die ZIP-Datei entpacken
3. Die Datei `@lfk-scanclient-electron.exe` öffnen
## Linux
1. Programm aus dem Git Repo herunterladen: [Versionsübersicht](https://git.odit.services/lfk/scanclient-electron/releases)
* Den neusten (obersten) Release auswählen.
* Unter "Downloads" die Datei @lfk-scanclient-electron-linux-x64.zip anklicken
2. Die ZIP-Datei entpacken
3. Die Datei `@lfk-scanclient-electron` öffnen

View File

@ -1,18 +1,7 @@
---
linkTitle: "Selfservice"
title: Einleitung
weight: 1
prev: /
next: /selfservice/orgs
cascade:
type: docs
lang: de
---
# Über den Selfservice
Der Selfservice bietet Läufer:innen sich selbst für den Lauf zu registrieren und ihre eigenen Daten einzusehen.
Genauer gibt es folgende Funktionen:
* Registrierung für Bürgerläufer
* Registrierung für Firmenläufer
* Einsehen der eigenen Daten
@ -21,4 +10,4 @@ Genauer gibt es folgende Funktionen:
* Herunterladen der eigenen Läuferurkunde
* Restloses löschen der eigenen Daten aus dem System
Achtung: Damit der Selfservice für Bürgerläufer funktioniert, muss die automatisch generierte Bürgerlauf-Organisation existieren!
Achtung: Damit der Selfservice für Bürgerläufer funktioniert, muss die automatisch generierte Bürgerlauf-Organisation existieren!

View File

@ -0,0 +1,12 @@
# Selfservice für Organisationen
Läufer:innen von Firmen und andere Institutionen können sich über den Selfservice für den Lauf registrieren.
So werden sie automatisch im System angelegt und bekommen per Mail einen Link zugesendet, mit dem sie ihre persönlichen Daten und Rundenzeiten ansehen können.
## Selfservice für eine Organisations freischalten
> Achtung: Nur Teammitglider können Organisationen für die Registrierung über den Selfservice freischalten.
> Solltest du zu einer Organisation gehören, die sich freischalten lassen will wende dich bitte an das Laufteam.
1. Rufe im Läufersystem die Seite `Organisationen auf`
2. Klicke für die gewünschte Organisation auf den Button `Details`
3. Setze einen Haken bei `Selfservice Registrierung`, falls dieser noch nicht gesetzt ist und klicke auf `Änderungen speichern`
4. Kopiere den Registrierungslink für die Organisation

View File

@ -1,18 +1,11 @@
---
linkTitle: "Nutzerdokumentation"
title: Einleitung
cascade:
type: docs
lang: de
---
# Einleitung
Dieser Teil der Dokumentation befasst sich mit der Bedienung des Läufersystems für normale Nutzer:innen.
Solltest du an der Installation oder Konfiguration interessiert sein schau doch mal in den [Admin](../admin) Bereich.
Solltest du an der Installation oder Konfiguration interessiert sein schau doch mal in den <router-link to="../admins">Admin</router-link> Bereich.
## FAQ
> Ein paar der meist gestellten Fragen vorab
### Warum sehe ich eine Seite nicht?
Nutzer sehen nur die Seiten im System, für die sie Berechtigungen haben.
Solltest du eine Seite nicht sehen, die du brauchst melde dich bitte bei deinem Admin.
Solltest du eine Seite nicht sehen, die du brauchst melde dich bitte bei deinem Admin.

22
docs/users/accounts.md Normal file
View File

@ -0,0 +1,22 @@
# Nutzerkonten
## Registrieren
> Aktuell können nur Admins neue Benutzer:innen hinzufügen - bitte kontaktiere deinen Admin.
## Passwort vergessen
> Kein Problem!
1. Die Login Seite des Systems aufrufen
2. Auf `Passwort vergessen?` klicken
3. Deine E-Mail Adresse eingeben
4. Du bekommst eine Mail, du sie hast auf den Link in der Mail klicken
5. Das neue Passwort setzen
6. Wieder normal anmelden
## Einstellungen ändern
> Du möchtest deinen Namen, E-Mail oder Passwort ändern
1. Melde dich im Läufersystem an
2. Gehe auf die Seite `Einstellungen`
3. Pass deine Nutzereinstellungen an
4. Klicke auf `Speichern`

View File

@ -1,26 +1,18 @@
---
title: Läuferkarten
weight: 9
lang: de
---
# Läuferkarten
Läuferkarten dienen dazu [Trackscans](../scans) für [Läufer:innen](../runners) durch [Scannerstationen](../scanstations) zu erzeugen
Läuferkarten dienen dazu <router-link to="./scans">Trackscans</router-link> für <router-link to="./runners">Läufer:innen</router-link> durch <router-link to="./scanstations">Scannerstationen</router-link> zu erzeugen
Läuferkarten können entweder fest zu einer Läufer:in gehören, oder als Blankokarten genutzt werden, die frei beliebigen Läufer:innen zugewiesen werden können.
## Anlegen
Du kannst Läuferkarten entweder manuell anlegen oder automatisch von System generieren lassen.
Auch Blankokarten kannst du beliebig viele vom System generieren lassen.
### Manuel anlegen
Um eine neue Läuferkarte anzulegen öffne im Läufersystem die Seite `Läuferkarten`.
Über den Button `Karte erstellen` kannst du eine neue Läuferkarte erstellen.
Hier kannst du eine Läuferin auswählen (musst es aber nicht).
Sobald du alles angegeben hast kannst du mit dem Button `Erstellen` die Läuferkarte anlegen.
### Blankokarten generieren
Um neue Blankokarten anzulegen öffne im Läufersystem die Seite `Läuferkarten`.
Über den Button `Blankokarten erstellen` kannst du neue Blankokarten erstellen.
Hier kannst du auswählen, wie viele Karten generiert werden sollen.
@ -36,40 +28,34 @@ Daraufhin werden die Läuferkarten angelegt, die PDFs generiert und heruntergela
### Für Teams
#### Für Teams in der Teamübersicht
In der Teamübersicht kannst du beliebig viele Teams auswählen (oder alle über den Button `Alle Auswählen`).
Daraufhin erscheint über der Teamliste der Button `Läuferkarten generieren`.
Sobald du ihn anklickst kannst du die Sprache für die Läuferkarten PDFs auswählen.
Daraufhin werden die Läuferkarten für alle Läufer:innen der Teams angelegt, die PDFs generiert und heruntergeladen.
#### Für einzelne Teams in der Teamdetailansicht
Um Läuferkarten für alle Läufer:innen eines einzelne Teams zu generieren kannst du in der Teamübersicht den Button `Details` für das gewünschte Team anklicken.
Dann kannst du auf der Detailansicht einfach den Button `Läuferkarten generieren` anklicken und die gewünschte Sprache auswählen - daraufhin werden die Läuferkarten generiert und heruntergeladen.
### Für Organisationen
#### Für Organisationen in der Organisationsübersicht
In der Organisationsübersicht kannst du beliebig viele Organisationen auswählen (oder alle über den Button `Alle Auswählen`).
Daraufhin erscheint über der Organisationsliste der Button `Läuferkarten generieren`.
Sobald du ihn anklickst kannst du die Sprache für die Läuferkarten PDFs auswählen.
Daraufhin werden die Läuferkarten für alle Läufer:innen der Organisation (inkl. Teams) angelegt, die PDFs generiert und heruntergeladen.
#### Für einzelne Organisationen in der Teamdetailansicht
Um Läuferkarten für alle Läufer:innen einer einzelnen Organisation (inklusive ihrer Teams) zu generieren kannst du in der Organisationsübersicht den Button `Details` für die gewünschte Organisation anklicken.
Dann kannst du auf der Detailansicht einfach den Button `Läuferkarten generieren` anklicken und die gewünschte Sprache auswählen - daraufhin werden die Läuferkarten generiert und heruntergeladen.
## Bearbeiten
Um eine Läuferkarte zu bearbeiten öffne im Läufersystem die Seite `Läuferkarten`.
In der Läuferkartenübersicht kannst du den Button `Details` für die gewünschte Läuferkarte anklicken.
Nun kannst du die Karte einer anderen Läufer:in zuordnen oder sie deaktivieren.
Sobald du alles angepasst hast kannst du mit dem Button `Änderungen speichern` die Änderungen übernehmen.
## Löschen
Um eine Läuferkarte zu bearbeiten öffne im Läufersystem die Seite `Läuferkarten`.
In der Läuferkartenübersicht kannst du den Button `Löschen` für die gewünschte Läuferkarte anklicken.
Daraufhin wirst du gefragt, ob du die Karte wirklich löschen oder abbrechen willst.
Daraufhin wirst du gefragt, ob du die Karte wirklich löschen oder abbrechen willst.

View File

@ -1,39 +1,30 @@
---
title: Kontakte
weight: 5
lang: de
---
# Kontakte
Kontakte dienen dem Customer Relation Management (CRM) und können beliebig vielen [Teams](../teams) und [Orgs](../teams) zugeordnet werden.
Kontakte dienen dem Customer Relation Management (CRM) und können beliebig vielen <router-link to="./teams">Teams</router-link> und <router-link to="./organizations">Organisationen</router-link> zugeordnet werden.
Achtung: Ein(e) Team/Organisation kann immer nur einen Kontakt haben.
Aktuell dienen die Kontakte nur der Dokumentation, in Zukunft solle es aber auch möglich sein einem Kontakt per Knopfdruck die Urkunden für all seine Teams/Orgs per Mail zu schicken.
## Anlegen
Um einen neuen Kontakt anzulegen öffne im Läufersystem die Seite `Kontakt`.
Über den Button `Kontakt erstellen` kannst du einen neuen Kontakt erstellen.
Dabei kannst du dem Kontakt eine(n) Namen, Telefonnummer und E-Mail Adresse geben und sie beliebig vielen Gruppen (Teams/Organisationen) zuweisen.
Ebenfalls kannst du auswählen, ob du eine Adresse für den Kontakt festlegen willst (wenn nicht mach einfach den Haken bei Adresse weg).
## Bearbeiten
Um einen Kontakt zu bearbeiten kannst du in der Kontaktübersicht den Button `Details` für den gewünschten Kontakt anklicken.
In der Übersicht für diesen Kontakt kannst du nun den Namen, die Telefonnummer, die E-Mail Adresse und die Adresse anpassen.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
## Löschen
Du kannst einen Kontakt entweder aus der Kontaktübersicht oder der Kontaktdetailansicht löschen.
Dabei wird nur der Kontakt gelöscht, keine verbundenen Orgs oder Teams.
> Du kannst einen Kontakt entweder aus der Kontaktübersicht oder der Kontaktdetailansicht löschen.
> Dabei wird nur der Kontakt gelöscht, keine verbundenen Orgs oder Teams.
### In der Kontaktübersicht
Klick bei dem gewünschten Kontakt auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du den Kontakt wirklich löschen oder abbrechen willst.
### In der Kontaktdetailansicht
Klick bei dem gewünschten Kontakt auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Kontakt löschen`.
Daraufhin wirst du gefragt, ob du den Kontakt wirklich löschen oder abbrechen willst.
Daraufhin wirst du gefragt, ob du den Kontakt wirklich löschen oder abbrechen willst.

View File

@ -1,14 +1,9 @@
---
title: Sponsorings
weight: 9
lang: de
---
# Sponsorings
Sponsorings können entweder Festbetragsspenden oder Kilometerspenden sein.
Kilometerspenden verbinden [Läufer:innen](../runners) mit [Sponsor:innen](../donors), die einen festen Betrag pro zurückgelegtem Kilometer der Läufer:in spenden.
Kilometerspenden verbinden <router-link to="./runners">Läufer:innen</router-link> mit <router-link to="./donors">Sponsor:innen</router-link>, die einen festen Betrag pro zurückgelegtem Kilometer der Läufer:in spenden.
## Anlegen
Um ein neues Sponsoring anzulegen öffne im Läufersystem die Seite `Sponsorings`.
Über den Button `Sponsoring erstellen` kannst du ein neues Sponsoring anlegen.
@ -16,34 +11,27 @@ Als erstes kannst du auswählen, ob du ein (Kilometer)Sponsoring oder eine Festb
Dann musst du die Sponsor:in auswählen.
### Sponsoring (Kilometerspende)
Für Kilometerspenden musst du nun eine Läufer:in auswählen und angeben, wie viele Euro die Sponsor:in pro gelaufenem Kilometer der Läufer:in spenden möchte.
Sobald du alles angegeben hast kannst du mit dem Button `Erstellen` das Sponsoring anlegen.
### Festbetragsspende
Für Festbetragsspenden musst du nun den Spendenbetrag in Euro angeben.
Sobald du alles angegeben hast kannst du mit dem Button `Erstellen` die Festbetragsspende anlegen.
## Bearbeiten
Um ein Sponsoring zu bearbeiten kannst du in der Sponsoringübersicht den Button `Details` für das gewünschte Sponsoring anklicken.
Hier siehst du den Gesamtbetrag (bei Kilometerspenden hochgerechnet) des Sponsoring und kannst die Sponsor:in ändern.
### Sponsoring (Kilometerspende)
Für Kilometerspenden kannst du zusätzlich die Läufer:in und den Spendenbetrag pro gelaufenem Kilometer anpassen.
Sobald du alles angepasst hast kannst du mit dem Button `Änderungen speichern` die Änderungen übernehmen.
### Festbetragsspende
Für Festbetragsspenden kannst du zusätzlich den Spendenbetrag anpassen.
Sobald du alles angepasst hast kannst du mit dem Button `Änderungen speichern` die Änderungen übernehmen.
## Zahlung eingeben
### In der Sponsoringübersicht
Um eine Zahlung einzugeben kannst du in der Sponsoringübersicht den Button `Zahlung eingeben` für das gewünschte Sponsoring anklicken.
Daraufhin öffnet sich ein Dialog, in dem du den bezahlten Betrag für das Sponsoring eingeben kannst.
@ -52,20 +40,16 @@ Wenn das Sponsoring auf den Cent genau bezahlt wurde kannst du dir das eintippen
Wenn du deine Änderungen vorgenommen hast kannst du diese über den Button `Änderungen speichern` übernehmen.
### Im Sponsoringdetail
Siehe Sponsoring bearbeiten
> Siehe Sponsoring bearbeiten
## Löschen
Du kannst ein Sponsoring entweder aus der Sponsoringübersicht oder der Sponsoringdetailansicht löschen.
> Du kannst ein Sponsoring entweder aus der Sponsoringübersicht oder der Sponsoringdetailansicht löschen.
### In der Sponsoringübersicht
Klick bei dem gewünschten Sponsoring auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du das Sponsoring wirklich löschen oder abbrechen willst.
### In der Sponsoringdetailansicht
Klick bei dem gewünschten Sponsoring auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Sponsoring löschen`.
Daraufhin wirst du gefragt, ob du das Sponsoring wirklich löschen oder abbrechen willst.
Daraufhin wirst du gefragt, ob du das Sponsoring wirklich löschen oder abbrechen willst.

View File

@ -1,14 +1,9 @@
---
title: Sponsor:innen
weight: 8
lang: de
---
# Sponsor:innen
Sponsor:innen sind die Spender, die mit einen Festbetrag oder eine Kilometerspende den Lauf für Kaya! unterstützen.
Zusammen mit den [Sponsorings](../donations) bilden sie das Herzstück des Spendenmanagement und der Spendenverrechnung.
Zusammen mit den <router-link to="./donations">Sponsorings</router-link> bilden sie das Herzstück des Spendenmanagement und der Spendenverrechnung.
## Sponsorübersicht
> Eine kurze Übersicht über die Funktionen der Sponsorübersicht.
In der Sponsorübersicht werden alle im System registrierten Sponsor:innen aufgelistet.
@ -20,7 +15,6 @@ Auch der Spendengesamtbetrag aller Sponsorings der Sponsor:in wird hier gelistet
Ebenso gibt es eine Suchfunktion mit Hilfe derer du nach Sponsornamen und -IDs suchen kannst.
## Anlegen
Um eine neue Sponsor:in anzulegen öffne im Läufersystem die Seite `Sponsor:innen`.
Über den Button `Sponsor:in hinzufügen` kannst du eine neue Sponsor:in anlegen.
Dabei musst du einen Vornamen und Nachnamen festlegen.
@ -29,27 +23,22 @@ Sollte die Sponsor:in eine Spendenquittung benötigen kannst du einen Haken bei
Sobald du alles eingetragen hast kannst du mit dem Button `Erstellen` die Sponsor:in anlegen.
## Bearbeiten
Um eine Sponsor:in zu bearbeiten kannst du in der Sponsorübersicht den Button `Details` für die gewünschte Sponsor:in anklicken.
In der Übersicht für die Läufer:in kannst du nun den Vornamen, Mittelnamen, Nachnamen, sowie die Telefonnummer, E-Mail Adresse und Adresse(Spendenquittung benötigt) bearbeiten.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
## Löschen
Du kannst eine Sponsor:in entweder aus der Sponsorübersicht oder der Sponsorendetailansicht löschen.
> Du kannst eine Sponsor:in entweder aus der Sponsorübersicht oder der Sponsorendetailansicht löschen.
### In der Sponsorübersicht
Klick bei der gewünschten Sponsor:in auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du die Sponsor:in wirklich löschen oder abbrechen willst.
### In der Sponsorendetailansicht
Klick bei der gewünschten Sponsor:in auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Sponsor:in löschen`.
Daraufhin wirst du gefragt, ob du die Sponsor:in wirklich löschen oder abbrechen willst.
### Sponsor:in mit Sponsorings
Sollte die Sponsor:in noch Sponsorings haben geht nach dem Bestätigen der Löschung nochmal eine Warnung auf.
Hier musst du nochmal die Löschung inklusive aller Sponsorings bestätigen, alternativ kannst du auch Abbrechen.
Hier musst du nochmal die Löschung inklusive aller Sponsorings bestätigen, alternativ kannst du auch Abbrechen.

View File

@ -1,52 +1,36 @@
---
title: Organisationen
weight: 3
lang: de
---
{{< callout type="warning" >}}
Du solltest die Organisation "Citizen" (ID 1 standardmäßig) nicht löschen.
Sie wird für den [Selfservice](../../selfservice) benötigt.
{{< /callout >}}
{{< callout type="info" >}}
Solltest du dich für den Selfservice für Orgs interessieren findest du die Dokumentation zu [hier](../../selfservice/orgs).
{{< /callout >}}
# Organisationen
> Solltest du dich für den Selfservice für Orgs interessieren findest du die Dokumentation zu <router-link to="../selfservice/org_selfservice">hier</router-link>
Läuferorganisationen sind das Herzstück des Gruppensystems für Läufer.
Eine Organisation kann eine Firma, Schule, Kindergarten, Verein oder ähnliches sein.
Läufer:innen können direkt einer Organisation zugeordnet werden.
Um die Läufer:innen einer Organisation (z.B.: Schule) weiter zu sortieren können einer Organisation mehrere Teams (z.B.: Klassen) zugeordnet werden.
Einer/m Organisation/Team kann ein Kontakt zugeordnet werden, mehr dazu findest du [hier](../contacts).
Mehr zu Teams findest du [hier](../teams).
Einer/m Organisation/Team kann ein Kontakt zugeordnet werden, mehr dazu findest du <router-link to="./contacts">hier</router-link>.
Mehr zu Teams findest du <router-link to="./teams">hier</router-link>
## Anlegen
Um eine neue Organisation anzulegen öffne im Läufersystem die Seite `Orgs`.
Über den Button `Organisation erstellen` kannst du eine neue Organisation erstellen.
Dabei kannst du der Organisation einen Namen geben.
## Bearbeiten
Um eine Organisation zu bearbeiten kannst du in der Organisationsübersicht den Button `Details` für die gewünschte Organisation anklicken.
In der Übersicht für diese Organisation kannst du nun den Namen der Organisation und den zugewiesenen Kontakt ändern.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
## Löschen
Du kannst eine Organisation entweder aus der Organisationsübersicht oder der Organisationsdetailansicht löschen.
> Du kannst eine Organisation entweder aus der Organisationsübersicht oder der Organisationsdetailansicht löschen.
### In der Organisationsübersicht
Klick bei der gewünschten Organisation auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du die Organisation wirklich löschen oder abbrechen willst.
### In der Organisationsdetailansicht
Klick bei der gewünschten Organisation auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Organisation löschen`.
Daraufhin wirst du gefragt, ob du die Organisation wirklich löschen oder abbrechen willst.
### Organisation mit Teams und Läufer
Sollte die Organisation noch Teams und/oder Läufer haben geht nach dem Bestätigen der Löschung nochmal eine Warnung auf.
Hier musst du nochmal die Löschung inklusive aller Läufer und Teams bestätigen, alternativ kannst du auch Abbrechen.
Hier musst du nochmal die Löschung inklusive aller Läufer und Teams bestätigen, alternativ kannst du auch Abbrechen.

109
docs/users/runner_import.md Normal file
View File

@ -0,0 +1,109 @@
# Läuferimport
Um das Eintragen von Läufer:innen ins System zu erleichtern können Läufer aus Excel-Tabellen(CSV, XLSX) importiert werden.
Diese Funktion ist vor allem für Schulen und Kindergärten gedacht, kann aber natürlich für alle Arten von Teams und Organisationen verwendet werden.
Im Folgenden erklären wir dir Schritt für Schritt, wie du Läufer ins System importieren kannst.
## Aufbau der Importdateien
> Die Datei muss im Format XLSX(Excel) oder CSV vorliegen
Alle Läufer müssen auf einem "Tabellenblatt"(Excel) stehen, alle weiteren Tabellenblätter werden ignoriert.
Die Tabelle muss folgendem Schema folgen:
Vorname | Mittelname | Nachname | Team/Klasse
- | - | - | -
Vorname1 | Optional | Nachname1 | Optional
Achtung: Die Team Spalte kann Team oder Klasse heißen!
### Beispiel: CSV
**Mit Mittelname**
> [Beispieldatei herunterladen](/files/class_with_middlename.csv)
```
Vorname; Mittelname; Nachname; Team;
Peter; ; Tester; 1A
Manuel; Steffen; Regenwald; 1A
Toller; ; Typ; 2A
```
**Ohne Mittelname**
> [Beispieldatei herunterladen](/files/class_without_middlename.csv)
```
Vorname; Nachname; Team;
Peter; Tester; 1A
Manuel; Regenwald; 1A
Toller; Typ; 2A
```
### Beispiel: XLSX (Excel)
**Mit Mittelname**
> [Beispieldatei herunterladen](/files/class_with_middlename.xlsx)
![Excel Screenshot with Middlename](/images/runner_import_excel_with_middlename.png)
**Ohne Mittelname**
> [Beispieldatei herunterladen](/files/class_without_middlename.xlsx)
![Excel Screenshot with Middlename](/images/runner_import_excel_no_middlename.png)
## Import in eine Organisation
> Wähle diese Variante, wenn du in einer Organisation automatisch Teams anlegen und die Läufer in diese Importieren willst. <br/>
> Wähle diese Variante, wenn du Läufer direkt in eine Organisation importieren willst.
Wenn in der Datei bei einer Läufer:in kein Team angegeben ist wird sie direkt in die Organisation importiert.
Ist ein Team angegeben wird das Team in der Organisation gesucht und neu Angelegt, wenn es nicht gefunden wurde - danach wird die Läufer:in in das Team importiert.
### Aus der Organisationsübersicht
1. Öffne im Läufersystem die Seite `Orgs`
2. Klicke oben auf `Läufer importieren`
3. Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst
4. Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
5. Wähle oben die Organisation aus, in die die Läufer:innen importiert werden sollen
6. Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen
7. Die Läufer werden nun in die Organisation importiert
### Aus der Organisationsdetailansicht
1. Öffne im Läufersystem die Seite `Orgs`
2. Klicke bei der gewünschten Organisation auf den `Details` Button
3. Klicke oben auf `Läufer importieren`
4. Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst
5. Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
6. Wähle oben die Organisation aus, in die die Läufer:innen importiert werden sollen
7. Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen
8. Die Läufer werden nun in die Organisation importiert
### Aus der Läuferübersicht
1. Öffne im Läufersystem die Seite `Läufer`
2. Klicke oben auf `Läufer importieren`
3. Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst
4. Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
5. Wähle oben die Organisation (Hat kein `>` im Namen) aus, in die die Läufer:innen importiert werden sollen
6. Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen
7. Die Läufer werden nun in die Organisation importiert
## Import in ein Team
> Wähle diese Variante, wenn du Läufer direkt in ein Team importieren willst.
Wenn in der Datei bei einer Läufer:in ein Team angegeben ist wird dieses ignoriert und mit dem gewählten Team überschrieben..
### Aus der Teamdetailansicht
1. Öffne im Läufersystem die Seite `Teams`
2. Klicke bei de, gewünschten Team auf den `Details` Button
3. Klicke oben auf `Läufer importieren`
4. Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst
5. Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
6. Wähle oben das Team aus, in die die Läufer:innen importiert werden sollen
7. Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen
8. Die Läufer werden nun in das Team importiert
### Aus der Läuferübersicht
1. Öffne im Läufersystem die Seite `Läufer`
2. Klicke oben auf `Läufer importieren`
3. Klicke auf `Datei auswählen` und wähle die Datei aus, aus der du Läufer:innen importieren willst
4. Dir wird eine Übersicht aller Läufer:innen angezeigt, die in der Datei gefunden wurden - überprüfe alle Läufer:innen auf Korrektheit
5. Wähle oben das Team (Hat ein `>` im Namen) aus, in die die Läufer:innen importiert werden sollen
6. Klicke unten auf `Läufer importieren`, um die Läufer:innen zu importieren oder `Abbrechen`, um den Import abzubrechen
7. Die Läufer werden nun in das Team importiert

View File

@ -1,16 +1,11 @@
---
title: Läufer:innen
weight: 6
lang: de
---
# Läufer:innen
Läufer sind das Herzstück des Läufersystems.
Über sie werden Strecken erfasst und Spenden berechnet.
Läufer können einem [Team](../teams) oder einer [Organisation](../teams) zugeordnet werden.
Läufer können einem <router-link to="./teams">Team</router-link> oder einer <router-link to="./organizations">Organisation</router-link> zugeordnet werden.
## Läuferübersicht
> Eine kurze Übersicht über die Funktionen der Läuferübersicht.
In der Läuferübersicht werden alle im System registrierten Läufer:innen aufgelistet.
@ -23,8 +18,7 @@ Ebenso gibt es eine Suchfunktion mit Hilfe derer du nach Läufernamen, -IDs und
Du eine ID eingibst wird dir nur die Läufer:in mit genau der ID angezeigt, solltest du alle Läufer:innen sehen wollen, deren IDs mit deiner Eingabe beginnen stelle ein `*` ans Ende der ID.
Beispiele:
* `Peter` -> Alle Läufer:innen mit Peter im Namen
* `Peter` -> Alle Läufer:innen mit Peter im Namen
* `Gymnasium` -> Alle Läufer:innen, die in einer Gruppe mit dem Namen Gymnasium sind
* `421` -> Die Läufer:in mit der ID 421
* `42*` -> Alle Läufer:innen, deren ID mit 42 beginnt
@ -32,10 +26,7 @@ Beispiele:
## Aktionen
### Anlegen
{{< callout type="warning" >}}
Um eine Läufer:in anzulegen musst du vorher eine Organisation und/oder ein Team anlegen.
{{< /callout >}}
> Achtung: Um eine Läufer:in anzulegen musst du vorher eine Organisation und/oder ein Team anlegen.
Um eine neue Läufer:in anzulegen öffne im Läufersystem die Seite `Läufer`.
Über den Button `Läufer:in hinzufügen` kannst du eine neue Läufer:in anlegen.
@ -43,26 +34,21 @@ Dabei musst du einen Vornamen, Nachnamen und die Gruppe (Team/Organisation) fest
Zusätzlich kannst du einen Mittelnamen(2. Vornamen), eine Telefonnummer und eine E-Mail Adresse angeben.
### Bearbeiten
Um eine Läufer:in zu bearbeiten kannst du in der Läuferübersicht den Button `Details` für die gewünschte Läufer:in anklicken.
In der Übersicht für die Läufer:in kannst du nun den Vornamen, Mittelnamen, Nachnamen, sowie die Telefonnummer, E-Mail Adresse und Gruppe bearbeiten.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
### Löschen
Du kannst eine Läufer:in entweder aus der Läuferübersicht oder der Läuferdetailansicht löschen.
> Du kannst eine Läufer:in entweder aus der Läuferübersicht oder der Läuferdetailansicht löschen.
### In der Läuferübersicht
Klick bei der gewünschten Läufer:in auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du die Läufer:in wirklich löschen oder abbrechen willst.
### In der Läuferdetailansicht
Klick bei der gewünschten Läufer:in auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Läufer:in löschen`.
Daraufhin wirst du gefragt, ob du die Läufer:in wirklich löschen oder abbrechen willst.
## Import
Die Importanleitung findest du [hier](../import).
> Die Importanleitung findest du <router-link to="./runner_import">hier</router-link>

View File

@ -1,20 +1,15 @@
---
title: Scans
weight: 12
lang: de
---
# Scans
Scans sind das Herzstück der Kilometerzählung - sie verbinden [Läufer:innen](../runners) mit zurückgeleter Distantz.
Scans sind das Herzstück der Kilometerzählung - sie verbinden <router-link to="./runners">Läufer:innen</router-link> mit zurückgeleter Distantz.
Es gibt zwei Arten von Scans im System: "Festdistanzscans" und "Trackscans"
Festdistanzscans können nur von Benutzer:innen im Läufersystem angelegt werden und weisen einer Läufer:in eine feste Distanz zu.
Dies ist besonders nützlich, wenn Läufer:innen Karten auf halber Strecke verloren haben oder aus anderen Gründen einen Distanzbonus bekommen.
Trackscans hingegen können nur dadurch erzeugt werden, dass eine Scannerstation den Code der Karte einer Läufer:in scannen und so einen neuen Scan anlegen.
Die Trackscans sind immer Fest mit einer Läufer:in und einem [Track](../tracks) verbunden, von dem die Distanz abgeleitet wird.
Die Trackscans sind immer Fest mit einer Läufer:in und einem <router-link to="./tracks">Track</router-link> verbunden, von dem die Distanz abgeleitet wird.
## Anlegen
> Du kannst im Läufersystem nur Festdistanzscans anlegen.
Um einen neue Scan anzulegen öffne im Läufersystem die Seite `Scans`.
@ -23,31 +18,25 @@ Dabei musst du dem Scan eine Läufer:in und eine Distanz in Metern zuweisen.
Sobald du alles angegeben hast kannst du über den Button `Erstellen` den Scan anlegen.
## Bearbeiten
Um einen Scan zu bearbeiten kannst du in der Scansübersicht den Button `Details` für den gewünschten Scananklicken.
### Festdistanzscans
Bei Festdistanzscans kannst du in der Scandetailansicht die Gültigkeit, Läufer:in und Distanz anpassen.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
### Trackscans
Bei Trackscans kannst du in der Scandetailansicht nur die Gültigkeit anpassen - alle anderen Werte sind fest im System hinterlegt.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
## Löschen
Du kannst einen Scan entweder aus der Scansübersicht oder der Scandetailansicht löschen.
Wir empfehlen grundsätzlich Scans lieber zu deaktiveren, als zu löschen, um menschlichen Fehlern vorzubeugen.
> Du kannst einen Scan entweder aus der Scansübersicht oder der Scandetailansicht löschen.
> Wir empfehlen grundsätzlich Scans lieber zu deaktiveren, als zu löschen, um menschlichen Fehlern vorzubeugen.
### In der Scansübersicht
Klick bei dem gewünschten Scan auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du den Scan wirklich löschen oder abbrechen willst.
### In der Scandetailansicht
Klick bei dem gewünschten Scannerstation auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Scan löschen`.
Daraufhin wirst du gefragt, ob du den Scannerstation wirklich löschen oder abbrechen willst.
Daraufhin wirst du gefragt, ob du den Scannerstation wirklich löschen oder abbrechen willst.

View File

@ -1,27 +1,15 @@
---
title: Scannerstationen
weight: 13
lang: de
---
# Scannerstationen
> Die Doku zur Nutzung der <router-link to="../scanstations">Scannerstationen gibt es hier</router-link>
{{< callout type="info" >}}
Die Doku zur Nutzung der [Scannerstationen gibt es hier](../../scanstation)
{{< /callout >}}
Scannerstationen sind erstellen Scans für Läuferkarten auf [Tracks](../tracks).
Scannerstationen sind erstellen Scans für Läuferkarten auf <router-link to="./tracks">Tracks</router-link>.
Die Scannerstationen sind in realen Welt üblicherweise Laptops mit Barcode-Scannern und einer speziellen Software.
Die Scannerstationen im Läufersystem dienen dazu die "realen" Scannerstationen anzumelden und einem Track zuzuweisen.
Dieser Teil der Dokumentation befasst sich nur mit den Scannerstationen im Läufersystem!
## Anlegen
{{< callout type="warning" >}}
Bevor du eine Scannerstation anlegen kannst musst du erst einen [Track](../tracks) anlegen, zu dem sie gehört.
{{< /callout >}}
{{< callout type="info" >}}
Du bekommst beim Erstellen einer Scanenrstation einen Token (Code/Key) für diese - bewahre ihn gut auf!
{{< /callout >}}
> Bevor du eine Scannerstation anlegen kannst musst du erst einen <router-link to="./tracks">Track</router-link> anlegen, zu dem sie gehört.
> Du bekommst beim Erstellen einer Scanenrstation einen Token (Code/Key) für diese - bewahre ihn gut auf!
Um eine neue Scannerstation anzulegen öffne im Läufersystem die Seite `Scannerstationen`.
Über den Button `Station erstellen` kannst du eine neue Scanerstation erstellen.
@ -34,31 +22,23 @@ Du kannst auf den Token oder den kopieren Button klicken, um den Token in deine
Wenn du den Token sicher gespeichert hast kannst du den Dialog über den Button `Ja, ich habe den Token kopiert` schließen.
## Bearbeiten
Um eine Scannerstation zu bearbeiten kannst du in der Scannerstationsübersicht den Button `Details` für die gewünschte Scannerstation anklicken.
In der Übersicht für diese Scannerstation kannst du nun den Track und die Beschreibung der Scannerstation ändern und sie (de)aktivieren.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
## Löschen
Du kannst eine Scannerstation entweder aus der Scannerstationsübersicht oder der Scannerstationsdetailansicht löschen.
> Du kannst eine Scannerstation entweder aus der Scannerstationsübersicht oder der Scannerstationsdetailansicht löschen.
### In der Scannerstationsübersicht
Klick bei der gewünschten Scannerstation auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du die Scannerstation wirklich löschen oder abbrechen willst.
### In der Scannerstationsdetailansicht
Klick bei der gewünschten Scannerstation auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Station löschen`.
Daraufhin wirst du gefragt, ob du die Scannerstation wirklich löschen oder abbrechen willst.
### Scannerstation mit Scans
{{< callout type="error" >}}
Wir empfehlen Stationen mit Scans nie zu löschen sondern einfach zu deaktivieren!
{{< /callout >}}
> Achtung: Wir empfehlen Stationen mit Scans nie zu löschen sondern einfach zu deaktivieren!
Sollte die Scannerstation noch assoziierte Scans haben geht nach dem Bestätigen der Löschung nochmal eine Warnung auf.
Hier musst du nochmal die Löschung inklusive aller Scans bestätigen, alternativ kannst du auch Abbrechen.
Hier musst du nochmal die Löschung inklusive aller Scans bestätigen, alternativ kannst du auch Abbrechen.

View File

@ -1,48 +1,38 @@
---
title: Sponsoring-Erklärungen
weight: 10
lang: de
---
# Sponsoring-Erklärungen
Das System kann für beliebige [Läufer:innen](../runners), [Teams](../teams) oder ganze [Organisationen](../orgs) Sponsoring-Erklärungen generieren.
Das System kann für beliebige <router-link to="./runners">Läufer:innen</router-link>, <router-link to="./teams">Teams</router-link> oder ganze <router-link to="./organizations">Organisationen</router-link> Sponsoring-Erklärungen generieren.
Die Sponsoring-Erklärungen sind dabei aktuell auf Deutsch und Englisch verfügbar.
Die Texte auf dem Sponsoring-Erklärungen und die Anzahl von Erklärungen/Läufer:in können deine Admins anpassen.
## Für Läufer:innen
### Für Läufer:innen in der Läuferübersicht
In der Läuferübersicht kannst du beliebig viele Läufer:innen auswählen (oder alle über den Button `Alle Auswählen`).
Daraufhin erscheint über der Läuferliste der Button `Sponsoringvertrag generieren`.
Sobald du ihn anklickst werden die Sponsoring-Erklärungen generiert und heruntergeladen.
### Für einzelne Läufer:in in der Läuferdetailansicht
Um eine Sponsoring-Erklärung für eine einzelne Läufer:in zu generieren kannst du in der Läuferübersicht den Button `Details` für die gewünschte Läufer:in anklicken.
Dann kannst du auf der Detailansicht einfach den Button `Sponsoringvertrag generieren` anklicken - daraufhin wird die Sponsoring-Erklärung generiert und heruntergeladen.
## Für Teams
### Für Teams in der Teamübersicht
In der Teamübersicht kannst du beliebig viele Teams auswählen (oder alle über den Button `Alle Auswählen`).
Daraufhin erscheint über der Teamliste der Button `Sponsoringverträge generieren`.
Sobald du ihn anklickst werden die Sponsoring-Erklärungen für alle Läufer:innen der Teams generiert und heruntergeladen.
### Für einzelne Teams in der Teamdetailansicht
Um Sponsoring-Erklärungen für alle Läufer:innen eines einzelne Teams zu generieren kannst du in der Teamübersicht den Button `Details` für das gewünschte Team anklicken.
Dann kannst du auf der Detailansicht einfach den Button `Sponsoringverträge generieren` anklicken - daraufhin werden die Sponsoring-Erklärungen generiert und heruntergeladen.
## Für Organisationen
### Für Organisationen in der Organisationsübersicht
In der Organisationsübersicht kannst du beliebig viele Organisationen auswählen (oder alle über den Button `Alle Auswählen`).
Daraufhin erscheint über der Organisationsliste der Button `Sponsoringverträge generieren`.
Sobald du ihn anklickst werden die Sponsoring-Erklärungen für alle Läufer:innen der Organisationen (inklusive ihrer Teams) generiert und heruntergeladen.
### Für einzelne Organisationen in der Teamdetailansicht
Um Sponsoring-Erklärungen für alle Läufer:innen einer einzelnen Organisation (inklusive ihrer Teams) zu generieren kannst du in der Organisationsübersicht den Button `Details` für die gewünschte Organisation anklicken.
Dann kannst du auf der Detailansicht einfach den Button `Sponsoringverträge generieren` anklicken - daraufhin werden die Sponsoring-Erklärungen generiert und heruntergeladen.

View File

@ -1,46 +1,35 @@
---
title: Teams
weight: 4
lang: de
---
# Teams
Läuferteams sind die Untergruppen des Gruppensystems für Läufer:innen.
Ein Team kann eine Klasse, Abteilung, Gruppe oder ähnliches sein.
Läufer:innen können einem Team zugeordnet werden, das wiederum zu einer Organisation gehört (mehr zu Organisationen findest du [hier](../orgs).
Einer/m Organisation/Team kann ein Kontakt zugeordnet werden, mehr dazu findest du [hier](../contacts).
Läufer:innen können einem Team zugeordnet werden, das wiederum zu einer Organisation gehört (mehr zu Organisationen findest du <router-link to="./organizations">hier</router-link>).
Einer/m Organisation/Team kann ein Kontakt zugeordnet werden, mehr dazu findest du <router-link to="./contacts">hier</router-link>.
## Anlegen
{{< callout type="warning" >}}
Achtung: Um ein Team anzulegen musst du vorher die Mutter-Organisation für das Team anlegen.
{{< /callout >}}
> Achtung: Um ein Team anzulegen musst du vorher die Mutter-Organisation für das Team anlegen.
Um ein neues Team anzulegen öffne im Läufersystem die Seite `Teams`.
Über den Button `Team erstellen` kannst du ein neues Team erstellen.
Dabei kannst du dem Team einen Namen geben und auswählen, zu welcher Organisation das Team gehört.
## Bearbeiten
Um ein Team zu bearbeiten kannst du in der Teamübersicht den Button `Details` für das gewünschte Team anklicken.
In der Übersicht für dieses Team kannst du nun den Namen, die Mutter-Organisation und den Kontakt des Teams ändern.
Wenn du fertig bist klick einfach auf `Änderungen speichern`.
## Löschen
Du kannst ein Team entweder aus der Teamübersicht oder der Teamdetailansicht löschen.
> Du kannst ein Team entweder aus der Teamübersicht oder der Teamdetailansicht löschen.
### In der Teamübersicht
Klick bei dem gewünschten Team auf den Button `Löschen`.
Daraufhin wirst du gefragt, ob du das Team wirklich löschen oder abbrechen willst.
### In der Teamdetailansicht
Klick bei dem gewünschten Team auf den Button `Details`.
Oben auf der Seite gibt es jetzt den Knopf `Team löschen`.
Daraufhin wirst du gefragt, ob du das Team wirklich löschen oder abbrechen willst.
### Teams mit Läufern
Sollte das Team noch Läufer haben geht nach dem Bestätigen der Löschung nochmal eine Warnung auf.
Hier musst du nochmal die Löschung inklusive aller Läufer bestätigen, alternativ kannst du auch Abbrechen.
Hier musst du nochmal die Löschung inklusive aller Läufer bestätigen, alternativ kannst du auch Abbrechen.

View File

@ -1,26 +1,19 @@
---
title: Tracks
weight: 11
lang: de
---
# Tracks
Die Tracks sind im System hinterlegte Laufstrecken, auf basis derer die Distanzen für Scans berechnet werden.
Sie haben einen Namen, eine Distanz (in Metern) und eine minimale Rundenzeit (Schnellere Runden werdena utomatisch als Betrug gekennzeichnet).
Beim Lauf für Kaya! gab es in der Vergangenheit immer die zwei Tracks "kleine Runde" (400m) und "große Runde" (1000m).
## Anlegen
Um einen neuen Track anzulegen öffne im Läufersystem die Seite `Tracks`.
Über den Button `Track erstellen` kannst du einen neuen Track erstellen.
Dabei musst du den Namen des Tracks und seine Länge in Metern angeben - optional kannst du noch eine minimale Rundenzeit in Sekunden angeben.
## Bearbeiten
Um einen Track zu bearbeiten kannst du in der Trackübersicht den Button `Bearbeiten` für den gewünschten Track anklicken.
Daraufhin kannst du die Werte der Spalte des Tracks bearbeiten.
Wenn du fertig bist klick einfach auf `Speichern`.
## Löschen
Um einen Track zu bearbeiten kannst du in der Trackübersicht den Button `Löschen` für den gewünschten Track anklicken.
Daraufhin hast du die möglichkeit den Löschvorgang abzubrechen oder mit einem Klick auf `Bestätigen` den Track entgültig zu löschen.
Daraufhin hast du die möglichkeit den Löschvorgang abzubrechen oder mit einem Klick auf `Bestätigen` den Track entgültig zu löschen.

114
docusaurus.config.js Normal file
View File

@ -0,0 +1,114 @@
// @ts-check
// `@type` JSDoc annotations allow editor autocompletion and type checking
// (when paired with `@ts-check`).
// There are various equivalent ways to declare your Docusaurus config.
// See: https://docusaurus.io/docs/api/docusaurus-config
import {themes as prismThemes} from 'prism-react-renderer';
/** @type {import('@docusaurus/types').Config} */
const config = {
title: 'LfK! Docs',
tagline: 'LfK! Dokumentation',
favicon: 'img/favicon.ico',
// Set the production url of your site here
url: 'https://your-docusaurus-site.example.com',
// Set the /<baseUrl>/ pathname under which your site is served
// For GitHub pages deployment, it is often '/<projectName>/'
baseUrl: '/',
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'warn',
// Even if you don't use internationalization, you can use this field to set
// useful metadata like html lang. For example, if your site is Chinese, you
// may want to replace "en" with "zh-Hans".
i18n: {
defaultLocale: 'de',
locales: ['de'],
},
presets: [
[
'classic',
/** @type {import('@docusaurus/preset-classic').Options} */
({
docs: {
sidebarPath: './sidebars.js',
},
blog: {
showReadingTime: true,
},
theme: {
customCss: './src/css/custom.css',
},
}),
],
],
themeConfig:
/** @type {import('@docusaurus/preset-classic').ThemeConfig} */
({
// Replace with your project's social card
image: 'img/docusaurus-social-card.jpg',
navbar: {
title: 'LfK! Docs',
logo: {
alt: 'LfK! Docs Logo',
src: 'img/logo.svg',
},
items: [
{
type: 'docSidebar',
sidebarId: 'tutorialSidebar',
position: 'left',
label: 'Docs',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Docs',
items: [
{
label: 'Docs',
to: '/docs/admins',
},
],
},
{
title: 'Legal',
items: [
{
label: 'Imprint',
href: 'https://odit.services/imprint/',
},
{
label: 'Privacy',
href: 'https://odit.services/privacy/',
},
],
},
{
title: 'More',
items: [
{
label: 'Code',
href: 'https://git.odit.services/lfk/',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} ODIT.Services`,
},
prism: {
theme: prismThemes.github,
darkTheme: prismThemes.dracula,
},
}),
};
export default config;

5
go.mod
View File

@ -1,5 +0,0 @@
module git.odit.services/lfk/docs
go 1.23.4
require github.com/imfing/hextra v0.9.3 // indirect

2
go.sum
View File

@ -1,2 +0,0 @@
github.com/imfing/hextra v0.9.3 h1:p4vDm2TSgt3RpJdJm2mqkpoJCH2S08wzySyyYodtgCc=
github.com/imfing/hextra v0.9.3/go.mod h1:cEfel3lU/bSx7lTE/+uuR4GJaphyOyiwNR3PTqFTXpI=

Some files were not shown because too many files have changed in this diff Show More