- TCMB (döviz alış kuru) ve xaus.com (altın) saatlik arka planda çekilir, gün başına saklanır
- Kaynak erişilemezse son kur geçerli; altın için son USD kuru kullanılır
- Elle kur girişi/silme; aynı gün elle girilen kur önceliklidir
- GET /portfolio: güncel değer, kâr/zarar, toplamlar, son kur çekimi
- RATES_REFRESH_MINUTES ayarı
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Backend: ts-rs ile DTO'lardan TypeScript tipleri (frontend/src/types, npm run types)
- Hata ve health yanıtları tipli yapılara çevrildi
- lib/api.ts: tek API istemcisi, Türkçe ApiError, ağ hatası mesajı
- lib/query.ts: QueryClient (4xx tekrar denenmez, 401 → oturum kapanır)
- lib/auth.ts: useMe, useLogin, useRegister, useLogout
- Vitest: 7 API istemcisi testi (toplam 29)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- /api/categories ve /api/payment-methods: listele, ekle, düzenle, sırala, pasife al
- Sürüm kontrolü ile eşzamanlı düzenleme çakışması (409)
- Backend lib + bin yapısına ayrıldı (entegrasyon testleri için)
- tests/: hane izolasyonu (3) ve katalog (4) entegrasyon testleri
- db:reset artık artık test veritabanlarını da siler
- api.http tamamlandı; Faz 1 tamamlandı
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- config.rs: ortam değişkenleri ve doğrulama
- db.rs: bağlantı + ping (5 sn zaman aşımı)
- error.rs: AppError → Türkçe JSON hata yanıtı
- /api/health: veritabanına erişilemezse 503
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>