Universal Dashboard Sistemi

Tarih: 2025-11-26 | Kapsam: Tum Tenant'lar | Hedef: Dinamik, Yetki-Bazli, Esnek Dashboard

Temel Prensipler

1. Tenant-Agnostic Tasarim

Dashboard hicbir tenant'a ozgu icerik barindirmaz. Muzibu, ixtif veya baska herhangi bir tenant icin ayni kod calısır. Tenant-spesifik veriler (logo, isim, tema rengi) dinamik olarak cekilir.

2. Widget-Based Mimari

Her bilgi parcası bagimsiz bir "widget" olarak tasarlanır. Widget'lar modullere bagli olarak otomatik gosterilir veya gizlenir. Eksik widget olunca diger widget'lar boslugu doldurur.

3. Graceful Degradation

Editor sadece 1 module yetkili olsa bile dashboard sik gorunur. 10 module yetkili olsa da ayni sekilde sik gorunur. Bosluk, kirik gorunum, dagınık tasarim OLMAZ.

Rol Bazli Gorunum

Root / Admin

Tam Erisim
  • Tum widget'lari gorur
  • Sistem durumu widget'i
  • Kullanici yonetimi ozeti
  • AI kredisi (varsa)
  • Tum modul istatistikleri

Editor

Sinirli Erisim
  • Sadece yetkili modul widget'lari
  • Kisisel profil karti
  • Son aktiviteler (kendi islemleri)
  • Hizli islemler (yetkili moduller)
  • AI Chat (eger AI yetkisi varsa)

Widget Sistemi

Widget Kategorileri

Sistem PHP, Laravel, Cache, DB durumu - Sadece Admin/Root

AI Kredi durumu, AI Chat - AI modulu aktifse

Modul Page, Portfolio, Blog vs. - Modul aktif ve yetkili ise

Kisisel Profil, Son aktiviteler - Herkes gorur

Widget Oncelik Sirasi

1
Hosgeldin Banner
Her zaman gosterilir, kullanici adı ve ozet istatistikler
2
Stat Kartlari (Dinamik)
Yetkili modullere gore 2-4 kart gosterilir. Az modul = buyuk kartlar
3
Hizli Islemler
Sadece CREATE yetkisi olan moduller icin butonlar
4
Modul Widget'lari
Son sayfalar, son portfolyolar vs. - yetkiye gore
5
Yan Panel
Profil + Sistem durumu (admin) veya Profil + AI Chat (editor)

Responsive Grid Sistemi

Altin Kural: Widget sayisi azalinca, kalan widget'lar BUYUR. Hicbir zaman bosluk kalmaz, hicbir zaman tek basina kucuk widget olmaz.

Admin/Root - 4+ Modul Yetkisi

Kredi
Sayfa
User
Ziyaret
Hizli Islemler
Son Aktivite
Modul Liste
Sistem + Profil

Editor - 2 Modul Yetkisi (Ornek: Page + Blog)

Sayfalar (32)
Blog (15)
Hizli Islemler
Son Aktivitelerim
Son Sayfalar
Profil

Editor - 1 Modul Yetkisi (Ornek: Sadece Page)

Hosgeldin + Sayfa Istatistigi
Son Sayfalar (Liste)
Hizli Islemler + Profil

Teknik Mimari

DashboardWidget.php ├── mount() │ ├── checkUserRole() → isRoot, isAdmin, isEditor │ ├── loadActiveModules() → Tenant modulleri + Yetki filtresi │ └── loadWidgetData() → Her widget icin veri yukle │ ├── getVisibleWidgets() → Yetkiye gore widget listesi │ ├── Admin: Tum widget'lar │ └── Editor: allowedModulesView'daki widget'lar │ ├── getGridLayout() → Widget sayisina gore grid hesapla │ ├── 4+ widget → 4 kolonlu grid │ ├── 2-3 widget → 2 kolonlu grid │ └── 1 widget → Tek kolon, genis kartlar │ └── render() → dashboard-widget.blade.php

Widget Veri Yukleme

Her widget bagimsiz olarak veri yukler. Modul aktif degilse veya yetki yoksa, o widget'in verisi YUKLENMEZ (performans). Blade'de @if ile kontrol edilir.

Hosgeldin Mesaji Mantigi

Admin/Root

"Hos geldin, [Ad]!"

"Sistemde [X] aktif modul var. [Y] yeni kullanici bu hafta katildi."

Editor

"Hos geldin, [Ad]!"

"[Modul adlari] modullerini yonetebilirsin. Bugun [X] icerik guncellendi."

Hizli Islemler Mantigi

Kural: Sadece CREATE Yetkisi Olanlar

  • canCreateModule('page') → "Yeni Sayfa" butonu goster
  • canCreateModule('blog') → "Yeni Blog" butonu goster
  • canCreateModule('portfolio') → "Yeni Portfolio" butonu goster
  • Hicbir CREATE yetkisi yoksa → Hizli islemler paneli GIZLE
Onemli: VIEW yetkisi varsa ama CREATE yoksa, o modul istatistik kartinda gosterilir ama hizli islemlerde buton OLMAZ.

AI Chat Widget

Gosterim Kosullari

  • AI modulu tenant'ta aktif mi? → Hayirsa GIZLE
  • Kullanici Admin/Root mu? → Goster
  • Kullanici Editor ve AI yetkisi var mi? → Goster
  • Kredi 0 mi? → Goster ama "Kredi tukendi" uyarisi

Uygulama Adimlari

1
DashboardWidget.php Guncelle
getVisibleWidgets(), getGridLayout() metodlari ekle
2
Blade Sablonu Yeniden Yaz
Dinamik grid sistemi, widget loop'u, responsive tasarim
3
CSS Grid Utility
widget-sm, widget-md, widget-lg, widget-full class'lari
4
Test
Admin, Editor (cok modul), Editor (tek modul) senaryolari