Dmitry 295438914d feat(backend): каркас — конфиг, движок БД, базовые модели и первая миграция
SQLAlchemy 2 async на asyncpg, Alembic, pydantic-settings. Деньги везде
NUMERIC(24,10) с колонкой валюты рядом (db/base.py), postgres-enum'ы хранят
значения, а не имена, чтобы база читалась так же, как API.

Первая миграция: app_user, account, portfolio, instrument, sync_run, sync_job.
metrics/refresh.py задаёт порядок пересборки metric_* и сериализует параллельные
пересчёты advisory-локом на отдельном соединении: каждый шаг заменяет свою
таблицу целиком, два одновременных прогона затёрли бы друг друга.
2026-09-18 13:43:31 +03:00

fin-tracker

Личная аналитика финансов и инвестиций: ZenMoney (повседневные деньги) + брокеры (T-Invest API, отчёты Сбера и ВТБ) в одной базе, с XIRR/TWR, календарём дивидендов и купонов, аллокацией и net worth. Замена Snowball Income.

  • backend/ — Python 3.12, FastAPI, PostgreSQL, worker с расписанием синков.
  • app/ — Flutter-клиент (web, Linux, Windows, Android) поверх REST/OpenAPI.
  • deploy/ — Caddy и сертификаты; docker-compose.yml — прод на VPS.

Для агентов: AGENTS.md. Команды: just --list.

S
Description
No description provided
Readme
2.1 MiB
Languages
Python 46.4%
Dart 40.9%
JavaScript 11%
C++ 0.7%
CMake 0.6%
Other 0.2%