# Kakeibo — Proje Rehberi Japon Kakeibo yöntemine dayalı, hane bazlı kişisel ev finans defteri. Tam gereksinimler: `KAKEIBO_PROMPT.md` (yalnızca ilgili bölümü oku). ## Çalışma Kuralları - Faz bazlı, küçük adımlar. Her adım sonunda dur, kısa özet ver, onay bekle. - Yeni session'da yalnızca `CLAUDE.md` + `docs/MEMORY.md` oku; tüm projeyi tarama. - `target/`, `node_modules/`, `dist/`, `*.lock` dosyalarını asla okuma. - Değişikliklerde dosyayı baştan yazma; yalnızca değişen kısmı düzenle. - Yanıt formatı: ne yapıldı → nasıl test edilir → sıradaki adım. - Her adım sonunda `docs/MEMORY.md`'ye 3–5 satır not ekle. - Her faz sonunda commit + `git push origin main` (Claude yapar). - Bir hata 2 denemede çözülmezse dur, seçenek sun. - Kullanıcı Rust'a yeni: kavramları ihtiyaç anında, kısa örnekle açıkla. - Her yeni bağımlılık için kısa gerekçe ver. ## Teknoloji Yığını - **Backend:** Rust + Axum + tokio + resmi `mongodb` sürücüsü, `serde`, `validator` - **Auth:** argon2 + JWT (httpOnly, Secure, SameSite cookie) - **Frontend:** React + TypeScript + Vite, TailwindCSS, shadcn/ui, lucide-react - **Veri/Form:** TanStack Query, react-hook-form + zod, date-fns (tr) - **Diğer:** Recharts, sonner, react-markdown + remark-gfm, vite-plugin-pwa - **Tipler:** `ts-rs` (Rust → `frontend/src/types/`) - **DB:** MongoDB 7, tek düğümlü replica set (transaction için) - **Dağıtım:** Tek Docker imajı (Axum frontend'i de sunar) → Dokploy (Atlas homeserver) - **Gelecek:** Tauri 2 (Windows, Linux, Android) ## Klasör Yapısı ``` backend/src/ main.rs, config.rs, db.rs, auth/, models/, routes/, services/ frontend/src/ components/ui/, features/, lib/ (api, format), types/ docs/ MEMORY, PHASES, DATA_MODEL, DEPLOY templates/ monthly_report.md scripts/ seed, reset, backup ``` ## Kodlama Kuralları - Kod İngilizce; arayüz metinleri Türkçe ve tek dosyada toplanır. - İş mantığı: backend `services/`, frontend `lib/`. - Para: kuruş cinsinden `i64` (asla float). Altın/kur: Decimal128 veya ölçekli tamsayı. - Tüm kayıtlar: `_id` (UUID v7), `household_id`, `created_at`, `updated_at`, `deleted_at`, `version`. - Her sorgu `household_id` ile filtrelenir (ortak middleware). - Hesaplanan değerler saklanmaz; aggregation ile hesaplanır. - Format: `1.250,00 ₺`, tarih `GG.AA.YYYY`; tümü `lib/format.ts` üzerinden. - Haftalar Pazartesi başlar; kısmi haftalar gün sayısına göre orantılanır. - Hatalar kullanıcıya Türkçe ve sade; teknik detay yalnızca logda. - Commit mesajları Türkçe: `feat(defter): haftalık giriş listesi eklendi` ## Sık Kullanılan Komutlar ``` npm run dev # frontend (5173) + backend (8080) birlikte, hot reload npm run dev:host # telefondan test için ağa aç npm run db:up # yerel MongoDB (Docker) npm run db:down npm run db:seed / db:reset npm test ``` *(Komutlar Faz 0 – Adım 4'te tanımlanacak.)* ## Ortam - Geliştirme makinesi: CachyOS (Arch), fish kabuğu, VS Code - Git remote: `https://gitea.ta1sph.info/suphicakir/kakeibo.git` (Gitea, dal: `main`)