Tüm projeler
Yayında Öne çıkan proje

SYNDRA

Discord sunucuları için yönetim botu ve web paneli. Moderasyon, destek talepleri, duyurular, kademeli yetkiler ve istatistikler tek bir panelden yönetilir.

Yıl
2026
Durum
Yayında
üye
72
sunucu
4
yetkili
2
Teknolojiler
  • TypeScript
  • Node.js
  • Discord.js
  • Next.js
  • React
  • PostgreSQL
  • Prisma
  • Auth.js (OAuth2)
  • Playwright

SYNDRA, Discord sunucularını yöneten bir bot ile ona bağlı bir web panelinden oluşur. Sunucu sahibi ve yetkililer Discord hesabıyla giriş yapar; moderasyon, destek talepleri, duyurular, yetkiler ve istatistikler Discord menüleri arasında dolaşmadan tek bir arayüzden yürütülür. Panel ve tanıtım sayfası Türkçe ve İngilizce kullanılabilir; sistem syndra.yakupbilgin.com üzerinde yayında.

Mimari

  • Monorepo: pnpm çalışma alanında üç paket: Discord botu (Node.js, discord.js 14), web paneli (Next.js 15, React) ve ikisinin ortak kullandığı Prisma şeması.
  • Veritabanı üzerinden haberleşme: Bot ile panel arasında doğrudan bir HTTP API yoktur; ikisi aynı PostgreSQL veritabanını kullanır. Paneldeki bir değişiklik veritabanı tetikleyicisiyle bir PostgreSQL bildirimi (LISTEN/NOTIFY) üretir ve bot bunu anında alır; yoklama yalnızca yedek yoldur. Panelden gönderilen bir mesaj ölçümlerde Discord’a 0,6 saniyenin altında ulaşıyor (yoklamalı yapıda 5–10 saniye).
  • Kimlik ve yetki: Giriş Discord OAuth2 ile yapılır; her sunucu işlemi ve API rotası sunucu tarafında yetki denetiminden geçer.
  • Canlı arayüz: Panel sayfaları yenileme gerektirmeden güncellenir; seviye kartları sunucu tarafında çizilir.
  • Yayın: Panel, Cloudflare Tunnel üzerinden HTTPS ile internete açılır.

Öne çıkanlar

  • Sunucu Kurulumu: Mevcut kanal ve rolleri adlarından tanır; kayıt, log, hoş geldin ve geçici ses sistemleri için eşleşme önerir. Kaydedilmeden sunucuda hiçbir şey değişmez.
  • Sunucu Yapısı: Kanallar, roller ve üyeler tek ekranda; kanal başına rol ve kişi izinleri, rol düzenleme, üye işlemleri ve kanalların canlı görünümü.
  • Duyurular ve mesajlar: Giriş, çıkış ve ban duyuruları; katmanlı görsel düzenleyici (avatar, metin, şekil, emoji, görsel); {user.mention} gibi şablon değişkenleri; Mesaj Oluşturucu ile zamanlanmış mesajlar ve şablonlar.
  • Aksiyonlar: Rol verme/alma, mesaj, DM ve bekleme adımlarından oluşan akışlar; düğmelere, komutlara, çekilişlere ve üye olaylarına bağlanabilir.
  • Destek Sistemi: Talepler panelde canlı listelenir; panelden yazılan yanıt talep kanalına iletilir. Onaylı kapatma, yeniden açma ve log kanalına döküm.
  • Topluluk: Sohbet ve ses için ayrı XP hesaplayan seviye sistemi, seviye kartı ve liderlik tablosu; kayıt sistemi, rol seçimi, çekilişler, anketler ve geçici ses kanalları.
  • Moderasyon, loglar ve istatistikler: Ceza kayıtları ve panelden geri alma; mesaj, üye, ses, rol, kanal ve moderasyon olaylarının seçilen kanallara ve panele yazılması; üye akışı, mesaj ve ses grafikleri.
  • Kademeli yetkiler: Sunucu sahibi, dört moderatör seviyesi ve misafir. Yetkiler süreli verilebilir, kişiye özel izinlerle daraltılıp genişletilebilir ve bir Discord rolüne bağlanabilir; rolü alan kişi panel yetkisini de alır. Panelde yapılan işlemler denetim kaydına yazılır.
  • SYNDRA AI (geliştiriliyor): Henüz kullanıma açık değil. Planlanan akışta istek panelde ya da Discord’da @SYNDRA’ya düz metinle yazılır; SYNDRA yapılacak değişiklikleri adım adım bir plan olarak gösterir, yetkili onaylayınca uygular, loglara kaydeder ve geri alınabilir tutar. Sitedeki önizleme yalnızca örnek senaryoları oynatır, gerçek bir işlem yapmaz.

Teknoloji

Proje uçtan uca TypeScript ile yazıldı. Bot tarafında Node.js ve discord.js 14; panel tarafında Next.js 15, React ve Tailwind CSS, Discord ile giriş için Auth.js. Veri katmanı PostgreSQL ve Prisma. Kalite tarafında tip denetimi, birim testleri, ayrı bir test veritabanında çalışan entegrasyon testleri ve Playwright ile uçtan uca testler kullanılır.

Not: Panel görüntüleri tanıtım sayfasındaki etkileşimli demodan alındı; sunucu adı, kişiler ve sayılar örnek veridir.

Topluluğunuz ya da ekibiniz için özel bir bot veya yönetim paneli düşünüyorsanız iletişim formundan ulaşabilirsiniz.