Kurumsal seviyede Clean Architecture, JWT Authentication ve Task CRUD operasyonlarını içeren modern, güvenli ve test edilebilir bir RESTful Backend servisidir.
NestJS modüler yapısı, Prisma ORM veri erişim katmanı ve otomatik Swagger/OpenAPI dokümantasyonu ile geliştirilmiştir.
- 🔐 Kimlik Doğrulama & Yetkilendirme (Auth):
- Güvenli parola hashleme (
bcrypt). - JSON Web Token (JWT) tabanlı stateless oturum yönetimi.
Passport-JWTstratejisi ve@UseGuards(AuthGuard('jwt'))ile korunan endpoint'ler.
- Güvenli parola hashleme (
- 📝 Görev Yönetimi (Task CRUD):
- Kullanıcıya özel görev oluşturma, listeleme, güncelleme ve silme.
- Bir kullanıcının yalnızca kendi görevlerini yönetebilmesini sağlayan veri izolasyonu.
- 🛡️ Validasyon & Veri Doğrulama:
class-validatorveclass-transformerile Global Validation Pipe desteği.- Tip güvenli Request DTO (Data Transfer Object) kontrolleri.
- 📖 Otomatik API Dokümantasyonu (Swagger):
/apiadresinde etkileşimli Swagger UI.- Bearer Token kilitleme desteğiyle test edilebilir dokümantasyon.
- 🗄️ Prisma ORM & Veritabanı:
- Deklaratif şema yönetimi (
schema.prisma). - Hızlı prototipleme ve test için SQLite (PostgreSQL / MySQL'e tek satırda geçilebilir).
- Deklaratif şema yönetimi (
- 🧪 Unit Testleri:
- Controller ve Service katmanları için Jest test dosyaları (
*.spec.ts).
- Controller ve Service katmanları için Jest test dosyaları (
erDiagram
User ||--o{ Task : "owns"
User {
int id PK
string email UK
string password
datetime createdAt
}
Task {
int id PK
string title
string description
string status
int userId FK
datetime createdAt
datetime updatedAt
}
| Metot | Endpoint | Açıklama | Kimlik Doğrulama |
|---|---|---|---|
POST |
/auth/register |
Yeni kullanıcı kaydı oluşturur | Herkese Açık |
POST |
/auth/login |
Giriş yapar ve JWT Token döner | Herkese Açık |
| Metot | Endpoint | Açıklama | Kimlik Doğrulama |
|---|---|---|---|
POST |
/task |
Yeni bir görev oluşturur | 🔒 Bearer Token |
GET |
/tasks |
Giriş yapmış kullanıcının görevlerini listeler | 🔒 Bearer Token |
GET |
/tasks/:id |
Belirli bir görevin detayını getirir | 🔒 Bearer Token |
PUT |
/tasks/:id |
Görevi günceller (başlık, açıklama, durum) | 🔒 Bearer Token |
DELETE |
/tasks/:id |
Görevi siler | 🔒 Bearer Token |
- Node.js (v18 veya üzeri)
- npm veya yarn / pnpm
# Repoyu klonlayın
git clone https://github.com/siladgn/task-api.git
cd task-api
# Bağımlılıkları yükleyin
npm install.env.example dosyasını .env olarak kopyalayın:
cp .env.example .envPrisma şemasını veritabanına senkronize edin ve istemciyi oluşturun:
npx prisma db push
npx prisma generate# Geliştirici modunda çalıştırma (Hot reload)
npm run start:dev
# Prodüksiyon derlemesi
npm run build
npm run start:prodSunucu varsayılan olarak http://localhost:3000 portunda çalışacaktır.
Tarayıcınızdan aşağıdaki adresi açarak tüm API'yi canlı olarak deneyebilirsiniz:
👉 http://localhost:3000/api
# Birim (Unit) testleri çalıştırma
npm run test
# Test coverage raporu alma
npm run test:covBu proje MIT Lisansı kapsamında açık kaynak olarak sunulmuştur.