Architekturdiagramm¶
PetBuddy folgt einer Schichtenarchitektur mit klarer Trennung von UI, Geschäftslogik und Datenzugriff.
Schichten im Überblick¶
| Schicht | Verzeichnis | Aufgabe |
|---|---|---|
| Einstiegspunkt | main.py → app/app.py |
Flet-App starten, FastAPI-Server für PDF-Downloads |
| App-Steuerung | app/ |
Navigation, Drawer, Auth-Flow, Dialoge |
| UI | ui/ |
Views, Components, Handler (je Feature) |
| Services | services/ |
Geschäftslogik, Supabase-Zugriff |
| Utils | utils/ |
Logging, PDF-Export, Kartenrendering, Validierung |
| Externe Dienste | — | Supabase (DB + Auth + Storage), Mapbox, Hugging Face |
Datenfluss¶
main.pystartet die Flet-App und initialisiertPetBuddyApp.PetBuddyApperstellt die UI-Views (DiscoverView,PostForm,ProfileView,AuthView) und übergibt den Supabase-Client.- Die UI-Views rufen Services direkt auf (z. B.
PostService.create(),SearchService.search()). - Services kommunizieren mit den externen Diensten (Supabase, Mapbox, Hugging Face).
- Ergebnisse fließen zurück an die UI, die das Rendering aktualisiert.
Hinweis zu Lookup-Tabellen¶
Die Lookup-Tabellen für role und account_status wurden bereits im Datenmodell angelegt, werden in der aktuellen Anwendungsversion jedoch noch nicht aktiv verwendet.
Sie sind als Vorbereitung für zukünftige Funktionen vorgesehen, insbesondere für Moderation und erweiterte Rollen-/Statuslogik.
