Tüm önemli verilerin tek ekranda toplandığı yönetim paneli
Admin panele giriş yaptığınızda karşınıza çıkan zengin içerikli dashboard tasarladık. Kullanıcı sayıları, gelir özeti, son işlemler, sistem sağlığı - hepsi tek bakışta görülüyor.
Toplam, aktif ve yeni kullanıcılar
Toplam gelir: 563,285 TL
1,551 aktif abonelik
Şarkı, albüm, sanatçı sayıları
Haftalık/aylık trend analizi
Canlı aktivite akışı
Dashboard sayfasını açtığınızda, birden fazla veritabanı sorgusu paralel olarak çalışır ve sonuçlar cache'lenir. Bu sayede her ziyarette veritabanına yük binmez, veriler hızlıca görüntülenir.
DashboardController@index çağrılır. Controller içinde widget verilerini toplayan servisler çağrılır: UserStatsService, RevenueService, ContentService.
Cache::remember('dashboard_stats', 300, fn() => ...) ile önce Redis'te cache kontrol edilir. 5 dakika (300 saniye) içinde aynı veri istendiyse, veritabanına gitmeden cache'den döner.
Cache yoksa veritabanı sorguları başlar: User::count(), Subscription::where('status', 'active')->sum('amount'), Song::selectRaw('COUNT(*) as total') gibi aggregate fonksiyonlar kullanılır.
Her widget için Livewire component'i render edilir: <livewire:dashboard-user-widget />. Component'ler kendi verilerini mount() metodunda yükler ve render() ile blade view döner.
Livewire wire:poll.30s direktifi ile 30 saniyede bir sunucuya istek atar. $this->emit('refresh') ile widget'lar güncellenir, sayfa yenilenmeden yeni veriler görünür.
Trend grafikleri için groupBy(DB::raw('DATE(created_at)')) ile günlük veriler toplanır. JavaScript tarafında Chart.js veya ApexCharts ile görselleştirilir.
(Kontrol Paneli)
Özet verilerin gösterildiği ana ekran. Araba gösterge paneli gibi düşünün.
(Bileşen)
Belirli bir veriyi gösteren küçük kutu. Telefondaki hava durumu kartı gibi.
(Anahtar Performans Göstergesi)
İşin ne kadar iyi gittiğini gösteren önemli rakamlar.
(Gerçek Zamanlı)
Anlık güncellenen veri. Sayfa yenilemeden değişiklikleri görme.