From 02017654f384990b2cee766b6849b8ec0e234d36 Mon Sep 17 00:00:00 2001 From: Alexey Martemyanov Date: Sun, 21 Jun 2026 15:51:46 +0600 Subject: [PATCH] =?UTF-8?q?[2026-06-21]=20personal/projects/budget-app/ind?= =?UTF-8?q?ex.md:=20Postgres=20=E2=86=92=20=D0=BE=D1=82=D0=B4=D0=B5=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D0=B0=D1=8F=20=D0=91=D0=94=20=D0=B2=20=D1=81=D1=83?= =?UTF-8?q?=D1=89=D0=B5=D1=81=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B5=D0=BC=20?= =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D1=81=D1=82=D0=B5=D1=80=D0=B5,=20Phase=201?= =?UTF-8?q?=20=D1=83=D1=82=D0=BE=D1=87=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5,=20?= =?UTF-8?q?=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0=20=D1=83=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D1=80=D0=B5=D0=B2=D1=88=D0=B8=D1=85=20=D0=BE=D1=82=D0=BA=D1=80?= =?UTF-8?q?=D1=8B=D1=82=D1=8B=D1=85=20=D0=B2=D0=BE=D0=BF=D1=80=D0=BE=D1=81?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- personal/projects/budget-app/index.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/personal/projects/budget-app/index.md b/personal/projects/budget-app/index.md index 75366706..5a11fe4d 100644 --- a/personal/projects/budget-app/index.md +++ b/personal/projects/budget-app/index.md @@ -143,7 +143,7 @@ Base currency не хардкодится — выбирается в `Settings` ### Этапы 1. **Phase 0 — Discovery & schema**. Полностью разобрать Excel, утвердить доменную модель. *(в процессе — этот док)* -2. **Phase 1 — Skeleton + import**. Создать `~/Developer/budget-app/` (git init), FastAPI + Postgres в Docker Compose в `~/docker/budget-app/`, миграция xlsx → БД. Read-only viewer транзакций + остатков + годовые отчёты. Внешний доступ через `budget.qentra.top` с auth. +2. **Phase 1 — Skeleton + import**. Создать `~/Developer/budget-app/` (git init), FastAPI + Vue в Docker Compose в `~/docker/budget-app/` с подключением к существующему Postgres-кластеру на хосте (новая БД `budget_app`). Миграция xlsx → БД. Read-only viewer транзакций + остатков + годовые отчёты. Внешний доступ через `budget.qentra.top` с auth (FastAPI Users + JWT). 3. **Phase 2 — Курсы и настройки**. Cron-джоб для НБ КР с back-fill. Базовая валюта в настройках. Все пересчёты привязаны к ней. 4. **Phase 3 — Ручной ввод**. Форма добавления транзакции, CRUD категорий/счетов, ручная правка курсов. 5. **Phase 4 — Импорт банков + AI-резолвер**. Автофетч/парсеры (Альфа, Сбер, Demir). LLM-резолвер. TG-бот для ручных подтверждений. @@ -164,10 +164,7 @@ Base currency не хардкодится — выбирается в `Settings` ## Открытые вопросы -- Какой именно auth: самописный JWT, готовый Authlib, или Authelia/Authentik как внешний провайдер? (С прицелом на multi-tenant.) -- AI-резолвер: какой провайдер по умолчанию? (Claude через openclaw / локальная LLM?) -- Хранить ли raw blob банковской выписки навсегда (audit) или только парсенные транзакции? -- Какой парсер xlsx использовать (openpyxl сейчас вызывал approval timeout — возможно perl/node-вариант)? +Phase 0 закрыт — ключевые решения зафиксированы выше (auth, БД, raw blobs, импорт, multi-tenant readiness). Вопросы Phase 4 (AI-провайдер для резолвера, fallback на локальную LLM) — отложены до старта той фазы. ## Следующий шаг