Blog Platformu (Full-Stack)
React, Express, PostgreSQL, Prisma, Cloudinary ve Docker ile inşa edildi. JWT oturum yönetimi ve rol bazlı yetkilendirme (RBAC) içerir.
1. Genel Bakış & Sistem Kapsamı
Blog Platformu; Katmanlı Mimari prensipleriyle sıfırdan inşa edilmiş, JWT tabanlı oturum yönetimi, rol bazlı yetkilendirme (RBAC) ve dinamik filtreleme sunan üretim seviyesinde bir Full-Stack uygulamadır. İstemci (SPA) ve sunucu (REST API) katmanlarının birbirinden tamamen ayrıştırıldığı (decoupled) modern bir web ekosistemidir.
2. Sistem Mimarisi & Teknoloji Yığını
Client (React + Vite SPA · Vercel Edge)
│── 1. REST API Requests (JSON · Axios Interceptor + Dual JWT Bearer)
│ └──► Express.js Server (Render Docker Container)
├── Controllers → Services → Repositories
├── Middleware (JWT Auth, RBAC, Zod Preprocessing, Rate Limiting)
└── Prisma ORM (v7) ──► PostgreSQL (Neon Serverless)
│
└── 2. Media / Image Uploads (Multipart Form-Data)
└──► Multer Stream ──► Cloudinary CDN (Persistent Media Storage)
3. Tamamlanan Full-Stack Mühendisliği
- İstemci Mimarisi (Frontend): React, Vite, TypeScript, Tailwind CSS ve React Router v6 kullanılarak Vercel üzerinde koşan, mobil öncelikli SPA.
- API Katmanı (Backend): Node.js, Express.js ve TypeScript ile geliştirilen; Routes → Controllers → Services → Models düzenine sahip katmanlı mimari.
- Veritabanı & ORM: PostgreSQL (Neon Serverless) ve Prisma ORM entegrasyonu; ilişkisel veri modelleme.
- Güvenlik & Doğrulama: Axios interceptor tabanlı çift JWT akışı, Zod payload doğrulaması ve IP bazlı Rate Limiting.
- DevOps & Depolama: API servisi için Render Docker konteynırlaştırması, medya dosyaları için Cloudinary CDN entegrasyonu.
4. Mühendislik Zorlukları & Çözümleri
- Kalıcı Medya (Ephemeral Storage): Render'ın geçici dosya sistemi nedeniyle kaybolan medya dosyaları sorunu, Cloudinary CDN ve Multer entegrasyonu ile kalıcı çözüme kavuşturuldu.
- Defansif Tip Dönüşümü: Görsel yüklemelerinde gelen multipart/form-data payload tutarsızlıkları, Zod preprocess ve Service katmanındaki savunmacı dönüşümlerle normalize edildi.
- SPA Yönlendirme Kontrolü: Derin bağlantılardaki (deep-linking) 404 hatalarını önlemek için Vercel üzerinde rewrite kuralları (vercel.json) yapılandırıldı.