Proje: OkulUp · Hub: OkulUp — Domain

Dashboard Sistemi

5 Farklı Dashboard

Her rol için ayrı API endpoint ve component.

Admin Dashboard

stats: { total_schools, total_users, total_students, total_teachers }

AdminCharts: donut chart ile kullanıcı dağılımı

Manager Dashboard

stats: { students_count, teachers_count, classes_count, attendance_rate,
         pending_payments, unread_messages, unread_conversations }
recent_announcements: []

Teacher Dashboard

stats: { my_classes_count, students_count, attendance_rate, attendance_rate_30d,
         today_attendance_taken, unread_messages, unread_conversations }
recent_announcements: []
pending_actions: [{ type: 'attendance', label, class_id }]

today_attendance_taken → yoklama alınmadıysa pending action gösterilir

Parent Dashboard

children: [{ id, name }]
stats: { unread_messages, pending_payments, unread_conversations }
recent_announcements: []
child_summaries: [{ student_id, attendance_rate, pending_assignments, ... }]

Student Dashboard

stats: { attendance_rate, pending_assignments, ... }

Dashboard Rol Belirleme

getDashboardRole(user, context) — backend dashboard_* permission’larına göre:

  • dashboard_admin → admin dashboard
  • dashboard_teacher → teacher dashboard

Bu bir admin’i teacher dashboard’da gösterebilir (okul yönetim amaçlı).

Component’ler

src/components/modules/dashboard/:

  • DashboardHeader, StatsSection, StatCard, QuickActions, QuickActionCard
  • RecentActivities, ActivityItem, TodaysTasks, TaskItem
  • WidgetSection, WidgetSettings — özelleştirilebilir dashboard widget’ları
  • MyClasses, ClassCard — teacher için sınıf listesi
  • AnnouncementCTA, UpcomingEvents, UpcomingAssignments
  • charts/: MiniDonutChart, MiniBarChart, StackedBarChart, ProgressRing, RadarChart, ChartCard
  • AdminCharts, ManagerCharts, TeacherCharts, ParentCharts, StudentCharts, ChildPerformanceRadar

Cache

staleTime: 5 dakika, gcTime: 30 dakika, refetchOnMount: 'always'