Compare commits

..

28 Commits

Author SHA1 Message Date
ca8373e383
fix(navbar): Revert logo size 2025-01-18 08:35:20 +01:00
3cad9e2a56
feat: Enable updated at and editing urls 2025-01-18 08:33:11 +01:00
c6bcf572cf
style: Added icons 2025-01-18 08:24:16 +01:00
e03f3dd205
refactor(footer): Switch to custom footer template 2025-01-18 08:09:00 +01:00
3e13e1a5f1
style(container): Update Dockerfile syntax for build stage 2025-01-16 22:55:24 +01:00
16bf581c60
fix(scanstation): Broken links 2025-01-16 22:54:15 +01:00
f3ebeba9a7
fix(content): Broken links 2025-01-16 22:52:39 +01:00
96eb208937
fix: Broken Links 2025-01-16 22:50:04 +01:00
f44dfbfbb9
style(footer): Updated footer 2025-01-16 22:39:07 +01:00
49f2a1715b
chore: Remove legacy docs 2025-01-16 22:28:56 +01:00
e22fb71daa
refactor(container): Switch to base images from dockerhub 2025-01-16 22:14:43 +01:00
3fea70ce17
feat(container): Docker ignore 2025-01-16 22:13:09 +01:00
96ec5fd666
feat(container): Docker-Compose 2025-01-16 22:12:03 +01:00
e24fbab7e9
docs: Re-Added Readme 2025-01-16 22:11:25 +01:00
74b4139b8d
feat(container): Dockerfile 2025-01-16 22:08:31 +01:00
64c592285f
feat(scanstation): Scanner-Hardware config docs 2025-01-16 22:06:56 +01:00
314745b697
refactor(admin) Switch to mermaid charts 2025-01-16 22:00:31 +01:00
f92715f3e4
docs(user): Fully transalated user docs 2025-01-16 21:52:50 +01:00
39c0bfe631
docs(admin): Full admin docs 2025-01-16 21:07:45 +01:00
3c5b48db26
docs(scanstation(: Full Docs 2025-01-16 20:55:46 +01:00
f3a9d126ed
style: Disable sidebar 2025-01-16 20:45:39 +01:00
6d8fa8ad53
docs(beamershow): Full docs 2025-01-16 20:35:18 +01:00
61d790a79e
chore: gitignore 2025-01-16 20:31:22 +01:00
8084038c3c
fix: Normal page witdth 2025-01-16 20:31:14 +01:00
52e7ce5d2c
docs(selfservice): Full translated docs 2025-01-16 20:30:51 +01:00
5c1954aeed
docs(selfservice): German docs 2025-01-16 20:25:10 +01:00
87b538fab6
docs: Init 2025-01-16 20:16:51 +01:00
79c862aebb
move legacy to legacy 2025-01-16 19:11:05 +01:00
117 changed files with 2804 additions and 1473 deletions

View File

@ -1,33 +0,0 @@
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

View File

@ -1,14 +0,0 @@
---
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

View File

@ -1,58 +0,0 @@
---
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

View File

@ -1,12 +0,0 @@
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

View File

@ -1,17 +0,0 @@
---
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

View File

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

View File

@ -1,15 +0,0 @@
---
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,140 +1,2 @@
# ---> 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
build
*.sqlite
*.sqlite-jurnal
/docs
lib
/oss-attribution
*.tmp
*lock
public/**

144
.gitignore vendored
View File

@ -1,142 +1,2 @@
# ---> 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
build
*.sqlite
*.sqlite-jurnal
/docs
lib
/oss-attribution
*.tmp
pnpm-lock.yaml
.argo/secret.yaml
.hugo_build.lock
public

View File

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

View File

@ -1,20 +0,0 @@
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,14 +1,8 @@
FROM registry.odit.services/hub/library/node:16-alpine3.16 AS build
ARG NPM_REGISTRY_URL=https://registry.npmjs.org
WORKDIR /app
COPY package.json *.config.cjs *.config.js ./
RUN npm config set registry $NPM_REGISTRY_URL && npm i -g pnpm@7.29.3
RUN pnpm i
COPY . ./
RUN pnpm build
# final image
FROM registry.odit.services/library/nginx-brotli:latest
COPY --from=build /app/src/.vuepress/dist /usr/share/nginx/html
COPY ./nginx.conf /etc/nginx/nginx.conf
FROM hugomods/hugo:exts AS build
WORKDIR /app
COPY . /app/
RUN hugo
FROM hugomods/hugo:nginx
COPY --from=build /app/public /site

View File

@ -1,34 +1,27 @@
# @lfk/documentation
The documentation for the LfK! 'Läufersystem'.
Powered by Vuepress.
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).
## Quickstart 🐳
> Use this to run the documentation server via docker.
1. Clone the repo or copy the docker-compose.yml
2. Cd into the folder containing the docker-compose.yml
2. Run docker-compose: `docker-compose up -d`
3. Visit http://127.0.0.1:8080/ to check if the server is running
## Dev Setup 🛠
> Local dev setup for previewing changes.
1. Install Dependencies
```bash
yarn
```
2. Start the server
```bash
yarn dev
```
## Recommended Editor
[Visual Studio Code](https://code.visualstudio.com/)
### Recommended Extensions
* will be automatically recommended via ./vscode/extensions.json
# @lfk/documentation
The documentation for the LfK! 'Läufersystem'.
Powered by Hugo.
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.
## Quickstart 🐳
> Use this to run the documentation server via docker.
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
## Dev Setup 🛠
> Local dev setup for previewing changes.
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`
### Recommended Editor
[Visual Studio Code](https://code.visualstudio.com/)

115
config.yaml Normal file
View File

@ -0,0 +1,115 @@
# Configuration
baseURL: "https://docs.lauf-fuer-kaya.de"
title: "LfK! Dokumentation"
module:
imports:
- path: github.com/imfing/hextra
enableRobotsTXT: true
enableGitInfo: true
hasCJKLanguage: true
outputs:
home: [HTML]
page: [HTML]
section: [HTML, RSS]
markup:
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: Scanerstationen
pageRef: /scanstation
weight: 4
- identifier: beamershow
name: Beamershow
pageRef: /beamershow
weight: 5
- name: Suche
identifier: search
weight: 6
params:
type: search
- name: Sourcecode
weight: 7
url: "https://git.odit.services/lfk"
params:
icon: gitea
params:
description: Dokumentation für das Lauf für Kaya! Läufersystem.
displayUpdatedDate: true
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"

58
content/_index.de.md Normal file
View File

@ -0,0 +1,58 @@
---
title: Die Dokumentation für das LfK! Läufersystem
layout: hextra-home
---
{{< 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="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 >}}

58
content/_index.en.md Normal file
View File

@ -0,0 +1,58 @@
---
title: The Documentation for the LfK! Runner System
layout: hextra-home
---
{{< 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="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

@ -0,0 +1,70 @@
---
linkTitle: "Admins"
title: Admin-Doku
weight: 1
prev: /
next: /admin/quickstart
cascade:
type: docs
---
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

@ -0,0 +1,70 @@
---
linkTitle: "Admins"
title: Admin Documentation
weight: 1
prev: /
next: /admin/quickstart
cascade:
type: docs
---
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

@ -0,0 +1,39 @@
---
title: Schnellstart für Admins
weight: 2
prev: /admin
next: /admin/users
---
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

@ -0,0 +1,39 @@
---
title: Quick Start for Admins
weight: 2
prev: /admin
next: /admin/users
---
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,4 +1,9 @@
# Benutzergruppen
---
title: Benutzergruppen verwalten
weight: 4
prev: /admin/quickstart
next: /admin/usergroups
---
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.
@ -6,31 +11,40 @@ 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
> Für die Berechtigung einer Benutzergruppe gibt es eine extra Seite.
{{< callout type="info" >}}
Für die Berechtigung einer Benutzergruppe gibt es eine extra Seite.
{{< /callout >}}
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

@ -0,0 +1,50 @@
---
title: Manage User Groups
weight: 4
prev: /admin/quickstart
next: /admin/usergroups
---
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,35 +1,49 @@
# Benutzer:innen
---
title: Benutzer:innen verwalten
weight: 3
prev: /admin/quickstart
next: /admin/usergroups
---
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
> Für die Berechtigung einer Benutzer:in gibt es eine extra Seite.
{{< callout type="info" >}}
Für die Berechtigung einer Benutzer:in gibt es eine extra Seite.
{{< /callout >}}
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.

49
content/admin/users.en.md Normal file
View File

@ -0,0 +1,49 @@
---
title: Manage Users
weight: 3
prev: /admin/quickstart
next: /admin/usergroups
---
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,17 +1,27 @@
# Beamershow
---
linkTitle: "Beamershow"
title: Beamershow
weight: 1
prev: /
next: /beamershow/config
cascade:
type: docs
---
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 <router-link to="./config">Konfiguration</router-link>
Sie sollte im Normalfall immer unter `<läufersystem>/beamershow` erreichbar sein, mehr dazu unter [Konfiguration](./config)
## 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

@ -0,0 +1,27 @@
---
linkTitle: "Beamershow"
title: Beamershow
weight: 1
prev: /
next: /beamershow/config
cascade:
type: docs
---
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,12 +1,18 @@
# Konfiguration
> Wie man die Beamershow konfiguriert
---
title: Beamershow Konfig
weight: 1
prev: /beamershow
---
## 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://dev.lauf-fuer-kaya.de`).<br>
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`).
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.<br>
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.
Du wirst sofort von der Beamershow abbemeldet und kannst so einen neuen API Endpunkt und Client Token angeben.

View File

@ -0,0 +1,18 @@
---
title: Beamershow Config
weight: 1
prev: /beamershow
---
## 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

@ -0,0 +1,37 @@
---
linkTitle: "Scannerstationen"
title: Über die Scannerstationen
weight: 1
prev: /
next: /scanstation/install
cascade:
type: docs
---
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

@ -0,0 +1,35 @@
---
linkTitle: "Scannerstationen"
title: "About the Scanner Stations"
weight: 1
prev: /
next: /scanstation/install
cascade:
type: docs
---
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,17 +1,48 @@
# Konfiguration
> Wie man die Scanclient Software konfiguriert
---
title: Scannerstation Konfig
weight: 3
prev: /scanstation/install
---
## 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://dev.lauf-fuer-kaya.de`).
Hier musst du die URL deines LfK-Backends eintragen (z.B.: `https://lauf-fuer-kaya.de`).
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.
### Client-Token
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".
Wenn du fertig bist kannst du über den Button "Back to Scanner" wieder in den Scan-Modus wechseln.
{{% /steps %}}

View File

@ -0,0 +1,48 @@
---
title: Scanner Station Configuration
weight: 3
prev: /scanstation/install
---
## 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

@ -0,0 +1,54 @@
---
title: Scannerkonfiguration
weight: 31
prev: /scanstation/config
---
{{< 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,31 +1,54 @@
# 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. 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)
---
title: Scanner Configuration
weight: 32
prev: /scanstation/config
---
{{< 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
![Factory reset](/images/barcode_config/00_factory_reset.png)
### 2. Activate Programming Mode
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
### 3. Scan only EAN-13 (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
![Disable EAN Checkdigit](/images/barcode_config/05_disable_ean_digit.png)
### 5. Set Scanner to Always On (optional)
![Scan mode: Always on](/images/barcode_config/06_always_on.png)
### 6. Exit Programming Mode
![Enter/Exit Programming Mode](/images/barcode_config/01_programming-mode.png)
### 7. Turn Off Beep (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)
![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,12 +1,19 @@
# 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)
---
title: Hardwareempfehlungen
weight: 4
prev: /scanstation/config
---
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)

View File

@ -0,0 +1,19 @@
---
title: Hardware Recommendations
weight: 4
prev: /scanstation/config
---
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

@ -0,0 +1,71 @@
---
title: Scannerstation Installation
weight: 2
prev: /scanstation
next: /scanstation/config
---
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

@ -0,0 +1,71 @@
---
title: Scannerstation Installation
weight: 2
prev: /scanstation
next: /scanstation/config
---
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,7 +1,17 @@
# Über den Selfservice
---
linkTitle: "Selfservice"
title: Einleitung
weight: 1
prev: /
next: /selfservice/orgs
cascade:
type: docs
---
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
@ -10,4 +20,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,23 @@
---
linkTitle: "Selfservice"
title: Introduction
weight: 1
prev: /
next: /selfservice/orgs
cascade:
type: docs
---
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

@ -0,0 +1,35 @@
---
title: Selfservice für Organisationen
weight: 1
prev: /selfservice
---
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

@ -0,0 +1,34 @@
---
title: Selfservice for organizations
weight: 1
prev: /selfservice
---
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,11 +1,17 @@
# Einleitung
---
linkTitle: "Nutzerdokumentation"
title: Einleitung
cascade:
type: docs
---
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 <router-link to="../admins">Admin</router-link> Bereich.
Solltest du an der Installation oder Konfiguration interessiert sein schau doch mal in den [Admin](../admin) 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.

View File

@ -1,11 +1,18 @@
# Introduction
---
linkTitle: "Nutzerdokumentation"
title: Einleitung
cascade:
type: docs
---
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 <router-link to="../admins">admins section</router-link>.
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,18 +1,25 @@
# Läuferkarten
---
title: Läuferkarten
weight: 9
---
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 dienen dazu [Trackscans](../scans) für [Läufer:innen](../runners) durch [Scannerstationen](../scanstations) 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.
@ -28,34 +35,40 @@ 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.

74
content/user/cards.en.md Normal file
View File

@ -0,0 +1,74 @@
---
title: Runner Cards
weight: 9
---
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,30 +1,38 @@
# Kontakte
---
title: Kontakte
weight: 5
---
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.
Kontakte dienen dem Customer Relation Management (CRM) und können beliebig vielen [Teams](../teams) und [Orgs](../teams) 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

@ -0,0 +1,38 @@
---
title: Contacts
weight: 5
---
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,38 +1,47 @@
# Sponsoring-Erklärungen
---
title: Sponsoring-Erklärungen
weight: 10
---
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.
Das System kann für beliebige [Läufer:innen](../runners), [Teams](../teams) oder ganze [Organisationen](../orgs) 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

@ -0,0 +1,47 @@
---
title: Sponsorship Declarations
weight: 10
---
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,9 +1,13 @@
# Sponsorings
---
title: Sponsorings
weight: 9
---
Sponsorings können entweder Festbetragsspenden oder Kilometerspenden sein.
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.
Kilometerspenden verbinden [Läufer:innen](../runners) mit [Sponsor:innen](../donors), 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.
@ -11,27 +15,34 @@ 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.
@ -40,16 +51,20 @@ 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

@ -0,0 +1,70 @@
---
title: Donations
weight: 9
---
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,9 +1,13 @@
# Sponsor:innen
---
title: Sponsor:innen
weight: 8
---
Sponsor:innen sind die Spender, die mit einen Festbetrag oder eine Kilometerspende den Lauf für Kaya! unterstützen.
Zusammen mit den <router-link to="./donations">Sponsorings</router-link> bilden sie das Herzstück des Spendenmanagement und der Spendenverrechnung.
Zusammen mit den [Sponsorings](../donations) 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.
@ -15,6 +19,7 @@ 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.
@ -23,22 +28,27 @@ 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.

54
content/user/donors.en.md Normal file
View File

@ -0,0 +1,54 @@
---
title: Donors
weight: 8
---
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.

215
content/user/import.de.md Normal file
View File

@ -0,0 +1,215 @@
---
title: Läuferimport
weight: 7
---
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 %}}

215
content/user/import.en.md Normal file
View File

@ -0,0 +1,215 @@
---
title: Runner Import
weight: 7
---
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,36 +1,48 @@
# 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 <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.
### 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.
---
title: Organisationen
weight: 3
---
{{< callout type="info" >}}
Solltest du dich für den Selfservice für Orgs interessieren findest du die Dokumentation zu [hier](../../selfservice/orgs).
{{< /callout >}}
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).
## 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.
### 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.

48
content/user/orgs.en.md Normal file
View File

@ -0,0 +1,48 @@
---
title: Organizations
weight: 3
---
{{< 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,54 +1,67 @@
# 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 <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.
Von hier aus kannst du einzelne Läufer:innen hinzufügen, bearbeiten oder löschen.
Um die Suche nach einzelnen Läufer:innen zu erleichtern gibt es einen Filter nach Teams und Organisationen.
Wenn du mehrere Teams/Organisationen in den Filter packst werden dir alle Läufer:innen angezeigt, die in einem/r der Teams/Organisationen registriert sind angezeigt.
Ebenso gibt es eine Suchfunktion mit Hilfe derer du nach Läufernamen, -IDs und Gruppen (Teams/Organisationen) suchen kannst.
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
* `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
## Aktionen
### Anlegen
> 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.
Dabei musst du einen Vornamen, Nachnamen und die Gruppe (Team/Organisation) festlegen.
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.
### 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 <router-link to="./runner_import">hier</router-link>
---
title: Läufer:innen
weight: 6
---
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ü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.
Von hier aus kannst du einzelne Läufer:innen hinzufügen, bearbeiten oder löschen.
Um die Suche nach einzelnen Läufer:innen zu erleichtern gibt es einen Filter nach Teams und Organisationen.
Wenn du mehrere Teams/Organisationen in den Filter packst werden dir alle Läufer:innen angezeigt, die in einem/r der Teams/Organisationen registriert sind angezeigt.
Ebenso gibt es eine Suchfunktion mit Hilfe derer du nach Läufernamen, -IDs und Gruppen (Teams/Organisationen) suchen kannst.
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
* `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
## Aktionen
### Anlegen
{{< callout type="warning" >}}
Um eine Läufer:in anzulegen musst du vorher eine Organisation und/oder ein Team anlegen.
{{< /callout >}}
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.
Dabei musst du einen Vornamen, Nachnamen und die Gruppe (Team/Organisation) festlegen.
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.
### 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).

View File

@ -0,0 +1,67 @@
---
title: Runners
weight: 6
---
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,15 +1,19 @@
# Scans
---
title: Scans
weight: 12
---
Scans sind das Herzstück der Kilometerzählung - sie verbinden <router-link to="./runners">Läufer:innen</router-link> mit zurückgeleter Distantz.
Scans sind das Herzstück der Kilometerzählung - sie verbinden [Läufer:innen](../runners) 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 <router-link to="./tracks">Track</router-link> verbunden, von dem die Distanz abgeleitet wird.
Die Trackscans sind immer Fest mit einer Läufer:in und einem [Track](../tracks) 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`.
@ -18,25 +22,31 @@ 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.

52
content/user/scans.en.md Normal file
View File

@ -0,0 +1,52 @@
---
title: Scans
weight: 12
---
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,15 +1,26 @@
# Scannerstationen
> Die Doku zur Nutzung der <router-link to="../scanstations">Scannerstationen gibt es hier</router-link>
---
title: Scannerstationen
weight: 13
---
Scannerstationen sind erstellen Scans für Läuferkarten auf <router-link to="./tracks">Tracks</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).
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
> 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!
{{< 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 >}}
Um eine neue Scannerstation anzulegen öffne im Läufersystem die Seite `Scannerstationen`.
Über den Button `Station erstellen` kannst du eine neue Scanerstation erstellen.
@ -22,23 +33,31 @@ 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
> Achtung: Wir empfehlen Stationen mit Scans nie zu löschen sondern einfach zu deaktivieren!
{{< callout type="error" >}}
Wir empfehlen Stationen mit Scans nie zu löschen sondern einfach zu deaktivieren!
{{< /callout >}}
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

@ -0,0 +1,63 @@
---
title: Scanner Stations
weight: 13
---
{{< 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,35 +1,45 @@
# 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 <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
> 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.
### 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.
---
title: Teams
weight: 4
---
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).
## Anlegen
{{< callout type="warning" >}}
Achtung: Um ein Team anzulegen musst du vorher die Mutter-Organisation für das Team anlegen.
{{< /callout >}}
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.
### 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.

45
content/user/teams.en.md Normal file
View File

@ -0,0 +1,45 @@
---
title: Teams
weight: 4
---
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,19 +1,25 @@
# Tracks
---
title: Tracks
weight: 11
---
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.

25
content/user/tracks.en.md Normal file
View File

@ -0,0 +1,25 @@
---
title: Tracks
weight: 11
---
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`.

52
content/user/users.de.md Normal file
View File

@ -0,0 +1,52 @@
---
title: Nutzer:innen
weight: 2
---
{{< 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, du sie hast auf den Link in der Mail klicken
### 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 %}}

52
content/user/users.en.md Normal file
View File

@ -0,0 +1,52 @@
---
title: Users
weight: 2
---
{{< 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 %}}

3
data/icons.yaml Normal file

File diff suppressed because one or more lines are too long

View File

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

5
go.mod Normal file
View File

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

2
go.sum Normal file
View File

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

2
i18n/de.yaml Normal file
View File

@ -0,0 +1,2 @@
editThisPage: "Diese Seite bearbeiten →"
copyright: 'Erstellt von <a href="https://odit.services/?ref=lfk-docs" target="_blank" rel="noreferrer" style="color:magenta !important; font-weight: bold;">ODIT.Services</a> mit ❤️, <a href="https://gohugo.io/" rel="noreferrer" target="_blank" style="color: rgb(63, 198, 250); font-weight: bold;">Hugo</a> und <a href="https://github.com/imfing/hextra" rel="noreferrer" target="_blank" style="color: rgb(51, 186, 145); font-weight: bold;">dem Hextra Theme</a><br>Entwickelt für den <a href="https://lauf-fuer-kaya.de" target="_blank" rel="noreferrer" style="color: #ebb951; font-weight: bold;">Lauf für Kaya! Spendenlauf</a> <br><a href="https://lauf-fuer-kaya.de/impressum" target="_blank" rel="noreferrer">Impressum</a> | <a href="https://lauf-fuer-kaya.de/datenschutz" target="_blank" rel="noreferrer">Datenschutz</a>'

8
i18n/en.yaml Normal file
View File

@ -0,0 +1,8 @@
user: User
admin: Administrators
selfservice: Selfservice
scanstation: Scaning Stations
beamershow: Beamer Show
search: Search
editThisPage: "Edit this page →"
copyright: 'Made by <a href="https://odit.services/?ref=lfk-docs" target="_blank" rel="noreferrer" style="color:magenta !important; font-weight: bold;">ODIT.Services</a> with ❤️, <a href="https://gohugo.io/" rel="noreferrer" target="_blank" style="color: rgb(63, 198, 250); font-weight: bold;">Hugo</a> and <a href="https://github.com/imfing/hextra" rel="noreferrer" target="_blank" style="color: rgb(51, 186, 145); font-weight: bold;">the Hextra theme</a><br>Developed for the <a href="https://lauf-fuer-kaya.de" target="_blank" rel="noreferrer" style="color: #ebb951; font-weight: bold;">Lauf für Kaya! charity run</a> <br><a href="https://lauf-fuer-kaya.de/impressum" target="_blank" rel="noreferrer">Imprint</a> | <a href="https://lauf-fuer-kaya.de/datenschutz" target="_blank" rel="noreferrer">Privacy</a>'

View File

@ -0,0 +1,49 @@
{{- $enableFooterSwitches := .Scratch.Get "enableFooterSwitches" | default false -}}
{{- $displayThemeToggle := site.Params.theme.displayToggle | default true -}}
{{- $footerSwitchesVisible := and $enableFooterSwitches (or hugo.IsMultilingual $displayThemeToggle) -}}
{{- $copyrightSectionVisible := or (.Site.Params.footer.displayPoweredBy | default true) .Site.Params.footer.displayCopyright -}}
{{- $copyright := (T "copyright") | default "© 2024 Hextra." -}}
{{- $poweredBy := (T "poweredBy") | default "Powered by Hextra" -}}
{{- $footerWidth := "hx-max-w-screen-xl" -}}
{{- with .Site.Params.footer.width -}}
{{ if eq . "wide" -}}
{{ $footerWidth = "hx-max-w-[90rem]" -}}
{{ else if eq . "full" -}}
{{ $footerWidth = "max-w-full" -}}
{{ end -}}
{{- end -}}
<footer class="hextra-footer hx-bg-gray-100 hx-pb-[env(safe-area-inset-bottom)] dark:hx-bg-neutral-900 print:hx-bg-transparent">
{{- if $footerSwitchesVisible -}}
<div class="hx-mx-auto hx-flex hx-gap-2 hx-py-2 hx-px-4 {{ $footerWidth }}">
{{- partial "language-switch.html" (dict "context" .) -}}
{{- with $displayThemeToggle }}{{ partial "theme-toggle.html" }}{{ end -}}
</div>
{{- if or hugo.IsMultilingual $displayThemeToggle -}}
<hr class="dark:hx-border-neutral-800" />
{{- end -}}
{{- end -}}
{{- if $copyrightSectionVisible -}}
<div
class="{{ $footerWidth }} hx-mx-auto hx-flex hx-justify-center hx-py-1 hx-pl-[max(env(safe-area-inset-left),1.5rem)] hx-pr-[max(env(safe-area-inset-right),1.5rem)] hx-text-gray-600 dark:hx-text-gray-400 md:hx-justify-start"
>
<div class="hx-flex hx-w-full hx-flex-col sm:hx-items-start">
{{- if .Site.Params.footer.displayCopyright }}<div class="hx-mt-1 hx-text-xs">{{ $copyright | markdownify }}</div>{{- end -}}
</div>
</div>
{{- end -}}
</footer>
{{- define "theme-credit" -}}
<a class="hx-flex hx-text-sm hx-items-center hx-gap-1 hx-text-current" target="_blank" rel="noopener noreferrer" title="Hextra GitHub Homepage" href="https://github.com/imfing/hextra">
<span>
{{- . | markdownify -}}
{{- if strings.Contains . "Hextra" -}}
{{- partial "utils/icon.html" (dict "name" "hextra" "attributes" `height=1em class="hx-inline-block ltr:hx-ml-1 rtl:hx-mr-1 hx-align-[-2.5px]"`) -}}
{{- end -}}
</span>
</a>
{{- end -}}

View File

@ -1,113 +0,0 @@
# vuepress-plugin-flexsearch
**Author**: Ahmad Mostafa
**Repo**: https://github.com/z3by/vuepress-plugin-flexsearch
**License**: MIT
**Description**: Next-Generation full text search library for Vuepress
## License Text
MIT License
Copyright (c) 2020 Ahmad Mostafa
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
# vuepress-theme-default-prefers-color-scheme
**Author**: tolking <qw13131wang@gmail.com>
**Repo**: https://github.com/tolking/vuepress-theme-default-prefers-color-scheme
**License**: MIT
**Description**: add prefers-color-scheme for vuepress default theme
## License Text
The MIT License (MIT)
Copyright 2019 tolking <qw13131wang@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# @odit/license-exporter
**Author**: ODIT.Services
**Repo**: https://git.odit.services/odit/license-exporter
**License**: MIT
**Description**: A simple license crawler for crediting open source work
## License Text
MIT License Copyright (c) 2020 ODIT.Services (info@odit.services)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is furnished
to do so, subject to the following conditions:
The above copyright notice and this permission notice (including the next
paragraph) shall be included in all copies or substantial portions of the
Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
# vuepress
**Author**: Evan You
**Repo**: https://github.com/vuejs/vuepress
**License**: MIT
**Description**: Minimalistic doc generator with Vue component based layout system
## License Text
The MIT License (MIT)
Copyright (c) 2018-present, Yuxi (Evan) You
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

View File

@ -1,47 +0,0 @@
events {
}
http {
include mime.types;
sendfile on;
server {
root /usr/share/nginx/html;
location / {
try_files $uri $uri/ /index.html;
}
# --- Brotli
brotli on;
brotli_comp_level 6;
brotli_static on;
brotli_types application/atom+xml application/javascript application/json application/rss+xml application/vnd.ms-fontobject application/x-font-opentype application/x-font-truetype application/x-font-ttf application/x-javascript application/xhtml+xml application/xml font/eot font/opentype font/otf font/truetype image/svg+xml image/vnd.microsoft.icon image/x-icon image/x-win-bitmap text/css text/javascript text/plain text/xml;
# --- GZIP
gzip on;
gzip_disable "msie6";
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types application/javascript
application/rss+xml
application/vnd.ms-fontobject
application/x-font
application/x-font-opentype
application/x-font-otf
application/x-font-truetype
application/x-font-ttf
application/x-javascript
application/xhtml+xml
application/xml
font/opentype
font/otf
font/ttf
image/svg+xml
image/x-icon
text/css
text/javascript
text/plain
text/xml;
}
}

View File

@ -1,44 +0,0 @@
{
"name": "@odit/lfk-docs",
"version": "0.0.1",
"description": "The documentation for the LfK! 'Läufersystem'.",
"main": "index.js",
"author": {
"name": "ODIT.Services",
"email": "info@odit.services",
"url": "https://odit.services"
},
"contributors": [
{
"name": "Philipp Dormann",
"email": "philipp@philippdormann.de",
"url": "https://philippdormann.de"
},
{
"name": "Nicolai Ort",
"email": "info@nicolai-ort.com",
"url": "https://nicolai-ort.com"
}
],
"repository": {
"type": "git",
"url": "git@git.odit.services:lfk/docs.git"
},
"scripts": {
"dev": "vuepress dev src",
"build": "vuepress build src",
"licenses:export": "license-exporter --markdown"
},
"license": "CC-BY-NC-SA-4.0",
"devDependencies": {
"@odit/license-exporter": "0.0.12",
"vuepress": "1.9.9"
},
"dependencies": {
"vuepress-plugin-flexsearch": "0.3.0",
"vuepress-theme-default-prefers-color-scheme": "2.0.0"
},
"volta": {
"node": "16.15.1"
}
}

View File

@ -1,15 +0,0 @@
<template>
<p class="demo">
{{ msg }}
</p>
</template>
<script>
export default {
data () {
return {
msg: 'Hello this is <Foo-Bar>'
}
}
}
</script>

View File

@ -1,3 +0,0 @@
<template>
<p class="demo">This is another component</p>
</template>

View File

@ -1,15 +0,0 @@
<template>
<p class="demo">
{{ msg }}
</p>
</template>
<script>
export default {
data() {
return {
msg: 'Hello this is <demo-component>'
}
}
}
</script>

View File

@ -1,172 +0,0 @@
const { description } = require('../../package')
module.exports = {
locales: {
'/': {
lang: 'de-DE',
title: 'LfK! Dokumentation',
description: 'Dokumentation für das Lauf für Kaya! Läufersystem'
},
'/en/': {
lang: 'en-US',
title: 'LfK! Documentation',
description: 'The official documentation for the LfK! "Läufersystem"'
}
},
head: [
['meta', { name: 'theme-color', content: '#3eaf7c' }],
['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }]
],
theme: 'default-prefers-color-scheme',
themeConfig: {
repo: '',
editLinks: false,
docsDir: '',
editLinkText: '',
lastUpdated: false,
locales: {
'/': {
selectText: 'Sprachen',
label: 'Deutsch (German)',
nav: [
{
text: 'Für Nutzer',
link: '/users/',
},
{
text: 'Für Admins',
link: '/admins/'
},
{
text: 'Über den Selfservice',
link: '/selfservice/'
},
{
text: 'Scannerstationen',
link: '/scanstations/'
},
{
text: 'Beamershow',
link: '/beamershow/'
},
{
text: 'Source Code',
link: 'https://git.odit.services/lfk'
}
],
sidebar: {
'/users/': [
{
title: 'Nutzerdokumentation',
collapsable: false,
children: [
'',
'accounts',
'organizations',
'teams',
'runners',
'runner_import',
'donors',
'donations',
'cards',
'sponsoring_contracts',
'tracks',
'scans',
'scanstations'
]
}
],
'/admins/': [
{
title: 'Administrative Dokumentation',
collapsable: false,
children: [
'',
'quickstart',
'users',
'usergroups'
]
}
],
'/selfservice/': [
{
title: 'Selfservice Dokumentation',
collapsable: false,
children: [
'',
'org_selfservice'
]
}
],
'/scanstations/': [
{
title: 'Scannerstation Dokumentation',
collapsable: false,
children: [
'',
'install',
'config',
'config_scanners',
'hardware'
]
}
],
'/beamershow/': [
{
title: 'Beamershow Dokumentation',
collapsable: false,
children: [
'',
'config'
]
}
],
}
},
'/en/': {
selectText: 'Languages',
label: 'English',
nav: [
{
text: 'For Users',
link: '/en/users/',
},
{
text: 'For Admins',
link: '/en/admins/'
},
{
text: 'Source Code',
link: 'https://git.odit.services/lfk'
}
],
sidebar: {
'/en/users/': [
{
title: 'User documentation',
collapsable: false,
children: [
''
]
}
],
'/en/admins/': [
{
title: 'Admin documentation',
collapsable: false,
children: [
''
]
}
],
}
}
}
},
plugins: [
'@vuepress/plugin-back-to-top',
'@vuepress/plugin-medium-zoom',
'flexsearch'
]
}

View File

@ -1,14 +0,0 @@
/**
* Client app enhancement file.
*
* https://v1.vuepress.vuejs.org/guide/basic-config.html#app-level-enhancements
*/
export default ({
Vue, // the version of Vue being used in the VuePress app
options, // the options for the root Vue instance
router, // the router instance for the app
siteData // site metadata
}) => {
// ...apply enhancements for the site.
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

View File

@ -1,8 +0,0 @@
/**
* Custom Styles here.
*
* refhttps://v1.vuepress.vuejs.org/config/#index-styl
*/
.home .hero img
max-width 450px!important

View File

@ -1,10 +0,0 @@
/**
* Custom palette here.
*
* refhttps://v1.vuepress.vuejs.org/zh/config/#palette-styl
*/
$accentColor = #3eaf7c
$textColor = #2c3e50
$borderColor = #eaecef
$codeBgColor = #282c34

View File

@ -1,26 +0,0 @@
# 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.

View File

@ -1,19 +0,0 @@
# 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,3 +0,0 @@
# Admins
TODO:

View File

@ -1,15 +0,0 @@
---
home: true
heroImage: /logo.png
tagline: The documentation for the LfK! "Läufersystem".
actionText: Quickstart for users →
actionLink: ./users/
# features:
# - title: Feature 1 Title
# details: Feature 1 Description
# - title: Feature 2 Title
# details: Feature 2 Description
# - title: Feature 3 Title
# details: Feature 3 Description
footer: Made by ODIT.Services with ❤️
---

View File

@ -1,18 +0,0 @@
---
home: true
heroImage: /logo.png
tagline: Die Dokumentation für das LfK! Läufersystem
actionText: Schnellstart für Nutzer →
actionLink: /users/
# features:
# - title: Feature 1 Title
# details: Feature 1 Description
# - title: Feature 2 Title
# details: Feature 2 Description
# - title: Feature 3 Title
# details: Feature 3 Description
---
::: slot footer
Made by [ODIT.Services](https://odit.services/?ref=lfk-docs) with ❤️ <br>
Developed for [Lauf für Kaya](https://lauf-fuer-kaya.de) | [Imprint](https://lauf-fuer-kaya.de/impressum) | [Privacy](https://lauf-fuer-kaya.de/datenschutz)
:::

View File

@ -1,13 +0,0 @@
# Ü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,35 +0,0 @@
# 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,12 +0,0 @@
# 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,22 +0,0 @@
# 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,109 +0,0 @@
# 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

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