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
| Endpoint | Cache Key |
|---|---|
/dashboard/admin | dashboard:admin |
/dashboard/manager | dashboard:manager:{schoolId}:{userId} |
/dashboard/teacher | dashboard:teacher:{userId} |
/dashboard/parent | dashboard:parent:{userId} |
/dashboard/student | dashboard: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)
Related
- api-kod-konvansiyonlari — genel kod pattern’leri
- feature-flag-sistemi — dashboard feature bağımlılığı yok