Proje: Okul B2B App · Hub: Okul B2B App — Domain
Dashboard İstatistikleri
Ana sayfa (index tab) iki bölümden oluşur: İstatistik kartları + Son başvurular.
İstatistik Kartları (DashboardStats)
| ID | Label | iconKey | Açıklama |
|---|---|---|---|
| 1 | Görüntüleme | view | Web/mobil toplam görüntüleme |
| 2 | Bilgi Talebi | leads | Toplam lead sayısı |
| 3 | Kayıt | registration | Kayıt olan öğrenci sayısı |
| 4 | Yıllık Yatırım Getirisi | revenue | Toplam yıllık gelir (TL) |
API Endpoint
GET /customer/statistics?school_id={id}
StatsService.getStats(schoolId?) ile çekilir. 5 dakika cache’lenir.
Lead Sayısı Doğruluğu
DashboardStats içindeki lead count, istatistik API yerine LeadsService.getLeads(1, 1, schoolId) ile totalCount alınarak daha doğru hale getirilir. Birden fazla okul için aggregate API değeri kullanılır.
Son Başvurular
LeadsService.getRecentLeads(selectedSchoolId) → ilk 5 başvuru.
Ana sayfada lead detayı LeadDetailModal ile açılır (navigation yapmadan).
Meeting Status Kategorileri
Lead listesinde durum badge’i için üç kategori:
| Kategori | Renk | Statüler |
|---|---|---|
| success | Yeşil | Bursluluk kaydı alındı, Randevu verildi, Kayıt gerçekleşti |
| neutral | Mavi | Bursluluk için görüşüldü, Ulaşılamadı, Düşünme aşamasında, vs. |
| reject | Kırmızı | Anlaşma gerçekleşmedi |
Refresh
RefreshControl ile pull-to-refresh desteklenir. trackDashboardEvent('refresh_stats') analytics event’i tetiklenir.
Related
- leads-basvu-yonetimi — lead listesi detayları
- firma-okul-hiyerarsisi — schoolId filtreleme