OweFlow: 120 Commits, dann die Frage nach dem Geld
Mit einem Kommilitonen habe ich in einem Monat eine Flutter-App gebaut, die Gruppenausgaben aufteilt. Gestoppt hat uns nicht der Code, sondern das Zahlungsrecht.
Wer hat das Taxi bezahlt, wer den Einkauf, und wer schuldet jetzt wem wie viel? Und warum muss man die Überweisung danach noch in einer ganz anderen App eintippen?
Mit dieser Frage haben Robert und ich am 7. Dezember angefangen. Erstes Semester am HPI. Die Idee hieß OweFlow: Ausgaben in der Gruppe teilen und am Ende per Knopfdruck begleichen. Kein reines Übungsprojekt, wir wollten wissen, ob daraus ein Produkt werden kann.
Gebaut haben wir eine Flutter-App, aufgeteilt in Feature-Module: Gruppen, Schulden, Erinnerungen, Analytics und Übersetzungen. Dazu ein paar Python-Skripte, mit denen wir ausprobiert haben, ob man Kassenbons automatisch auslesen kann. Bis zum 5. Januar standen 120 Commits im Repo, 43 davon von mir.
Mein Teil war die Anmeldung. Das klingt nach einem Login-Screen, ist aber mehr. Firebase Auth mit E-Mail-Verifikation, also die Frage, was ein Konto darf, solange die Adresse nicht bestätigt ist. Dazu Social Login, damit niemand für eine Ausgaben-App noch ein Passwort anlegen muss. Und die ganzen Zwischenzustände, an die man vorher nicht denkt.
So funktioniert die App, und so läuft auch die Demo auf dieser Seite, mit Beispieldaten. Du bist in einer Gruppe und trägst eine Ausgabe ein: wer bezahlt hat, wie viel, für wen. Die App teilt den Betrag auf die Beteiligten auf. Auf der Startseite steht dann pro Person ein Saldo. Wer im Plus ist, bekommt Geld, wer im Minus ist, schuldet welches. „Begleichen” setzt den Saldo zurück. Genau an dieser Stelle sollte eigentlich das Geld fließen.
WG Berlin
Salden
Ausgleichen 1 Zahlung genügen
Ausgaben
Und genau da kam die Frage, wie die Überweisung per Knopfdruck rechtlich funktioniert. Die Antwort: Zahlungsdienste sind in Deutschland reguliert. Zwei Studenten im ersten Semester lösen das nicht nebenbei. Wir haben aufgehört.
Ich glaube nicht, dass die Idee schlecht war. Eher habe ich die Hürde falsch gelesen. Ich habe sie als Mauer gesehen. Eigentlich war sie eine Frage: Welcher lizenzierte Zahlungsdienstleister lässt uns auf seiner Infrastruktur aufsetzen? Die hätte am ersten Tag auf den Tisch gehört, nicht nach einem Monat Code.
Was ich mitnehme. Erstens das Rechtliche zuerst. Wo Geld, Gesundheit oder fremde Daten im Spiel sind, schaue ich mir die Regeln an, bevor ich die erste Zeile schreibe. Zweitens: Zu zweit an einem Repo arbeiten will gelernt sein, mit Branches, Merges und der Frage, wer welche Datei anfasst. Drittens: Auth ist ein eigenes Produkt. Sie fällt nur auf, wenn sie kaputt ist.
Tools und Skills: Flutter und Dart, Firebase Auth mit E-Mail-Verifikation und Social Login, eine Feature-Modul-Architektur mit Übersetzungen, Git zu zweit. Und zum ersten Mal die Frage, ob aus einem Alltagsproblem ein Geschäft werden kann.
Das Repo liegt öffentlich bei Robert. Ganz abgehakt ist das Thema für mich nicht.