2026-11-05 11:58:37 +03:00
2026-11-05 11:58:37 +03:00
2026-11-05 00:40:16 +03:00
2026-11-05 11:58:37 +03:00
2026-11-05 11:19:17 +03:00
2026-11-05 11:19:17 +03:00

BÜTÇEM

Aile bütçesi, banka/kart/cari hesapları, birikimler (altın, döviz, ziynet), aylık bütçe, ev stoğu ve akıllı alışveriş listelerini tek yerde yöneten, çok kullanıcılı web uygulaması.

Teknoloji

Next.js 16 (App Router, Turbopack, Cache Components) · React 19 · TypeScript (strict) · Tailwind CSS 4 · shadcn/ui (Radix) · Better Auth · MongoDB 9 (native driver + Mongoose) · zod · Vitest

Gereksinimler

  • Node.js 26 (Active LTS) — nvm use (.nvmrc)
  • Docker + Docker Compose (lokal MongoDB replica set)

Lokal geliştirme

# 1) Bağımlılıklar
npm install

# 2) Ortam değişkenleri — BETTER_AUTH_SECRET için: openssl rand -base64 32
cp .env.example .env.local

# 3) MongoDB (tek düğümlü replica set rs0, host portu 27019) — sağlıklı olana kadar bekler
npm run db:up

# 4) Örnek veri: admin + aile kullanıcıları + 2 hane (tekrar çalıştırmak güvenli)
npm run seed

# 5) Uygulama
npm run dev   # http://localhost:3000 → /login

Geliştirme hesapları (npm run seed)

Kullanıcı adı Rol Hane(ler) Not
admin admin Çakır Ailesi (owner) şifre SEED_ADMIN_PASSWORD
ayse user Çakır Ailesi (owner), Annemler (viewer)
emre user Çakır Ailesi (member) e-postasız
zeynep user Çakır Ailesi (viewer) e-postasız
fatma user Annemler (owner)
mehmet user Annemler (member)
burak admin — hanesi yok → hane verisi görmez
ozan user Çakır Ailesi (member) askıda, giriş yapamaz

Admin dışındaki hesapların şifresi SEED_USER_PASSWORD (.env.local). Production'da yalnızca admin oluşturulur.

Giriş kullanıcı adı veya e-posta ile yapılır. Kayıt kapalıdır; kullanıcıları admin /admin/kullanicilar sayfasından oluşturur.

Scriptler

Komut Açıklama
npm run dev Geliştirme sunucusu
npm run build / start Üretim build'i / sunucusu
npm run lint ESLint
npm run typecheck tsc --noEmit
npm run test Vitest birim testleri
npm run format Prettier
npm run db:up / db:down Lokal MongoDB'yi başlat / durdur
npm run seed / seed:reset Örnek veri (Faz 4)
npm run test:integration Entegrasyon testleri (MongoDB)
npm run migrate Bekleyen migration'lar
npm run cleanup Eski/bağlanmamış ek dosyaları sil

Haneler ve yetki

  • Tüm alan verisi bir haneye (householdId) aittir; kullanıcı yalnızca üyesi olduğu hanelerin verisini görür. Sistem admini de bu kurala tabidir.
  • Hane içi roller: sahip (ayarlar, üyeler), üye (veri girer), izleyici (yalnızca görüntüler).
  • Her sayfa, Server Action ve API, hane yetkisini src/lib/dal.ts üzerinden sunucuda doğrular; servisler de üyeliği ayrıca kontrol eder.

Marka dosyaları

public/brand/: logo.svg (açık tema), logo-dark.svg (koyu tema), icon.svg (uygulama ikonu), icon-maskable.svg (Android/iOS, köşesiz). Yazı Noto Sans Bold (OFL) harf yollarıdır. İkonları değiştirdikten sonra npm run icons çalıştırın; favicon ve PWA ikonları bu kaynaklardan üretilir.

Docker imajı

docker build --build-arg APP_VERSION=$(node -p "require('./package.json').version") \
  --build-arg APP_COMMIT=$(git rev-parse --short HEAD) -t butcem .

Canlı ortam (Dokploy, butcem.ta1sph.website) kurulumu Faz 15'te docs/DEPLOY.md içinde anlatılacak.

S
Description
No description provided
Readme 6.7 MiB
Languages
TypeScript 99.1%
Shell 0.4%
CSS 0.4%
Dockerfile 0.1%