uawdijnntqw1x1x1
IP : 216.73.216.93
Hostname : panel.codeskitter.com
Kernel : Linux panel.codeskitter.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
Disable Function : apache_child_terminate, apache_note, apache_setenv, define_syslog_variables, dl, link, opcache_get_status, openlog, pcntl_exec, pcntl_fork, pcntl_setpriority, popen, posix_getpwuid, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid
OS : Linux
PATH:
/
home
/
users
/
unlimited
/
www
/
nigeria.codeskitter.site
/
student
/
progress.php
/
/
<?php include '../includes/config.php'; if(!isset($_SESSION['user_id']) || $_SESSION['user_role'] != 'student') { header("Location: ../login.php"); exit(); } $user_id = $_SESSION['user_id']; // Get overall progress statistics $stats_sql = "SELECT COUNT(DISTINCT e.course_id) as total_courses, COUNT(DISTINCT CASE WHEN e.progress = 100 THEN e.course_id END) as completed_courses, AVG(e.progress) as overall_progress, SUM(sp.time_spent) as total_study_time, COUNT(DISTINCT sp.module_id) as total_modules, COUNT(DISTINCT CASE WHEN sp.is_completed = 1 THEN sp.module_id END) as completed_modules FROM enrollments e LEFT JOIN student_progress sp ON e.user_id = sp.user_id AND e.course_id = sp.course_id WHERE e.user_id = ?"; $stmt = $conn->prepare($stats_sql); $stmt->bind_param("i", $user_id); $stmt->execute(); $stats = $stmt->get_result()->fetch_assoc(); // Get course-wise progress $course_progress_sql = "SELECT c.*, e.progress, e.enrolled_at, COUNT(DISTINCT cm.id) as total_modules, COUNT(DISTINCT CASE WHEN sp.is_completed = 1 THEN sp.module_id END) as completed_modules FROM enrollments e JOIN courses c ON e.course_id = c.id LEFT JOIN course_modules cm ON c.id = cm.course_id LEFT JOIN student_progress sp ON cm.id = sp.module_id AND sp.user_id = e.user_id WHERE e.user_id = ? GROUP BY c.id ORDER BY e.progress DESC"; $stmt_courses = $conn->prepare($course_progress_sql); $stmt_courses->bind_param("i", $user_id); $stmt_courses->execute(); $course_progress = $stmt_courses->get_result(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>My Progress - eLearning</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet"> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.7.2/font/bootstrap-icons.css"> <link rel="stylesheet" href="../assets/css/style.css"> </head> <body> <?php include 'navigation.php'; ?> <div class="container-fluid py-4"> <div class="row"> <div class="col-12"> <h1 class="mb-4">My Learning Progress</h1> <!-- Progress Overview --> <div class="row mb-5"> <div class="col-md-3 mb-3"> <div class="card text-center"> <div class="card-body"> <i class="bi bi-book fs-1 text-primary mb-3"></i> <h3><?php echo $stats['total_courses'] ?? 0; ?></h3> <p class="text-muted mb-0">Total Courses</p> </div> </div> </div> <div class="col-md-3 mb-3"> <div class="card text-center"> <div class="card-body"> <i class="bi bi-check-circle fs-1 text-success mb-3"></i> <h3><?php echo $stats['completed_courses'] ?? 0; ?></h3> <p class="text-muted mb-0">Completed Courses</p> </div> </div> </div> <div class="col-md-3 mb-3"> <div class="card text-center"> <div class="card-body"> <i class="bi bi-graph-up fs-1 text-info mb-3"></i> <h3><?php echo round($stats['overall_progress'] ?? 0); ?>%</h3> <p class="text-muted mb-0">Overall Progress</p> </div> </div> </div> <div class="col-md-3 mb-3"> <div class="card text-center"> <div class="card-body"> <i class="bi bi-clock fs-1 text-warning mb-3"></i> <h3><?php echo round(($stats['total_study_time'] ?? 0) / 60, 1); ?>h</h3> <p class="text-muted mb-0">Study Time</p> </div> </div> </div> </div> <!-- Course Progress --> <div class="card"> <div class="card-header"> <h5 class="mb-0">Course Progress</h5> </div> <div class="card-body"> <div class="table-responsive"> <table class="table table-striped"> <thead> <tr> <th>Course</th> <th>Enrollment Date</th> <th>Modules Completed</th> <th>Overall Progress</th> <th>Study Time</th> <th>Status</th> <th>Action</th> </tr> </thead> <tbody> <?php while($course = $course_progress->fetch_assoc()): $completion_rate = $course['total_modules'] > 0 ? round(($course['completed_modules'] / $course['total_modules']) * 100) : 0; ?> <tr> <td> <strong><?php echo $course['title']; ?></strong> </td> <td><?php echo date('M j, Y', strtotime($course['enrolled_at'])); ?></td> <td> <?php echo $course['completed_modules']; ?>/<?php echo $course['total_modules']; ?> <small class="text-muted">(<?php echo $completion_rate; ?>%)</small> </td> <td> <div class="progress" style="height: 8px;"> <div class="progress-bar bg-success" style="width: <?php echo $course['progress']; ?>%"></div> </div> <small class="text-muted"><?php echo $course['progress']; ?>%</small> </td> <td> <?php $course_time_sql = "SELECT SUM(time_spent) as course_time FROM student_progress WHERE user_id = ? AND course_id = ?"; $stmt_time = $conn->prepare($course_time_sql); $stmt_time->bind_param("ii", $user_id, $course['id']); $stmt_time->execute(); $course_time = $stmt_time->get_result()->fetch_assoc(); echo round(($course_time['course_time'] ?? 0) / 60, 1) . 'h'; ?> </td> <td> <?php if($course['progress'] == 100): ?> <span class="badge bg-success">Completed</span> <?php elseif($course['progress'] > 0): ?> <span class="badge bg-warning">In Progress</span> <?php else: ?> <span class="badge bg-secondary">Not Started</span> <?php endif; ?> </td> <td> <a href="course-player.php?course_id=<?php echo $course['id']; ?>" class="btn btn-sm btn-primary"> Continue </a> </td> </tr> <?php endwhile; ?> </tbody> </table> </div> </div> </div> <!-- Progress Chart Placeholder --> <div class="card mt-4"> <div class="card-header"> <h5 class="mb-0">Progress Over Time</h5> </div> <div class="card-body"> <div class="text-center py-5"> <i class="bi bi-bar-chart fs-1 text-muted"></i> <p class="text-muted mt-2">Progress chart will be displayed here</p> <small class="text-muted">(This would typically show a line chart of your progress over time)</small> </div> </div> </div> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script> </body> </html>
/home/users/unlimited/www/nigeria.codeskitter.site/student/progress.php