TaskFlow (Real-Time Kanban)
Trello ve Jira standartlarında, çift yönlü gerçek zamanlı veri akışı sunan iş birliği aracı. React, Redux Saga, Node.js, Socket.IO ve güvenli Session mimarisiyle inşa ediliyor.
1. Genel Bakış & Sistem Kapsamı
TaskFlow; takımların Kanban metodolojisiyle iş yönetebildiği, sürükle-bırak operasyonlarının WebSocket mimarisiyle diğer kullanıcılara anlık yansıdığı kurumsal bir Full-Stack web platformudur. Temel mühendislik odağı; karmaşık asenkron durumları (side-effects) ve çok kullanıcılı eş zamanlı veri akışını veri bütünlüğünü bozmadan yönetmektir.
2. Sistem Mimarisi & Teknoloji Yığını
Client (React + Vite · TypeScript · Chakra UI)
│── 1. Real-Time Sync (Socket.IO Client)
│ └──► Room-Based Channels (joinBoard, cardMoved, columnUpdated)
│── 2. Asynchronous State Management (Redux + Redux Saga)
│ └──► Optimistic UI Drag-and-Drop + Rollback on Failure
└── 3. REST API Ingestion (Axios withCredentials + Sessions)
└──► Express.js Server (Docker Compose)
├── Middleware (Session Guard, Handshake Verification, Central Error Handling)
├── Layered Design (Routes → Controllers → Services → Repositories)
└── PostgreSQL Database (Atomic Transactions for Positional Reordering)
3. Uçtan Uca Mühendislik Mimarisi
- Frontend & Asenkron State: React (Vite) ve TypeScript temeli; asenkron API çağrıları ile WebSocket event'lerini merkezi olarak yönetmek için Redux + Redux Saga kurgusu ve Chakra UI bileşen sistemi.
- Katmanlı Backend (Clean Architecture): Node.js, Express ve TypeScript ile inşa edilen; Route → Middleware → Controller → Service → Repository → Database ayrımına sahip modüler mimari.
- İlişkisel Veri & Transaction Bütünlüğü: PostgreSQL ve ORM entegrasyonu; kart taşıma ve sıra (order) güncellemelerinde veri tutarsızlığını önleyen atomik veritabanı işlemleri (Transactions).
- Gerçek Zamanlı İletişim (WebSocket): Socket.IO ile pano bazlı oda (room) izolasyonu (joinBoard/leaveBoard) ve yetkilendirilmiş Session handshake doğrulaması.
- DevOps & Konteynırlaştırma: Docker ve Docker Compose ile çok servisli (Backend, DB) ortamın tek komutla ayağa kaldırılması ve otomatik migration yönetimi.
4. Kritik Mühendislik Zorlukları & Çözümleri
- Eş Zamanlı Senkronizasyon (Concurrency): Çoklu kullanıcı oturumlarında event döngülerini engellemek için panoya özel oda ayrımı (socket.to(room).emit) ve iyimser arayüz (optimistic update) yaklaşımı.
- Sıralama (Order) Matrisi Güvenliği: Sürükle-bırak sırasında kaynak ve hedef sütunlardaki tüm kartların indeks kaymalarını veri kaybı olmadan koruyan transaction tabanlı servis mantığı.
- Yetkilendirilmiş WebSocket Güvenliği: Socket bağlantısı esnasında güvenli oturum (Session) handshake middleware'i çalıştırılarak yetkisiz kullanıcıların odalara sızmasının engellenmesi.