4103b90e4b
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.2 KiB
3.2 KiB
🧠 Proje Hafızası
▶️ Sıradaki Adım
Faz 1 – Adım 3: Kimlik doğrulama: POST /api/auth/register (kullanıcı + hane + örnek kategori/ödeme türü, transaction), login, logout, GET /api/auth/me; argon2, JWT httpOnly cookie, giriş rate limit.
📌 Alınan Kararlar
- Sürüm kontrolü: Gitea (
https://gitea.ta1sph.info/suphicakir/kakeibo.git), dalmain. - Her adım sonunda Claude commit atar ve haber verir; push'u kullanıcı kendi uygulamasıyla yapar (Claude
git pushçalıştırmaz). - Node v26 (LTS) sistemde mevcut; ayrı kurulum gerekmedi.
- Yerel MongoDB host portu 27020 (27017 sistem mongod, 27018/27019 başka projeler).
- Frontend lint aracı: oxlint (Vite şablonu varsayılanı), ESLint yerine.
- Veri modeli v1 onaylandı (2026-11-11): ölçekli tam sayı (
_e6), tarihYYYY-MM-DDmetin, dönem bitişi hariç, kullanıcı = tek hane, ayarlar haneye gömülü, haftalık bütçe hesaplanır. - Model yaklaşımı:
#[serde(flatten)]yerine ortak alanlarmodels/common.rsyardımcılarıyla (new_meta,scope,touch). Modeller ilgili adımda eklenir. households.household_id = _id(scope filtresi her yerde aynı).- Sürümler: Rust 1.99.1 (edition 2024), Axum 0.8, React 19, Vite 8, TypeScript 7.
❓ Açık Konular
- Kapalı dönem yeniden açılırken başka açık dönem varsa davranış (Faz 6).
- Altın kuru için veri kaynağı seçimi (Faz 8).
- Aylık değerlendirme çıktı formatı kullanıcıdan gelecek (Faz 9).
- Canlı MongoDB kurulum şekli (konteyner mi, doğrudan mı) Faz 3'te birlikte kontrol edilecek.
📝 İlerleme Günlüğü
2026-11-11 — Faz 0
- Adım 1: Ortam kontrol edildi. CachyOS, fish. Node 26, npm 12, Docker 29 + Compose 5, Git, VS Code, gcc mevcut. Rust ve cargo-watch eksik; kurulum komutları verildi.
- Adım 2:
.vscode/(extensions, settings, tasks, launch),.gitignore,.env.exampleve monorepo klasörleri oluşturuldu.git init -b main. - Adım 3:
CLAUDE.md,docs/MEMORY.md,docs/PHASES.mdoluşturuldu. Gitea remote eklendi, ilk commit push edildi. - Adım 4: Rust kuruldu.
docker-compose.dev.yml(mongo:7, rs0, healthcheck ile otomatikrs.initiate). Backend: Axum, yalnızcaGET /api/health. Frontend: Vite react-ts şablonu,/apiproxy → 8080, geçici durum ekranı. Kökpackage.json: concurrently ilenpm run dev. Uçtan uca test edildi (Mongo PRIMARY, proxy çalışıyor). - Adım 5:
docs/DATA_MODEL.mdhazırlandı ve onaylandı. Faz 0 tamamlandı.
2026-11-11 — Faz 1
- Adım 1:
config.rs(env + doğrulama, JWT_SECRET ≥ 32),db.rs(5 sn timeout + ping),error.rs(AppError→{error:{code,message}}Türkçe; 5xx detayı yalnızca logda),state.rs,routes/(health: DB yoksa 503). Açılışta DB/ayar hatasında anlaşılır log + çıkış kodu 1. Elle test: 4 senaryo geçti. - Adım 2:
db/modülü:colsabitleri,migrations.rs(schema_migrations, v1 = koleksiyonları oluştur),indexes.rs(DATA_MODEL §4 + tüm hane koleksiyonlarına(household_id, updated_at)).models/common.rs: UUID v7,new_meta,scope,touch. Açılıştadb::prepare. 4 birim testi; idempotency ve tek açık dönem indeksi elle doğrulandı.uuid(v7) eklendi.