Compare commits

..

9 Commits

118 changed files with 1312 additions and 529 deletions

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

122
config.yaml Normal file
View File

@ -0,0 +1,122 @@
# 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
# sidebar:
# - identifier: more
# name: Mehr
# params:
# type: separator
# weight: 2
# - identifier: source
# name: "Source Code"
# url: "https://git.odit.services/lfk"
params:
description: Dokumentation für das Lauf für Kaya! Läufersystem.
navbar:
displayTitle: true
displayLogo: true
logo:
path: logo.png
dark: logo.png
# width: 40
# height: 20
# link: /
width: wide
page:
width: normal
theme:
default: system
displayToggle: true
footer:
enable: true
displayCopyright: false
displayPoweredBy: false
width: normal
search:
enable: true
type: flexsearch
flexsearch:
# index page by: content | summary | heading | title
index: content
# full | forward | reverse | strict
# https://github.com/nextapps-de/flexsearch/#tokenizer-prefix-search
tokenize: forward
highlight:
copy:
enable: true
display: hover
comments:
enable: false

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

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

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

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

View File

@ -0,0 +1,27 @@
---
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 [Konfiguration](./config)
## Seiten/Informationen
> Die Beamershow umfasst folgende Seiten/Abschnitte
* Allgemeines
* 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

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

@ -0,0 +1,18 @@
---
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://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.
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

@ -0,0 +1,48 @@
---
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://lauf-fuer-kaya.de`).
### Client-Token
Als nächstes musst du noch einen Client Token gefragt.
Die Anlage ist unter [Token anlegen](/user/scanstation) beschrieben.
### Bestätigen
Solltest du dich beim API-Endpunkt vertippt haben kannst du anstatt eines Client Token auch `rst` eingeben, um diesen nochmal zu setzen.
Sobald du den Token eingegeben hast kannst du auf den Button "Konfigurieren" klicken und der Scanclient wird gestartet.
{{% /steps %}}
## Konfiguration ändern
{{% steps %}}
### Config-Modus starten
Tippe `cnf` in das Läuferkarten-Feld und bestätige mit Enter.
### Config-Modus
Jetzt öffnet sich die Konfigurationsübersicht, in der alle Details zur Konfigurierten Scannerstation aufgelistet sind.
### Einstellungen speichern
Wenn du fertig bist kannst du über den Button "Back to Scanner" wieder in den Scan-Modus wechseln.
### Abmelden
Wenn du die Software vom Läufersystem abmelden oder den Token ändern willst klicke auf "Log out from this Client".
{{% /steps %}}

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/scanstation).
### 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,19 @@
---
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

@ -0,0 +1,23 @@
---
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
* Stammdaten: Vorname, Mittelname, Nachname, E-Mail Adresse, Telefonnummer
* Rundenzeiten
* 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!

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 %}}

17
content/user/_index.de.md Normal file
View File

@ -0,0 +1,17 @@
---
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 [Admin](/admins) 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.

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=

6
i18n/en.yaml Normal file
View File

@ -0,0 +1,6 @@
user: User
admin: Administrators
selfservice: Selfservice
scanstation: Scaning Stations
beamershow: Beamer Show
search: Search

View File

@ -0,0 +1,4 @@
<div style="text-align: center; width: 100%;"></div>
Made by <a href="https://odit.services/?ref=lfk-docs" target="_blank" rel="noreferrer">ODIT.Services</a> with ❤️ <br>
Developed for <a href="https://lauf-fuer-kaya.de" target="_blank" rel="noreferrer">Lauf für Kaya</a> | <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>
</div>

142
legacy/.gitignore vendored Normal file
View File

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

View File

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

View File

@ -1,34 +1,34 @@
# @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
# @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

View File

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

View File

@ -1,47 +1,47 @@
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;
}
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

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

View File

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 20 KiB

View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

View File

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 42 KiB

View File

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

View File

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

View File

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

View File

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

View File

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

View File

@ -1,54 +1,54 @@
# 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
# 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>

View File

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

View File

@ -0,0 +1,11 @@
Vorname;Mittelname;Nachname;Klasse
Lorem ;Impum;dolor;1A
sit;;amet;1A
consetetur;sadipscing;elitr;1A
Max;;Mustermann;1A
Maxime;;Mustermann;2A
Peter;Emanuel ;Lustig;2A
Robert;;Schmidtt;2A
Guten;;Morgen;2A
Wunderschönen;Guten;Morgen;3A
Tolle;;Ümläütä;3A
1 Vorname Mittelname Nachname Klasse
2 Lorem Impum dolor 1A
3 sit amet 1A
4 consetetur sadipscing elitr 1A
5 Max Mustermann 1A
6 Maxime Mustermann 2A
7 Peter Emanuel Lustig 2A
8 Robert Schmidtt 2A
9 Guten Morgen 2A
10 Wunderschönen Guten Morgen 3A
11 Tolle Ümläütä 3A

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