Koordinationsleiter

So funktioniert die Koordinationsleiter-App

Über 90 Übungen für die Koordinationsleiter (Agility Ladder), jede als nummeriertes Schrittdiagramm und als Animation mit Tempo und Klick, dazu Trainingspläne zum Abspielen und Drucken, eigene Übungen und ein Marktplatz. Diese Seite erklärt die Bedienung für Trainerinnen und Trainer, das Übungsformat für alle, die eigene Übungen bauen, und was wo gespeichert wird.

Grundidee

Eine Übung ist eine Schrittfolge, der Rest wird berechnet.

Jede Übung ist ein kleines Datenobjekt: welche Füße, in welcher Reihenfolge, in welches Feld der Leiter. Aus dieser Beschreibung erzeugt die App das Schrittdiagramm mit Nummern, die Animation, die Schritttexte („rechts rein“, „Sprung“) und die Klicks. Darum sieht jede Übung gleich aus, lässt sich spiegeln, in jedem Tempo abspielen, auf jede Leiterlänge umrechnen und ohne Grafikprogramm neu anlegen.

Ohne Anmeldung

Katalog, Animationen, Pläne, Druck und eigene Übungen laufen komplett im Browser. Nichts wird übertragen.

Mit Konto (optional)

Eigene Übungen und Pläne online sichern, auf dem Marktplatz veröffentlichen, in Gruppen teilen.

Deutsch und Englisch

Knopf „EN/DE“ im Kopf schaltet alles um, auch Übungsnamen, Beschreibungen und Schritttexte.

Die Perspektive ist die Draufsicht wie in Trainer-Diagrammen: Leiter senkrecht, Start unten, Bewegung nach oben. Linker Fuß blau (L), rechter Fuß orange (R). Kopf, Arme und Ball erscheinen nur, wenn die Übung sie braucht.

Übung finden und filtern

Die Startseite zeigt den Katalog als Karten mit kleinem Diagramm, Name, Schwierigkeit und Kategorien. Drei Filter lassen sich kombinieren, dazu eine Suche:

Filter wirken zusammen als „und“: Sprünge + Basketball + mittel zeigt nur Übungen, die alle drei Bedingungen erfüllen. Die Zahl unter den Filtern nennt, wie viele übrig sind. Die Hilfe in der App (#/hilfe) zeigt zwei Matrizen, wie viele Übungen es je Sportart und Kategorie pro Stufe gibt.

Auf dem Handy: nach links oder rechts wischen wechselt die Kategorie; in der Übungsansicht wechselt es zur nächsten oder vorherigen Übung der zuletzt gesehenen Liste.

Bild, Animation und Ton

Eine Übung öffnen zeigt oben die Bühne, daneben die Schrittliste, darunter Beschreibung, Tipps und Varianten.

Die Einstellungen merken sich außerdem Standardansicht (Bild oder Animation), Schleife, Ton, Design (hell, dunkel, System) und Sprache. Wer „Bewegung reduzieren“ im Betriebssystem eingeschaltet hat, bekommt das Bild als Standard.

Trainingsplan anlegen und abspielen

Ein Plan (#/plaene) ist eine geordnete Liste von Übungen mit je Führungsfuß, Tempo, Dauer und Pause bis zur nächsten Übung.

Vorlagen

Die Plan-Seite bietet fertige Pläne aus dem Katalog: den ganzen Katalog, je Schwierigkeit, je Kategorie und Stufe, je Sportart. Vorlagen sind schreibgeschützt und lassen sich ansehen, starten, drucken oder „Als eigenen Plan kopieren“. Das Dropdown filtert nach Eigene, Schwierigkeit, Sportart, Kategorie.

Eigenen Plan bauen

  1. „Neuer Plan“ oder eine Vorlage kopieren; Namen eingeben.
  2. Übungen über das Suchfeld hinzufügen oder aus einer Übungsansicht mit „Zum Plan hinzufügen“.
  3. Reihenfolge mit dem Griff ⋮⋮ ziehen (Maus und Finger) oder mit den Pfeilen.
  4. Je Übung in der Zeile: Fuß-Chip (rechts zuerst, links zuerst, beide Seiten), Tempo-Regler, Dauer als Durchgänge durch die Leiter oder als Sekunden, Pause.
  5. Der Block „Für alle Übungen“ setzt einen Wert für den ganzen Plan und zugleich als Standard für neue Pläne. Übungen, die davon abweichen, tragen einen Punkt „•“.

Beide Seiten (Standard): die Übung wird je Seite ausgeführt, abwechselnd rechts zuerst und links zuerst; eingestellte Durchgänge oder Sekunden gelten pro Seite. Bei symmetrischen Übungen entfällt das, der Editor zeigt „symmetrisch“.

Abspielen

„Start“ öffnet den Abspieler: Animation im Tempo der Übung, Countdown der Durchgänge oder Sekunden, in der Pause das Diagramm der nächsten Übung, Signal bei 3-2-1 und beim Seitenwechsel (wenn Ton an ist). Das Display bleibt wach. Übungen lassen sich überspringen; läuft der Plan bis „Geschafft!“, wird das Training im Protokoll gezählt (Abschnitt Premium).

Pläne liegen im Browser und lassen sich als Link teilen; wer den Link öffnet, bekommt den Plan in seine eigene Liste.

Drucken und PDF

Drei Druckansichten, immer hell und für A4 gesetzt. Die Ausgabe läuft über den Druckdialog des Browsers, dort steht „Als PDF speichern“ bereit, auch am Handy.

In der Druckleiste wechselt „Mit Erläuterungen“ (Diagramm, Beschreibung, Schrittfolge, Tipps) zu „Nur Grafik“ (Name und Diagramm, drei bis vier pro Zeile, gut für Aushänge). Seitenumbrüche laufen nie durch ein Diagramm.

Eigene Übung anlegen

„Neue Übung“ (Kategorie „Eigene“ oder #/neu) öffnet den Editor. Jede Katalog-Übung lässt sich außerdem mit „Bearbeiten (Kopie)“ als Vorlage in den Editor laden. Eigene Übungen erscheinen in der Kategorie „Eigene“, bekommen Vorschaubild, Animation, Ton und Druck wie alle anderen und lassen sich in Pläne aufnehmen.

Schritt für Schritt im grafischen Editor

  1. Grunddaten: Name eintragen (die Kennung wird daraus abgeleitet), Schwierigkeit, Kategorien und Sportarten als Chips wählen.
  2. Ablauf: Blickrichtung, Füße (beide, nur links, nur rechts), Felder pro Zyklus, Arme an oder aus, Ball (keiner, Hand, Fuß). „Felder pro Zyklus“ sagt, um wie viele Felder das Muster pro Durchlauf wandert: Zweier-Lauf 1, Einer-Lauf 2, Icky Shuffle 2.
  3. Zählzeiten: Jede Zeile der Liste ist eine Zählzeit. Für die gewählte zeigt das Leiterraster beide Füße nach dieser Zählzeit. Oben wählen, was ein Klick setzt (linker Fuß, rechter Fuß, beide = Sprung, Ball), dann auf ein Feld tippen: Spalte L oder R neben der Leiter, C im Feld; halbe Zeilen stehen für Positionen zwischen zwei Sprossen. „Anheben“ nimmt den Fuß vom Boden, „keinen Fuß bewegen“ lässt die Zählzeit nur für Arme oder Ball stehen. Mit „+ Zählzeit“, Duplizieren und den Pfeilen baut man den Zyklus; Armhaltung, Ball und Prellen, Blickrichtung, eigener Schritttext und Dauer erscheinen je nach Übung darunter.
  4. Vorschau: Rechts entsteht sofort das Schrittdiagramm oder die Animation mit Schrittliste; ein Klick auf einen Schritt wählt seine Zählzeit. Rote Meldungen nennen, was noch fehlt.
  5. Texte und Speichern: Beschreibung, Tipps und Varianten eintragen, dann „Speichern (im Browser)“ oder „Link teilen“. Eine Katalog-Übung als Ausgangspunkt gibt es über „Vorlage laden“.

Unter „JSON (für Fortgeschrittene)“ steht dieselbe Übung als Text, in beide Richtungen synchron; nur dort lassen sich Startpositionen, Winkel als Blickrichtung und eine feste Leiterlänge setzen. Die Vorschau aktualisiert sich live, Fehler werden unter dem Text genannt. Die vollständige Beschreibung aller Felder steht unten im Übungsformat.

Eigene Übungen liegen im Browser (localStorage). Wer sie dauerhaft sichern oder auf einem zweiten Gerät haben will, nutzt den Teilen-Link oder das Konto.

Teilen-Link: der Link ist die Datenbank

„Link teilen“ gibt es an jeder Übung, jedem Plan und im Editor. Die komplette Definition wird als Text in den Link geschrieben (Base64-URL-kodiert hinter #/teilen/… bzw. #/plan/teilen/…). Es wird nichts auf einem Server gespeichert; der Link lässt sich per Messenger oder Mail weitergeben.

Katalog-Übungen haben kurze, feste Adressen (#/u/<id>), Kategorien #/k/<id>, Sportarten #/s/<id>; die lassen sich wie jede Seite verlinken.

Konto, Online speichern, Marktplatz

Alles bisher Beschriebene geht ohne Konto. Das Konto (#/konto) ergänzt drei Dinge:

Anmeldung

Es gibt kein eigenes Passwort. Die Anmeldung läuft über einen Anbieter (derzeit Google; Facebook und netID sind vorbereitet). Gespeichert werden nur Anbieter-Kennung, Anzeigename, E-Mail und Bild-Adresse. Der Browser bekommt ein Sitzungs-Cookie, keine Zugangstoken. „Abmelden“ beendet die Sitzung, „Überall abmelden“ alle Sitzungen des Kontos.

Kein Aufruf ohne Handlung: Beim Start, in Übungen, Plänen und Einstellungen spricht die App nicht mit dem Server. Erst Login, Marktplatz öffnen, Suchen, Übernehmen, Speichern oder Veröffentlichen lösen Aufrufe aus.

Premium und Codes

Frei bleibt alles, was eine Einzelperson braucht. Premium richtet sich an Vereine, Schulen und Unternehmen und bietet:

FunktionKostenlosPremium
Katalog, Filter, Bild, Animation, Ton, Druckjaja
Eigene Übungen (grafischer Editor) und Trainingspläne im Browserja, unbegrenztja
Teilen-Links für Übungen und Plänejaja
Konto (Google), Marktplatz lesen und veröffentlichenjaja
Online speichern (auf anderen Geräten übernehmen)200 je Art2000 je Art
Gruppe beitreten, geteilte Pläne nutzen, Fortschritt freigebenjaja
Gruppe anlegen, Pläne mit der Gruppe teilenneinja
Trainer-Dashboard je Gruppeneinja
Trainingsprotokolllokal in diesem Browserauf allen Geräten, Abgleich über das Konto
Werbeplätzesichtbar (sobald Werbung eingerichtet ist; Buch-Code schaltet sie ab)keine
Gruppen

Gruppe anlegen, Beitrittscode verteilen, eigene Pläne mit allen Mitgliedern teilen (Plan-Editor → „Mit Gruppe teilen“). Beitreten und Pläne lesen ist für Mitglieder kostenlos.

Trainer-Dashboard

Je Gruppe: wer hat wann wie lange trainiert, Trainings je Woche und je Plan, Mitglieder ohne Training seit zwei Wochen. Nur für Mitglieder, die „Fortschritt mit dem Trainer teilen“ eingeschaltet haben.

Trainingsprotokoll

#/protokoll: Trainings dieser Woche, Serie, Minuten, Balken je Woche, meistgeübte Übungen, Verlauf, CSV-Export, Abgleich zwischen Geräten. Gezählt wird immer schon lokal, auch ohne Premium.

Mehr Speicher, keine Werbung

2000 statt 200 Online-Einträge; Werbeplätze verschwinden auf allen Geräten.

Abschluss und Kündigung laufen über Stripe (Konto → Premium → „Abo verwalten“ öffnet das Kundenportal). Der Preis steht im Konto; als Kleinunternehmer nach § 19 UStG wird keine Umsatzsteuer berechnet. Vor dem Abschluss bestätigst du mit einem Häkchen, dass Premium sofort beginnt und du die AGB und die Widerrufsbelehrung gelesen hast. Kündigen geht monatlich bzw. jährlich zum Ende des bezahlten Zeitraums: im Kundenportal oder jederzeit über den Kündigungsknopf „Verträge hier kündigen“ auf d-solve.de (§ 312k BGB) mit sofortiger Eingangsbestätigung per E-Mail.

Buch- und Aktionscodes

Unter #/code (Menü „Code einlösen“) lässt sich ein Code aus dem Buch oder einer Aktion einlösen. Vorteil derzeit: Werbefreiheit, je nach Code auch Premium für eine Anzahl Tage. Ohne Konto gilt der Vorteil in diesem Browser, mit Konto auf allen Geräten.

Feedback

Menü „Feedback“ (#/feedback): Art, Nachricht, optional E-Mail; geschützt durch Cloudflare Turnstile, verschickt an [email protected].

Referenz

Das Übungsformat

Eine Übung ist ein JSON-Objekt. Der Editor und der Server prüfen dieselben Regeln; alles, was hier nicht steht, wird ignoriert. Beispiel Icky Shuffle:

{
  "id": "icky-shuffle",
  "name": "Icky Shuffle",
  "aliases": ["Ickey Shuffle", "2 in 1 out"],
  "categories": ["vorwaerts", "kombination"],
  "sports": ["fussball", "football"],
  "difficulty": 2,
  "facing": "forward",
  "feet": ["l", "r"],
  "arms": false,
  "ball": null,
  "start": { "l": "-1L", "r": "-1L" },
  "cycle": {
    "fields": 2,
    "beats": [
      { "r": "0C" },
      { "l": "0C" },
      { "r": "0.5R" },
      { "l": "1C" },
      { "r": "1C" },
      { "l": "1.5L" }
    ]
  },
  "description": "…",
  "tips": ["…"],
  "variations": ["…"]
}

Positionen

Eine Position ist ein Text "<Feld><Seite>", z. B. "0C", "1L", "-1R", "0.5R", oder das Wort "up".

Zyklus (cycle)

cycle.beats ist die Liste der Zählzeiten eines Durchlaufs, cycle.fields (Zahl > 0) die Anzahl Felder, um die sich das Muster pro Durchlauf nach vorn verschiebt. Die App wiederholt die Zählzeiten, addiert jedes Mal fields auf alle Feldnummern und hört auf, sobald ein Fuß (oder der Ball am Fuß) über das letzte Feld hinaus müsste. Danach kommt automatisch ein Abschluss-Schritt „Ende“ in die Zone hinter der Leiter. Mehr als 400 Schritte sind ein Fehler („ist cycle.fields zu klein?“); passt kein einziger Schritt auf die Leiter, ebenfalls.

Zählzeit (ein Eintrag in beats)

SchlüsselBedeutung
l, rZielposition des linken bzw. rechten Fußes oder "up". Fehlt ein Fuß, bleibt er stehen. Füße, die nicht in feet stehen, werden ignoriert.
lrbeide Füße gleichzeitig ans selbe Ziel (= Sprung); hat Vorrang vor l/r
jumptrue erzwingt die Sprung-Darstellung. Automatisch ein Sprung: zwei sichtbare Füße bewegen sich gleichzeitig, oder bei Einbein-Übungen jeder Schritt (Hüpfer).
armsnur bei "arms": true: "down" "side" "up" "front" "back" "bent" "clap" "clapup" "cross" für beide Arme oder { "l": "…", "r": "…" }; gilt bis zur nächsten Änderung
ballnur mit ball in der Übung. Hand-Ball: "l" "r" "both" "front" "back" "left" "right" "air" (in der Hand, am Körper, in der Luft). Fuß-Ball: eine Feldposition wie "1C" (am Boden, verschiebt sich mit dem Zyklus).
bouncetrue = der Ball wird in dieser Zählzeit geprellt (Animation und Bass-Ton)
facingBlickrichtung nur für diese Zählzeit: "forward" "backward" "left" "right" oder Winkel in Grad (0 = vorwärts, 90 = rechts, 180 = rückwärts, -90 = links)
cueSchritttext; fehlt er, wird er erzeugt („rechts rein“, „Sprung“, „Arme hoch“, „prellen“). Eigene Texte werden beim Spiegeln (links/rechts) und bei Englisch Wort für Wort übersetzt.
holdDauer in Zählzeiten (Standard 1), z. B. 2 für einen gehaltenen Stand

Übung (oberste Ebene)

SchlüsselBedeutung
idPflicht, eindeutig, nur a-z 0-9 -; steht in der Adresse
name, aliasesname Pflicht; aliases Liste weiterer Namen (durchsuchbar)
categoriesPflicht, nicht leer, aus vorwaerts rueckwaerts seitwaerts spruenge einbeinig arme ball kombination
sportsoptional, aus fussball football basketball handball tennis kinder oder eine eigene Sportart eigene-… (höchstens 20)
difficultyPflicht: 1, 2 oder 3
facingGrund-Blickrichtung (Werte wie bei der Zählzeit; Standard "forward")
feetbenutzte Füße: ["l","r"] (Standard), ["l"] oder ["r"]; nur diese werden gezeichnet
sidesoptional: "one" = eine gespiegelte zweite Seite ergibt keinen Sinn (Pläne spielen eine Seite), "both" = immer beide Seiten. Ohne Angabe erkennt die App selbst, ob die gespiegelte Übung identisch ist.
armstrue zeichnet Kopf, Schultern und Arme
ballnull oder { "kind": "hand" } / { "kind": "foot" }
startAusgangsstellung: l, r (Standard "-1C"), arms (Standard "down"), ball (Hand: "both", Fuß: "-0.5C"), facing
ladderoptionale Anzahl Felder. Standard: mindestens 6, aufgerundet auf ein Vielfaches von cycle.fields. Hat der Nutzer in den Einstellungen eine Leiterlänge gesetzt, gilt die überall und ladder wird ignoriert.
description, tips, variationsFreitext bzw. Listen von Texten

Grenzen auf dem Server: 24 KB je Übung, 256 KB je Plan, 200 Einträge je Konto und Art (Premium 2000).

Datenschutz: was wo gespeichert wird

Verbindlich ist die Datenschutzerklärung von d-solve.de, Abschnitt 10. Hier die technischen Fakten.

Im Browser (localStorage, bleibt auf dem Gerät)

SchlüsselInhalt
kl-custom, kl-custom-sportseigene Übungen, eigene Sportarten
kl-plans, kl-plan-defaultseigene Trainingspläne, Standardwerte für Pläne
kl-settings, kl-theme, kl-lang, kl-print-modeEinstellungen (Leiterlänge, Ton, Ansicht, Schleife), Design, Sprache, Druckmodus
kl-log, kl-group-shareTrainingsprotokoll (Datum, Plan, Dauer, Übungs-IDs), Freigabe-Schalter je Gruppe
kl-auth, kl-cloud-mapAnzeige-Profil des angemeldeten Kontos (Name, Bild, Anbieter); Zuordnung lokaler IDs zu Server-IDs
kl-entitlements, kl-ads-consenteingelöster Code (signiertes Token, ohne Konto), Zustimmung zu Anzeigen

Nur für die Sitzung (sessionStorage, weg beim Schließen des Tabs): kl-context (zuletzt gesehene Liste fürs Wischen), kl-plan-filter, kl-markt-tab, kl-providers (verfügbare Login-Anbieter), kl-after-login, kl-editor-prefill, kl-feedback-from.

Auf dem Server (kl-api.d-solve.de, Cloudflare D1 in der EU/West-Region)

Keine Cookies und keine Aufrufe an den Server ohne Anmeldung oder Marktplatz. Keine Analyse-Skripte. Anzeigen von Google laden erst nach ausdrücklicher Zustimmung und nur, wenn sie konfiguriert sind. Zahlungen laufen vollständig bei Stripe.

Selbst hosten

Die App ist statisch: ein Ordner mit HTML, CSS und JavaScript, ohne Build-Schritt und ohne externe Abhängigkeiten. Jeder Webspace reicht.

  1. Den Ordner public/projects/koordinationsleiter/ aus dem Repository der Website kopieren und auf einen Webserver legen (auch GitHub Pages, Netlify, Cloudflare Pages).
  2. In config.js alles abschalten, was keinen Server hat: apiBase: "" (kein Konto, kein Marktplatz), feedbackEndpoint: "", donateUrl: "". Über features lassen sich Bereiche wie Pläne, Druck, Sportarten oder Werbung einzeln ausblenden.
  3. Eigene Übungen für alle: Objekt im Übungsformat in exercises.js ergänzen, englische Texte unter derselben id in exercises.en.js.
  4. Fußzeile und Rechtstexte in index.html auf den eigenen Betreiber ändern.

Wer Konto und Marktplatz will, deployt zusätzlich den Cloudflare Worker aus workers/koordinationsleiter-api (D1-Datenbank, Social-Login, optional Stripe) auf einer Subdomain derselben Website und trägt dessen Adresse als apiBase ein. Die Einrichtung steht in der README des Projekts.

Lizenz, Quellen der Übungen und technische Details: README im Repository.