# Kreş SaaS Platform — Mimari Dokümantasyon

Bu proje KRES_SAAS_MIMARI.md dosyasındaki mimariyi takip eder.

**Versiyon:** 1.0.0  
**Son güncelleme:** 2026-03-31

---

## Teknoloji Yığını

| Katman | Teknoloji |
|--------|-----------|
| Backend | NestJS 10 + Node.js 20 |
| ORM | Prisma 5 |
| Veritabanı | Supabase PostgreSQL 16 |
| Cache/Queue | Redis 7 + BullMQ |
| WebSocket | Socket.io 4 |
| Frontend | Next.js 14 (App Router) |
| Stil | Tailwind CSS + shadcn/ui |
| Monorepo | Turborepo + pnpm |

## Klasör Yapısı

```
/
├── apps/
│   ├── api/          # NestJS Backend (port 3001)
│   └── web/          # Next.js Frontend (port 3000)
├── packages/
│   ├── types/        # @kres/types — Paylaşılan TypeScript tipleri
│   └── validators/   # @kres/validators — Zod şemaları
├── infra/
│   ├── docker-compose.dev.yml
│   └── nginx/nginx.conf
└── .github/workflows/
```

## Geliştirme Ortamı Kurulumu

```bash
# 1. Bağımlılıkları yükle
npx pnpm install

# 2. API .env dosyasını kontrol et
cat apps/api/.env

# 3. Prisma client'ı oluştur
cd apps/api && npx prisma generate

# 4. Seed çalıştır (super admin oluştur)
cd apps/api && npx ts-node prisma/seed/index.ts

# 5. Redis başlat (Docker)
docker run -d -p 6379:6379 redis:7-alpine

# 6. API'yi başlat
cd apps/api && npx nest start --watch

# 7. Web'i başlat (yeni terminal)
cd apps/web && npx next dev
```

## API Endpoint'leri

- **Swagger:** http://localhost:3001/api/docs
- **Base URL:** http://localhost:3001/api/v1

## Kodlama Kuralları

1. TypeScript strict mode — `any` yasak
2. Her modül: controller / service / dto yapısı
3. Multi-tenant: her sorguda `TenantPrismaService.forTenant(slug)` kullan
4. Zod ile input validasyonu
5. Hata mesajları Türkçe, kod İngilizce
6. `@Roles()` dekoratörü ile RBAC
