37970-vm/admin.php
Flatlogic Bot e29ef2dff4 v2
2026-01-30 14:21:32 +00:00

148 lines
6.0 KiB
PHP

<?php
require_once __DIR__ . '/db/config.php';
$db = db();
$current_role = 'Admin';
$pageTitle = 'Admin Dashboard | Township Schools Platform';
// Fetch Some Stats
$total_learners = $db->query("SELECT COUNT(*) FROM learners")->fetchColumn();
// Attendance for today
$today = date('Y-m-d');
$present_today = $db->prepare("SELECT COUNT(*) FROM attendance WHERE date = ? AND status = 'present'");
$present_today->execute([$today]);
$present_today_count = $present_today->fetchColumn();
$presence_rate = $total_learners > 0 ? round(($present_today_count / $total_learners) * 100) : 0;
// Analytics: Attendance by Grade
$grade_stats = $db->query("
SELECT l.grade,
COUNT(l.id) as total,
SUM(CASE WHEN a.status = 'present' THEN 1 ELSE 0 END) as present
FROM learners l
LEFT JOIN attendance a ON l.id = a.learner_id AND a.date = '$today'
GROUP BY l.grade
ORDER BY l.grade
")->fetchAll();
include 'includes/header.php';
?>
<div class="container pb-5">
<div class="row mb-4">
<div class="col-12">
<h2 class="h4 mb-1">School Admin Dashboard</h2>
<p class="text-muted small">Overview of school operations</p>
</div>
</div>
<!-- Stats Row -->
<div class="row g-3 mb-4">
<div class="col-md-3">
<div class="card p-3 stats-card">
<p>Total Learners</p>
<h3><?= $total_learners ?></h3>
</div>
</div>
<div class="col-md-3">
<div class="card p-3 stats-card" style="border-left-color: #2E7D32;">
<p>Today's Presence</p>
<h3><?= $presence_rate ?>%</h3>
</div>
</div>
<div class="col-md-3">
<div class="card p-3 stats-card" style="border-left-color: var(--secondary-color);">
<p>Total Staff</p>
<h3>12</h3>
</div>
</div>
<div class="col-md-3">
<div class="card p-3 stats-card" style="border-left-color: #0288D1;">
<p>SGB Meetings</p>
<h3>1</h3>
</div>
</div>
</div>
<div class="row g-4">
<div class="col-md-8">
<div class="card mb-4">
<div class="card-header bg-white py-3">
<h5 class="mb-0">Attendance Analytics by Grade (Today)</h5>
</div>
<div class="card-body">
<?php foreach ($grade_stats as $stat): ?>
<?php
$rate = $stat['total'] > 0 ? round(($stat['present'] / $stat['total']) * 100) : 0;
$bar_color = $rate > 80 ? 'bg-success' : ($rate > 50 ? 'bg-warning' : 'bg-danger');
?>
<div class="mb-3">
<div class="d-flex justify-content-between mb-1">
<span class="small fw-semibold"><?= htmlspecialchars($stat['grade']) ?></span>
<span class="small text-muted"><?= $rate ?>% (<?= $stat['present'] ?>/<?= $stat['total'] ?>)</span>
</div>
<div class="progress" style="height: 8px;">
<div class="progress-bar <?= $bar_color ?>" role="progressbar" style="width: <?= $rate ?>%"></div>
</div>
</div>
<?php endforeach; ?>
</div>
</div>
<div class="card">
<div class="card-header bg-white py-3">
<h5 class="mb-0">Recent Activity</h5>
</div>
<div class="card-body">
<ul class="list-group list-group-flush">
<li class="list-group-item px-0">
<div class="d-flex justify-content-between">
<div>
<h6 class="mb-0">Daily Register Completed</h6>
<small class="text-muted">Grade 10A - Mrs. Mdluli</small>
</div>
<span class="text-muted small">10 mins ago</span>
</div>
</li>
<li class="list-group-item px-0">
<div class="d-flex justify-content-between">
<div>
<h6 class="mb-0">New Learner Registered</h6>
<small class="text-muted">Sipho Zulu - Grade 8B</small>
</div>
<span class="text-muted small">1 hour ago</span>
</div>
</li>
</ul>
</div>
</div>
</div>
<div class="col-md-4">
<div class="card h-100">
<div class="card-header bg-white py-3">
<h5 class="mb-0">Quick Actions</h5>
</div>
<div class="card-body">
<div class="d-grid gap-2">
<a href="learners.php" class="btn btn-outline-primary text-start">
<i class="bi bi-person-plus me-2"></i> Register New Learner
</a>
<button class="btn btn-outline-primary text-start">
<i class="bi bi-file-earmark-bar-graph me-2"></i> Generate Reports
</a>
<button class="btn btn-outline-primary text-start">
<i class="bi bi-megaphone me-2"></i> Send Parent Notice
</a>
<button class="btn btn-outline-primary text-start">
<i class="bi bi-calendar-event me-2"></i> Schedule Meeting
</a>
</div>
</div>
</div>
</div>
</div>
</div>
<?php include 'includes/footer.php'; ?>