Dmitry 1adb1c16df feat(tinvest): источник T-Invest — операции, снапшоты и справочник
SDK t_tech.invest импортируется ровно в client.py: остальной код видит обычные
Decimal и dataclass'ы. Операции читаются по курсору GetOperationsByCursor,
снапшоты GetPortfolio/GetPositions складываются в position_snapshot и
cash_snapshot — только для сверки, аналитика их не читает.

mapper.py — явный словарь OperationType -> EventKind на все значения enum SDK,
покрытый тестом: новый тип должен ломать тест, а не молча уезжать в other.

Покупка с привязанной карты помечается meta.card_funded: деньги пришли снаружи,
баланс счёта их не видел, и для доходности это внешний поток, а не внутреннее
движение.
2026-09-18 13:44: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%