Karargâh
Türkiye Airsoft Topluluk Platformu
Site İçi Görüntüler
Proje & Bağlam
Karargâh, Türkiye'nin en kapsamlı airsoft topluluk platformu. Takım yönetimi, etkinlik organizasyonu, mesajlaşma, işletme profilleri ve güvenli moderasyonu tek çatı altında toplayan kapsamlı bir dijital ekosistem.
Dört kullanıcı tipi: Oyuncu, Kaptan, İşletme, Admin. Her tip kendi yetki ve arayüzüne sahip. JWT ile erişim kontrolü, Zod ile tüm girdi doğrulama.
Ekosistem Mimarisi
Takım sistemi Kaptan rolü etrafında şekilleniyor: oluştur, logo/banner yükle, başvuru onayla, rol yönet. Prisma ORM ile ilişkisel veritabanı.
Etkinlik: açık/kapalı oyun, takım davet, otomatik kontenjan, anlık katılımcı takibi. İşletme profilleri: sahalar ve mağazalar.
Platform Özellikleri
Takım Yönetim Sistemi
Kaptan takım oluşturur, logo/banner yükler. Başvuru → Kaptan onay/red. Rol atama, üye yönetimi, bildirimler.
Etkinlik Organizasyonu
Açık/kapalı oyun, takım davet, otomatik kontenjan. Dolunca kayıt kapanır. Etkinlik sahibi katılımcıları anlık görür.
Rol Bazlı Yetkilendirme
JWT + Zod validasyon, CSRF, rate limiting, bcrypt. 18+ yaş doğrulama. Her kullanıcı tipi yalnızca kendi yetkili alanlara erişir.
Küfür Filtresi & Moderasyon
Otomatik küfür filtresi, şikayet sistemi, audit log. Admin paneli tüm ihlaller ve kararlar arşivlenir. Güvenli platform garantisi.
Teknik Yaklaşım
Next.js 15 App Router ile route grupları: (auth), (player), (captain), (business), (admin). Server Components kritik veri, Client Components etkileşim — net ayrım.
Prisma ORM type-safe PostgreSQL şeması + Prisma Migrate. Tailwind CSS utility-first — tasarım sistemi merkezi konfigürasyondan yönetiliyor.
Neden Next.js 15 + Prisma?
Karargâh bir içerik sitesi değil — 4 kullanıcı tipi, rol bazlı yetkilendirme, gerçek zamanlı bildirimler ve takım yönetimi gibi karmaşık ilişkiler var. Prisma ORM ile veritabanı şeması tip-güvenli, migrasyonlar otomatik. Next.js 15 App Router'ın server action'ları form işlemlerini API endpoint yazmadan hallediyor. Rate limiting, CSRF ve küfür filtresi gibi güvenlik katmanları middleware'de yönetiliyor.
Teknik Zorluklar
Rol Bazlı Route Koruması — Middleware Karmaşıklığı
⚡ Sorun
4 rol, onlarca route — her route'a ayrı yetki kontrolü: tekrar eden kod, bir değişiklik her yerde güncelleme gerektirdi.
✓ Çözüm
Next.js middleware'de JWT decode + route pattern eşleştirme. Tek noktadan yönetim, route'lar sıfır yetki kodu içeriyor.
Takım Üyeliği Atomikliği — Yarış Koşulları
⚡ Sorun
Kapasite kontrolü + üye ekleme ayrı sorgular → eşzamanlı katılım yarış koşulu, takım kapasitesi aşıldı.
✓ Çözüm
Prisma $transaction ile kontrol + ekleme atomik. Başarısız olursa rollback — tutarsız durum imkânsız.
Türkçe Karakter Küfür Filtresi
⚡ Sorun
Türkçe karakter değişimiyle (ş→s, ı→i) küfür filtresi atlatılıyordu — regex tüm varyantları yakalayamadı.
✓ Çözüm
Normalize (ş→s, ı→i...) + Set.has() O(1) kontrol. Hem Türkçe hem ASCII varyant tek geçişte yakalanıyor.