Projektverwaltung für den SV Berolina Mitte
Auf der letzten Vorstandssitzung am 4. August zeigte uns Jens, wie er mit Trello die Aufstellungen unserer sechs Mannschaften für die kommende BMM koordiniert. Trello ist ein sogenanntes Kanban-Tool, mit der man Aufgaben verwalten und zuteilen kann. Die Wikipedia schreibt dazu: "Das japanische Wort Kanban bedeutet ursprünglich ‚Signalkarte‘ (kan ‚Signal‘, ban ‚Karte‘) und ist eine Technik aus dem Toyota-Produktionssystem, mit der ein gleichmäßiger Fluss in der Fertigung hergestellt und so Lagerbestände reduziert werden sollen." Es ist also wie eine Tafel an der Wand, wo Kärtchen in mehreren Spalten angebracht sind und man kann die Kärtchen hin- und herschieben, z.B. in die "Zu erledigen"-Spalte oder die "Wünsche"-Spalte. Jens hat sich bei Trello ein Board (also eine Tafel) mit Spalten "1. Mannschaft", "2. Mannschaft" usw. eingerichtet und die Spalten enthalten Kärtchen mit den Spielernamen. Die kann er flexibel hin- und herschieben und hat so immer die aktuelle Aufstellung vor den Augen. Damit entfällt das lästige Mitschreiben auf Papier und das Durchstreichen und Neuschreiben von Namen.
Jens hat also einen technologischen Vorsprung gegenüber den Am-Papier-Hängenden. Ich setzte dem noch einen drauf und sagte zu Jens: "Trello baue ich Dir in ein paar Stunden mit der KI nach!" Okay, da mußte Jens wieder passen. Mit KI hat er sich noch nie beschäftigt.
Gesagt getan. Nach rund zwei Stunden Entwicklungszeit stand Version 1.0.0 eines Programms, das die KI (Claude Code) anfangs noch "Teamboard" nannte. Nachdem Claude fertig war kam die lapidare Meldung: "Entstanden sind dabei 77 PHP-Dateien, 26 Twig-Vorlagen, 14 JS- und CSS-Dateien — rund 10.300 Zeilen PHP einschließlich der Tests."
Zugegeben, die erste Version hat noch nicht meinen Ansprüchen standgehalten, weil sich z.B. die Kärtchen nicht per Drag and Drop verschieben ließen. Aber das war schon in Version 1.1 behoben.
Mittlerweile sind wir nach wenigen Tagen bei Version 1.19 und aus dem "Teamboard" wurde "Ordanta" mit unzähligen Funktionen. Trello ist zumindestens in deren kostenloser Version schon überholt.
Atemberaubend bei der Entwicklung ist das Tempo und die Gründlichkeit mit der die KI arbeitet. Es werden zwar immer wieder auch Fehler eingebaut, aber das Debugging geht danach wieder rasend schnell und alles funktioniert sofort wieder. Umfangreiche neue Funktionen, die von Menschen nur mit größter Anstrengung eingebaut würden, werden von der KI zwar kommentiert ("ganz schön viel, lege ich erstmal zurück"), aber trotzdem immer umgesetzt, wenn der Entwickler Mensch darauf besteht. Es ist schon der Wahnsinn, was heutzutage alles geht. Vor einem halben Jahr wagte ich daran noch nicht zu denken. Inzwischen setzt die KI Projekte in wenigen Minuten um, für die ich Monate gebraucht hätte.
Das erste Prompt für Ordanta
Meine erste Anweisung am 10. August an Claude Code war die Erstellung eines Plan. Mein Prompt war:
"Erstelle mir einen Plan um ein Tool für das Projektmanagement zu bauen. Hole Dir dazu Anregungen von Trello, Meistertask und Stackfield. Das Programm soll mehrbenutzerfähig sein und im Browser laufen, auch gern mit einer Datenbank (MySQL, MariaDB) im Hintergrund."
Claude Code ratterte los und stellte mir drei Fragen mit mehreren Auswahlmöglichkeiten. Ich wählte die folgenden Möglichkeiten:
- Soll das Projektmanagement-Tool ein Contao-Bundle werden oder eine eigenständige Anwendung? Eigenständige Web-App (Empfohlen)
- Welche Funktionen sind dir für die erste Ausbaustufe am wichtigsten? Kanban-Board mit Drag&Drop, Aufgaben-Details, Kommentare & Aktivitätsverlauf, Zeiterfassung & Auswertung
- Wie viele Benutzer und Projekte sollen realistisch damit arbeiten? Kleines Team (bis ~15)
Es folgten noch einmal ein paar Fragen mit Auswahlmöglichkeiten für Antworten:
- Wie soll die Oberfläche technisch gebaut werden? Twig + schlankes JS (Empfohlen)
- Sollen Änderungen anderer Benutzer live im Board erscheinen? Ja, per Polling (Empfohlen)
- Wo soll die Anwendung später laufen? Erst lokal (XAMPP), später Webspace
Danach gings weitgehend ohne Fragerei weiter, bis die Version 1.0.0 stand. Da ich damit aber noch nicht zufrieden war, folgte im nächsten Durchlauf nochmal ein riesiges Aufgabenpaket, was Claude in etwa 45-60 Minuten abarbeitete.
Ordanta für den SV Berolina Mitte
Ordanta wird z.Z. von mir und Jens genutzt und einige weitere Mitglieder aus dem Vorstand oder mit Funktionen wurden eingeladen.
Wenn noch jemand Zugriff bekommen möchte, der sich für Vereinsbelange interessiert, möge er sich bei mir melden. Ich verschicke dann eine Einladung zum Board.
Gibt es Ordanta auch zum Download?
Natürlich kann Ordanta von jedermann auf einem eigenen Server verwendet werden. Einen Download möchte ich hier aber nicht anbieten. Auf Nachfrage schicke ich gern einen Link zur aktuellen Version. Das Programmpaket ist etwa 21 MB groß.
Frank Binding
frank.binding@svberolinamitte.de
Kommentare
Kommentar von Gerald |
Sieht super aus, vielen Dank dafür! Vielleicht kannst du im nächsten Durchgang noch die Option einbauen, dass man die aktuelle DWZ bei den Spielern darstellt und über chess-results bei den Namen angibt, wie oft sie schon gespielt haben und wie viele Punkte sie gemacht haben. Und einen optionalen Dark-Mode ;-)
Antwort von Frank Binding
"Option einbauen, dass man die aktuelle DWZ bei den Spielern darstellt und über chess-results bei den Namen angibt, wie oft sie schon gespielt haben und wie viele Punkte sie gemacht haben. Und einen optionalen Dark-Mode"
Kommentar von Jens Rennspieß |
Wenn die endgültige Aufstellung steht, setze die zum Saisonstart aktuelle DWZ hinter die Namen.
Ob das andere funktioniert, muss die KI entscheiden. Per Hand ist mir das zu aufwendig, aber es wäre wünschenswert.
Kommentar von Frank Binding |
Ich habe im Board mit den Wünschen für Ordanta eine ausführliche Aufgabe angelegt, die ich der KI dann vorlege. Bitte passe die Aufgabenbeschreibung an, wenn meine Beschreibung nicht ausreichend ist.
Kommentar von Gerald |
Ich muss gestehen, ich habe nur den Screenshot gesehen ;-)
1. Zu den DWZ:
Meine ursprüngliche Idee war, dass wir die Mitgliederliste reinladen – vom DSB-Server oder auch über die andere API, die Peter verwendet hat. Dann hätten wir DWZ und Elo.
Die einzelnen Mitglieder würden automatisch in die Datenbank geschrieben und mit einem Cronjob aktualisiert.
Dann könnte der User, wenn er eine neue "Notiz" (= Mitglied) irgendwo hinzufügen möchte, direkt in einem Eingabefeld nach dem Namen suchen (Ajax). Wenn es keinen Treffer gibt, könnte er mit einem "Plus"-Symbol oder so selbst einen Eintrag hinzufügen (= die derzeitige Variante, vermute ich).
---
2. Zu Chess-Results: Ich dachte, dass die Ergebnisse der BMM über Chess-Results eingegeben werden. Da lag ich wohl falsch – ich spiele einfach zu wenig ;-)
Ich habe kurz nachgeschaut und gesehen, dass dafür wohl ein Open-Source-Tool verwendet wird. Das macht die Sache vielleicht sogar noch besser, denn dann haben wir nicht die etwas komplizierten Nutzungsbedingungen von Chess-Results zu beachten.
Beim Open-Source-ChessLeagueManager (CLM) habe ich gesehen, dass es zwar keine REST-/JSON-API gibt, die Daten aber, so zumindest in meinem Testaufruf, als "raw"-Ausgabe bereitgestellt werden.
Wir könnten dann vielleicht sogar auch die DWZ-Geschichte gleich in einem erledigen.
Was vielleicht ginge - also als Idee:
1. Aus der Mannschaftsseite vom ChessLeagueManager könnten wir die Spieler direkt herauslesen. Die Tabelle "Mannschaftsaufstellung" enthält nicht nur Name und DWZ, sondern hinter jedem Spielernamen bereits den individuellen Spieler-Link mit "zps" und "mglnr".
Bei SV Berolina Mitte I stehen dort z. B. Andreas Volkmer, Marco Miersch, Peter Müller usw. inklusive ihrer jeweiligen Spielerlinks.
2. Das heißt: Wir müssten die Spieler-IDs nicht selbst kennen. Wir könnten in den Einstellungen ein Feld haben, in dem wir die jeweiligen Open-League-Links hinterlegen – also die Mannschafts- bzw. Liga-Seiten oder auch andere Links, die dafür hilfreich wären.
Zum Beispiel:
https://ed.berlinerschachverband.de/index.php?view=mannschaft&saison=3&liga=25&tlnr=1
3. Daraus bekämen wir dann zum Beispiel:
Andreas Volkmer
zps=30052
mglnr=1054
Marco Miersch
zps=30052
mglnr=1052
4. Mit diesen Daten könnten wir automatisch die Spieler-Links generieren. Also z. B.:
https://ed.berlinerschachverband.de/index.php?view=spieler&saison=3&zps=30052&mglnr=1054
Das ist Andreas Volkmer. Auf seiner Seite steht am Ende der Tabelle "gespielte Partien":
3,5 / 7
Auf der Mannschaftsseite steht bei Andreas aber auch:
4,5 Punkte / 8 Spiele / 56,3 %
Da war also wohl mal etwas Kampfloses dabei.
5. Wir könnten deshalb sogar zwei Werte anbieten:
Ligabilanz: 4,5 aus 8
Gespielte Partien: 3,5 aus 7
Wir könnten aber natürlich auch den DSB-Server für die Zahlen als Primärquelle nehmen oder zumindest als Backup-Quelle.
Wir könnten vermutlich auch noch weitere interessante Daten aus dem ChessLeagueManager übernehmen und beim jeweiligen Namen ein kleines Info-Symbol einbauen. Wenn man mit der Maus darüberfährt, könnte dann ein Tooltip bzw. kleines Popover mit den zusätzlichen Informationen erscheinen.
Was wir noch überlegen müssten: Wie gehen wir damit um, wenn ein Spieler in derselben Saison in verschiedenen Ligen bzw. Mannschaften spielt oder in der Vergangenheit in mehreren Ligen gespielt hat? Da müssten wir entscheiden, ob wir die Ergebnisse getrennt nach Liga/Mannschaft anzeigen oder zu einer Gesamtbilanz zusammenfassen.
Aber das sind auch nur ein paar Ideen.
Einen Kommentar schreiben