CASE 001
PERSONAL FINANCE TRACKER
ToolsPython · FastAPI · SQLAlchemy · PostgreSQL · Pydantic · Uvicorn
Statusfunktionaler API-Prototyp
The idea
Finanzdaten sollen nicht nur gesammelt, sondern in nachvollziehbare Entscheidungsgrundlagen übersetzt werden. Das Projekt verbindet klassische CRUD-Funktionen mit praktischer Finanzlogik wie Free-Cash-Berechnung, Debt Simulation und Savings Planning.
The problem
Persönliche Finanzdaten liegen oft verteilt vor: Einnahmen, Ausgaben, Schulden, Budgets und Sparziele werden getrennt betrachtet. Dadurch fehlt ein klarer Überblick darüber, wie viel finanzieller Spielraum wirklich vorhanden ist und welche Entscheidungen daraus folgen können.
My approach
Ich habe das Projekt als REST API aufgebaut und die Logik in klare Bereiche getrennt: Routes für die API-Endpunkte, Schemas für Validierung und Services für Business Logic. Finanzdaten werden nutzerbezogen isoliert, sodass Transaktionen, Schulden, Budgets und Wallets sauber einem User-Kontext zugeordnet bleiben.
Key decisions
- Aufbau als Backend API statt als reine UI-Anwendung
- Trennung von Routing, Datenmodellen, Schemas und Service-Logik
- Nutzung von PostgreSQL als relationale Datenbank
- User-basierte Datenisolierung über einen Header-Kontext
- Finanzlogik als eigene Services für Summary, Debt Simulation und Savings Planning
- Vorbereitung auf spätere Erweiterungen wie JWT Authentication, Wallet-spezifische Abfragen und Reporting
Output
Das Ergebnis ist eine strukturierte API für persönliche Finanzplanung. Sie kann Einnahmen und Ausgaben erfassen, Schulden und Budgets verwalten, wiederkehrende Transaktionen erzeugen und auf Basis vorhandener Daten Finanzübersichten, Tilgungspläne und Sparprognosen berechnen.
What I learned
Das Projekt hat mir geholfen, Backend-Strukturen besser zu verstehen: Datenmodelle, API-Design, Validierung, User-Kontext, Datenbankbeziehungen und die Trennung von technischer Struktur und fachlicher Logik. Besonders relevant war für mich, wie aus einfachen Finanzdaten konkrete Entscheidungsinformationen entstehen können.
Next iteration
Als nächster Schritt wäre eine Authentifizierung mit JWT sinnvoll. Außerdem könnten Reporting-Funktionen, Exportmöglichkeiten und eine spätere Frontend-Oberfläche ergänzt werden.