MAINPAGECase Files

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.

GitHub