🧭 TaskSphere – Görev Yönetim Sistemi
TaskSphere, kullanıcıların kişisel projelerini ve bu projelere ait görevlerini yönetmelerini sağlayan bir görev takip platformudur.
Sade, güvenli ve modüler bir NestJS mimarisi üzerine inşa edilmiştir .
⚙️ Kullanılan Teknolojiler
Katman
Teknoloji
Backend Framework
NestJS (TypeScript)
ORM / Database
Sequelize + PostgreSQL
Authentication
JWT (Server-side token validation)
Documentation
Compodoc
Testing
Jest (planlanıyor)
Runtime Env
Node.js v18+
Containerization (opsiyonel)
Docker
Controller → HTTP isteklerini karşılar (/project, /task).
Service → İş kurallarını uygular, veri mantığını yönetir.
Repository → Veritabanı işlemlerini yürütür (Sequelize).
Entity (Model) → DB tablolarını temsil eder.
Guard → Kimlik doğrulama ve yetkilendirme kontrolü yapar.
Kullanıcı kayıt olur veya giriş yapar.
JWT token server-side olarak yönetilir.
Kullanıcı bir proje oluşturabilir (en fazla 1 proje ).
Proje içinde görevler oluşturabilir, tamamlayabilir veya silebilir.
Tüm istekler guard katmanlarından geçer (GuardJwtAuth, GuardShouldBeOwnerOfReq).
⚖️ İş Kuralları (Domain Rules)
Aynı e-posta ile ikinci kayıt yapılamaz.
Kullanıcı silindiğinde tüm projeleri ve görevleri de silinir.
Her kullanıcı en fazla 1 proje oluşturabilir.
Kullanıcı zaten bir projeye sahipse 409 Conflict hatası döner.
Projeler yalnızca sahibi tarafından güncellenebilir veya silinebilir.
Proje silinirse, ilgili görevler de otomatik silinir.
Her görev bir projeye ait olmalıdır.
Görev sadece proje sahibi tarafından oluşturulabilir.
Görev durumları: pending, done.
Görev silme / düzenleme yetkisi sadece proje sahibindedir.
Tüm isteklerde GuardJwtAuth çalışır.
Proje/görev değişikliklerinde GuardShouldBeOwnerOfReq devrededir.
Token doğrulama işlemi sunucu tarafında yapılır, localStorage kullanılmaz.
User (1) ─── (1) Project (1) ─── (*) Task
Entity
Field
Type
User
id, email, password
PK
Project
id, ownerId (FK→User), title, description
PK+FK
Task
id, projectId (FK→Project), title, status
PK+FK
Çoklu proje desteği (1 kullanıcı → N proje)
Takım üyeliği sistemi (proje paylaşımı)
Görev yorumları ve dosya ekleri
WebSocket ile gerçek zamanlı güncellemeler
Jest testleri & CI/CD pipeline
# Kurulum
npm install
# Ortam değişkenlerini ayarla
cp .env.example .env
# Geliştirme
npm run start:dev
http://localhost:3000/