Am Freitag war das Finale im EintrachtLab am Deutsche Bank Park. Hasso’s Kickers, also Sebastian, Robert und ich, ist eines der sechs Gewinnerteams des ersten Bundesliga Hackathons. Der Preis ist kein Geld, sondern ein Besuch bei einem Heimspiel der Eintracht.
Zum Rahmen: DFL, AWS und EintrachtTech haben den Hackathon zum ersten Mal ausgerichtet. Beim virtuellen Kick-off am 24. Februar waren über 330 Leute dabei, registriert haben sich 42 Teams, ins Finale kamen 15. Es gab fünf Challenges. Wir haben die Chatbot-Challenge genommen: UX und UI für einen KI-Chat in der Bundesliga-App.
Die Challenge habe ich ausgesucht, und ich habe die beiden Repos angelegt. Entscheidung für den Stack: Expo und React Native mit expo-router, damit eine Codebasis auf Web, iOS und Android läuft. Ein Web-Vorprototyp lief ab Ende Februar nebenher. Gebaut haben wir dann wirklich vom 18. bis 20. März, 71 Commits in drei Tagen.
Was am Ende drin war: Tabs für Spiele, Videos, Tabelle und Statistiken, dazu der KI-Chat gegen ein AWS-Backend, Antworten mit Markdown und Medien, ein Quiz-Modus mit 20 Fragen, der die Fragen vorliest, und eine Leiste mit Vorschlägen. Mein Teil neben dem Setup: der Share-Service, der je nach Plattform die Web Share API, die Zwischenablage oder das native Share-Sheet nimmt, die Darstellung der Bot-Nachrichten mit Icons und Ladeanimation und das Zusammenführen der Branches. Das Backend und die Chat-Logik kamen von den beiden anderen.
Nebenbei habe ich mit einem deutschen Offline-Sprachmodell für Spracheingabe und mit Gestenerkennung experimentiert. Ins Produkt hat es beides nicht geschafft.
Wie die App funktioniert, zeigt die Demo auf dieser Seite. Sie läuft mit Beispieldaten, das AWS-Backend ist abgeschaltet, die Chat-Antworten sind also Beispiele. Unten die Tab-Leiste, im KI-Chat-Tab eine Leiste mit Vorschlägen für häufige Fragen. Eine Frage geht über das AWS API Gateway an das Chat-Backend, die Antwort kommt als Chat-Blase zurück, mit Markdown und Medien, und während das Backend arbeitet, läuft die Ladeanimation. Im Quiz-Modus liest die App jede Frage vor. Und wer eine Antwort teilen will, bekommt je nach Gerät das passende Teilen-Menü, auf dem Desktop notfalls die Zwischenablage.