Кейс · Фінтех
LedgerFlow: платформа особистих фінансів
Мультитенантна платформа бюджетування та прогнозування з імпортом банківських виписок і AI-категоризацією транзакцій.
- Індустрія
- Особисті фінанси
- Терміни
- 5 тижнів до продакшену
- Рік
- 2026
- Послуги
- Продуктова розробка, Інтеграція AI, DevOps
Проблема
Бюджетні застосунки діляться на два табори. Хмарні сервіси, які просять доступ до вашого банку й монетизують ваші патерни витрат, і таблиці, що вмирають на третьому тижні ручного введення. Власник не хотів ні того, ні іншого. Йому були потрібні повний контроль над даними, справжнє прогнозування та імпорт із банку, чий CSV-експорт живе в кодуванні Windows-1250, має чотирнадцять ледь задокументованих колонок і жодного стабільного ID транзакції.
Що ми збудували
Self-hosted платформу особистих фінансів: транзакції, бюджети, розпізнавання регулярних платежів, правила категоризації та прогноз грошового потоку. Мультитенантність закладена з першої міграції, тож платформа обслуговує сім’ю чи невелику команду без переписування.
Найцікавіші задачі ховалися в пайплайні:
- Імпорт банківських CSV, який витримує реальність. Експорт банку не має унікального ID транзакції, тому дедуплікація працює на контент-хеші, що включає поле банківського референсу. Детекція кодування справляється з CP1250-експортами, які брешуть про власний charset.
- AI-категоризація зі зворотним зв’язком. Нові транзакції проходять категоризацію через LLM-шлюз. Кожне ручне виправлення стає постійним правилом, тож обсяг роботи моделі з часом звужується замість повторення тих самих помилок.
- Прогнозування. Регулярні транзакції розпізнаються з історії та проєктуються вперед: замість статичної таблиці бюджету ви бачите живу криву грошового потоку.
Архітектура
Бекенд на FastAPI з row-level security в PostgreSQL для ізоляції тенантів, Redis і Celery для задач імпорту та категоризації, фронтенд React SPA. Усе пакується в Docker-контейнери за реверс-проксі Traefik з автоматичним TLS. Деплой зводиться до pull репозиторію та однієї compose-команди.
LLM-виклики йдуть через self-hosted шлюз із фейловером між провайдерами, тож категоризація працює навіть коли провайдер тротлить, а витрати тримаються біля нуля на безкоштовних тарифах.
Нотатки з безпеки
Row-level security працює в самій базі, а не лише на рівні API. Секрети живуть у gitignored env-файлах. Сесії серверні. Публічна поверхня: один TLS-ендпоінт за реверс-проксі з rate limiting і security headers.
Результат
Місячне закриття, яке раніше з’їдало вечір у таблицях, тепер займає одне завантаження CSV. Точність категоризації перетнула 95 відсотків за лічені тижні завдяки циклу “виправлення стає правилом”. Платформа працює на міні-ПК і з дня запуску пережила кожну примху банківського експорту.