af2c01dbee
- docker-compose.dev.yml: MongoDB 7, tek düğümlü replica set (port 27020) - Backend: Axum + tokio, GET /api/health - Frontend: React + TypeScript + Vite, /api proxy, geçici durum ekranı - Kök package.json: npm run dev ile DB + backend + frontend - backend/api.http örnek istekler Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.4 KiB
3.4 KiB
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.mdoku; tüm projeyi tarama. target/,node_modules/,dist/,*.lockdosyaları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
mongodbsü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/, frontendlib/. - 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_idile filtrelenir (ortak middleware). - Hesaplanan değerler saklanmaz; aggregation ile hesaplanır.
- Format:
1.250,00 ₺, tarihGG.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 # backend testleri
npm run lint # clippy + oxlint
npm run devöncesinde DB otomatik başlar (predev).- Yerel MongoDB host portu 27020 (27017 sistem mongod, 27018/27019 diğer projeler).
- Frontend lint: oxlint (Vite şablonu varsayılanı; ESLint yerine).
- API örnekleri:
backend/api.http
Ortam
- Geliştirme makinesi: CachyOS (Arch), fish kabuğu, VS Code
- Git remote:
https://gitea.ta1sph.info/suphicakir/kakeibo.git(Gitea, dal:main)