Przejdź do treści
YYefrixLab

Case study · Fintech

LedgerFlow: platforma finansów osobistych

Multi-tenantowa platforma do budżetowania i prognozowania z importem wyciągów bankowych i kategoryzacją transakcji przez AI.

Branża
Finanse osobiste
Czas realizacji
5 tygodni do produkcji
Rok
2026
Usługi
Inżynieria produktu, Integracja AI, DevOps

Problem

Aplikacje do budżetowania dzielą się na dwa obozy. Chmurowe serwisy, które chcą dostępu do twojego banku i handlują twoimi nawykami, albo arkusze kalkulacyjne, które umierają w trzecim tygodniu ręcznego wklepywania. Właściciel nie chciał żadnego z nich: pełna własność danych, prawdziwe prognozowanie i import z banku, którego eksporty CSV używają kodowania Windows-1250, czternastu słabo udokumentowanych kolumn i nie mają stabilnych identyfikatorów transakcji.

Co zbudowaliśmy

Self-hosted platformę finansów osobistych: transakcje, budżety, wykrywanie płatności cyklicznych, reguły kategoryzacji i prognozowanie cash flow. Multi-tenant od pierwszej migracji, więc obsłuży rodzinę albo mały zespół bez przepisywania od zera.

Najciekawsze problemy siedziały w pipelinie:

  • Import bankowych CSV, który przeżywa zderzenie z rzeczywistością. Eksport z banku nie ma unikalnego ID transakcji, więc deduplikacja opiera się na hashu treści z polem referencji bankowej. Detekcja kodowania radzi sobie z plikami CP1250, które kłamią o własnym charsecie.
  • Kategoryzacja AI z pętlą feedbacku. Nowe transakcje przechodzą przez LLM gateway do kategoryzacji. Każda ręczna poprawka staje się trwałą regułą, więc model ma z czasem coraz mniej roboty, zamiast powtarzać te same błędy.
  • Prognozowanie. Transakcje cykliczne są wykrywane z historii i rzutowane w przód, dając kroczącą krzywą cash flow zamiast statycznej tabeli budżetu.

Architektura

Backend w FastAPI z row-level security w PostgreSQL dla izolacji tenantów, Redis i Celery do zadań importu i kategoryzacji, frontend jako SPA w React. Całość jedzie w kontenerach Dockera za reverse proxy Traefik z automatycznym TLS, a deployment to git pull i jedna komenda compose.

Wywołania LLM idą przez self-hosted gateway z failoverem między providerami, więc kategoryzacja działa dalej, gdy któryś provider dławi ruch, a koszty trzymają się blisko zera na darmowych tierach.

Bezpieczeństwo

Row-level security wymuszone w bazie, nie tylko w warstwie API. Sekrety żyją w gitignorowanych plikach env. Sesje są po stronie serwera. Publiczna powierzchnia to jeden endpoint TLS za reverse proxy z rate limitingiem i nagłówkami bezpieczeństwa.

Efekt

Miesięczne zamknięcie, które kiedyś zjadało cały wieczór w arkuszu, teraz sprowadza się do jednego uploadu CSV. Trafność kategoryzacji przekroczyła 95 procent w kilka tygodni dzięki pętli poprawka-reguła. Platforma działa na mini PC i od startu przetrwała każdy kaprys bankowego eksportu.

Masz projekt, który „po prostu musi wyjść”?

Napisz, co budujesz, co cię blokuje i kiedy ma działać na produkcji. W 24 godziny dostaniesz uczciwą odpowiedź: zakres, koszt, termin. Bez teatru discovery calli.