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:
aktivitaeten_jugendausbildung.csv– Aktivitäten-Importanwesenheitskontrolle_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
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).
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.
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.pngablegen. 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=inweb/index.htmlhochzählen (Cache-Busting).
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 3Lokal starten: python -m http.server 8123 --directory web und
http://localhost:8123 öffnen (die Seite läuft auch direkt via file://).
Das Tool ist so gebaut, dass weitere Quellsysteme neben Spielerplus ergänzt
werden können. Wegleitung: CONTRIBUTING.md.
MIT – siehe LICENSE. Ausnahmen: SGWL-Logo (Rechte beim Verein)
und Schrift Lato (SIL OFL 1.1, web/fonts/OFL.txt).