Proje: OkulUp API · Hub: OkulUp API — Conventions

OkulUp API — Dashboard Cache Pattern

Genel Kural

Dashboard endpoint’leri 120 saniye (2 dakika) Redis cache kullanır.

private const CACHE_TTL_SECONDS = 120;
 
$data = Cache::remember($cacheKey, self::CACHE_TTL_SECONDS, function () {
    // DB sorguları
});

Cache Key Stratejisi

EndpointCache Key
/dashboard/admindashboard:admin
/dashboard/managerdashboard:manager:{schoolId}:{userId}
/dashboard/teacherdashboard:teacher:{userId}
/dashboard/parentdashboard:parent:{userId}
/dashboard/studentdashboard:student:{userId}

Admin dashboard → tüm admin’lar aynı key (school-agnostic).
Manager → school_id dahil (okul bazlı).

Dashboard İçerikler

Admin

  • Toplam okul, kullanıcı, öğrenci, öğretmen sayıları

Manager

  • Öğrenci/öğretmen/sınıf sayıları
  • Bugünkü devam oranı
  • Bekleyen ödemeler
  • Okunmamış bildirimler + konuşmalar
  • Son duyurular

Teacher

  • Kendi sınıf/öğrenci sayıları
  • Bugün + 30 günlük devam oranı
  • Yoklama alınmamış sınıflar (pending_actions)
  • Son duyurular

Parent

  • children listesi
  • Her çocuk için: devam oranı, bekleyen ödev, ödev tamamlama oranı, ödeme oranı
  • Bekleyen ödemeler (tüm çocuklar)
  • Son duyurular

Student

  • Kendi devam oranı (30 gün)
  • Bekleyen ödevler + yaklaşan 5 ödev
  • Bekleyen ödemeler
  • Son duyurular

Attendance Rate Hesaplama

present + late = hazır sayılır.
rate = round((present + late) / total * 100)