/home/techb158/workloadmatch.com/api/routes
NameSizeModeActions
ai_generate.php116420644editdlrm
assignments.php99310644editdlrm
auth.php66970644editdlrm
chat.php99340644editdlrm
courses.php72250644editdlrm
coursesessions.php67050644editdlrm
dashboard.php62320644editdlrm
groups.php110990644editdlrm
logs.php35870644editdlrm
managers.php96120644editdlrm
masters.php66850644editdlrm
notifications.php59750644editdlrm
preferences.php64870644editdlrm
programs.php48820644editdlrm
reports.php136960644editdlrm
roles.php85160644editdlrm
schedules.php110420644editdlrm
settings.php42950644editdlrm
teachers.php160130644editdlrm
timeslots.php48070644editdlrm
Edit: /home/techb158/workloadmatch.com/api/routes/dashboard.php (6232B)
'master_profile', 'managers' => 'manager_profile', 'teachers' => 'teacher_profile', 'courses' => 'Courses', 'groups' => 'manager_group_name', 'programs' => 'Programs', ]; foreach ($tables as $key => $table) { $r = $mysqli->query("SELECT COUNT(*) AS c FROM $table"); $counts[$key] = (int)$r->fetch_assoc()['c']; $r->close(); } // Active users (logged in today) $today = date('Y-m-d'); $r = $mysqli->query("SELECT COUNT(*) AS c FROM teacher_profile WHERE Login_Date LIKE '$today%'"); $counts['active_teachers'] = (int)$r->fetch_assoc()['c']; $r->close(); // Unassigned schedules $r = $mysqli->query("SELECT COUNT(*) AS c FROM schedule_course_for_group WHERE Assigned = 0"); $counts['unassigned'] = (int)$r->fetch_assoc()['c']; $r->close(); // Recent activity $activities = []; $r = $mysqli->query("SELECT * FROM activity_logs ORDER BY created_at DESC LIMIT 10"); while ($row = $r->fetch_assoc()) { $activities[] = $row; } $r->close(); return [ 'counts' => $counts, 'activities' => $activities, ]; } function getMasterDashboard(mysqli $mysqli, string $userId): array { $r = $mysqli->query("SELECT Admin_ID FROM master_profile WHERE Master_ID = $userId"); $adminId = (int)$r->fetch_assoc()['Admin_ID']; $r->close(); $counts = []; $r = $mysqli->query("SELECT COUNT(*) AS c FROM manager_profile WHERE Master_ID = $userId"); $counts['managers'] = (int)$r->fetch_assoc()['c']; $r->close(); $r = $mysqli->query("SELECT COUNT(*) AS c FROM teacher_profile WHERE Master_ID = $userId"); $counts['teachers'] = (int)$r->fetch_assoc()['c']; $r->close(); $r = $mysqli->query("SELECT COUNT(*) AS c FROM manager_group_name WHERE Master_ID = $userId"); $counts['groups'] = (int)$r->fetch_assoc()['c']; $r->close(); $r = $mysqli->query("SELECT COUNT(*) AS c FROM schedule_course_for_group s JOIN manager_group_name g ON g.Group_ID = s.Group_ID WHERE g.Master_ID = $userId AND s.Assigned = 0"); $counts['unassigned'] = (int)$r->fetch_assoc()['c']; $r->close(); return ['counts' => $counts]; } function getManagerDashboard(mysqli $mysqli): array { $managerId = Auth::getEffectiveManagerId(); $counts = []; $r = $mysqli->query("SELECT COUNT(*) AS c FROM teacher_profile WHERE Manager_ID = $managerId"); $counts['teachers'] = (int)$r->fetch_assoc()['c']; $r->close(); $r = $mysqli->query("SELECT COUNT(*) AS c FROM manager_group_name WHERE Manager_ID = $managerId"); $counts['groups'] = (int)$r->fetch_assoc()['c']; $r->close(); $r = $mysqli->query("SELECT COUNT(DISTINCT CONCAT(scg.Course_ID, '-', scg.Group_ID)) AS c FROM schedule_course_for_group scg JOIN manager_group_name mgn ON mgn.Group_ID = scg.Group_ID WHERE scg.Assigned = 0 AND mgn.Manager_ID = $managerId"); $counts['unassigned'] = (int)$r->fetch_assoc()['c']; $r->close(); $r = $mysqli->query("SELECT COUNT(*) AS c FROM teacher_course_assignments tca JOIN teacher_profile tp ON tp.Teacher_ID = tca.Teacher_ID WHERE tp.Manager_ID = $managerId"); $counts['assignments'] = (int)$r->fetch_assoc()['c']; $r->close(); // Unread messages $r = $mysqli->query("SELECT COUNT(*) AS c FROM chat_messages WHERE receiver_id = $managerId AND receiver_type = 'manager' AND is_read = 0"); $counts['unread_messages'] = (int)$r->fetch_assoc()['c']; $r->close(); // Today's schedule count $today = date('Y-m-d'); $r = $mysqli->query("SELECT COUNT(*) AS c FROM schedule_course_for_group scg JOIN manager_group_name g ON g.Group_ID = scg.Group_ID WHERE g.Manager_ID = $managerId AND scg.Start_Date = '$today'"); $counts['today_schedules'] = (int)$r->fetch_assoc()['c']; $r->close(); return ['counts' => $counts]; } function getTeacherDashboard(mysqli $mysqli, string $userId): array { $counts = []; // Today's courses $today = date('Y-m-d'); $r = $mysqli->query("SELECT COUNT(*) AS c FROM schedule_course_for_group scg JOIN teacher_course_assignments tca ON tca.Schedule_ID = scg.Schedule_ID WHERE tca.Teacher_ID = $userId AND scg.Start_Date = '$today'"); $counts['today_courses'] = (int)$r->fetch_assoc()['c']; $r->close(); // Unread messages $r = $mysqli->query("SELECT COUNT(*) AS c FROM chat_messages WHERE receiver_id = $userId AND receiver_type = 'teacher' AND is_read = 0"); $counts['unread_messages'] = (int)$r->fetch_assoc()['c']; $r->close(); // Total assignments $r = $mysqli->query("SELECT COUNT(*) AS c FROM teacher_course_assignments WHERE Teacher_ID = $userId"); $counts['total_assignments'] = (int)$r->fetch_assoc()['c']; $r->close(); // Upcoming courses (next 7 days) $nextWeek = date('Y-m-d', strtotime('+7 days')); $r = $mysqli->query("SELECT scg.*, c.Course_Name, c.Course_Code FROM schedule_course_for_group scg JOIN teacher_course_assignments tca ON tca.Schedule_ID = scg.Schedule_ID JOIN Courses c ON c.Course_ID = scg.Course_ID WHERE tca.Teacher_ID = $userId AND scg.Start_Date >= '$today' AND scg.Start_Date <= '$nextWeek' ORDER BY scg.Start_Date"); $upcoming = $r->fetch_all(MYSQLI_ASSOC); $r->close(); return [ 'counts' => $counts, 'upcoming' => $upcoming, ]; }