Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Handball AWK Webtool

Web-Tool für Trainer und J+S-Coaches: erzeugt aus einem Spielerplus-Anwesenheiten-Export und den NDS-Exporten (Teilnehmende + Leiter) die zwei offiziellen J+S-Importdateien:

  1. aktivitaeten_jugendausbildung.csv – Aktivitäten-Import
  2. anwesenheitskontrolle_jugendausbildung.csv – AWK-Import (Anwesenheitskontrolle)

Damit entfällt das manuelle Abtippen der Anwesenheitskontrolle in der Nationalen Datenbank Sport (NDS).

Live-Instanz der SG Wahlen Laufen: https://awk.choli41.ch

Für Trainer

Kurzanleitung: docs/ANLEITUNG.md – drei Dateien wählen, Einstellungen prüfen, erzeugen, zwei Dateien herunterladen, im NDS importieren. NDS-Exporte funktionieren als CSV und als Excel (.xlsx).

Datenschutz (revDSG)

Die Eingabedateien enthalten besonders schützenswerte Personendaten, teils von Minderjährigen. Deshalb – nicht verhandelbar (Details: docs/DATENSCHUTZ.md):

  • Verarbeitung nur im Browser – kein Upload, kein Backend, kein Server-Roundtrip.
  • Keine Persistenz – nichts wird gespeichert; Seite schliessen = alles weg.
  • Keine Datenabflüsse – kein Tracking, keine CDNs zur Laufzeit; Schriften und Logo sind lokal gebundelt.
  • Datensparsamkeit – aus den NDS-Exporten werden nur Personennummer, Name und Vorname gelesen; AHV-Nummer, Adresse, Geburtsdatum etc. werden nie verarbeitet.

Eigene Instanz betreiben

Reine statische Site ohne Build-Schritt – der Ordner web/ ist das Deployment-Artefakt (z. B. Cloudflare Pages, GitHub Pages, beliebiger Webserver). Anleitung: docs/DEPLOYMENT.md.

Für den eigenen Verein anpassen:

  • Standardwerte (Trainingsort, -zeiten, -dauer) im CONFIG-Block von web/js/logic.js – alle Werte sind auch zur Laufzeit im UI einstellbar.
  • Eigenes Logo unter web/assets/logo-sgwl.png ablegen. Das SGWL-Logo ist bewusst nicht im Repo enthalten (gehört dem Verein); fehlt die Datei, blendet die App das Bild aus und zeigt nur den Schriftzug.
  • Bei Änderungen an CSS/JS das ?v= in web/index.html hochzählen (Cache-Busting).

Entwicklung

web/                    statische App (Vanilla JS, keine Abhängigkeiten)
  js/csv.js             CSV-Parser/-Writer (kompatibel zum Python-csv-Modul)
  js/xlsx.js            minimaler XLSX-Reader (ZIP + DecompressionStream)
  js/logic.js           Fachlogik – 1:1-Port des Referenz-Scripts
  js/app.js             UI-Anbindung
reference/              Python-Referenz-Script = SOURCE OF TRUTH der Fachlogik
tests/                  erfundene Fixtures + Paritätstest
docs/                   Anleitung, Datenformate, Datenschutz, Deployment

Der zentrale Qualitätsanker: Die JS-Ausgaben müssen byte-identisch zu den Ausgaben des Python-Referenz-Scripts sein. Prüfen mit:

node tests/parity.mjs      # braucht Node 18+ und Python 3

Lokal starten: python -m http.server 8123 --directory web und http://localhost:8123 öffnen (die Seite läuft auch direkt via file://).

Erweitern (andere Anwesenheits-Quellen)

Das Tool ist so gebaut, dass weitere Quellsysteme neben Spielerplus ergänzt werden können. Wegleitung: CONTRIBUTING.md.

Lizenz

MIT – siehe LICENSE. Ausnahmen: SGWL-Logo (Rechte beim Verein) und Schrift Lato (SIL OFL 1.1, web/fonts/OFL.txt).

About

J+S-Importdateien (Aktivitäten + AWK) aus Spielerplus-Anwesenheiten erzeugen – läuft vollständig im Browser, keine Datenübertragung

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages