| Current Path : /home/users/unlimited/www/nigeria.codeskitter.site/student/ |
| Current File : /home/users/unlimited/www/nigeria.codeskitter.site/student/my-courses.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 all enrolled courses
$enrolled_courses_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.enrolled_at DESC";
$stmt = $conn->prepare($enrolled_courses_sql);
$stmt->bind_param("i", $user_id);
$stmt->execute();
$enrolled_courses = $stmt->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 Courses - Gex Neural Academy</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">
<div class="d-flex justify-content-between align-items-center mb-4">
<h1>My Courses</h1>
<a href="../courses.php" class="btn btn-primary">
<i class="bi bi-plus-circle"></i> Browse More Courses
</a>
</div>
<div class="row">
<?php if($enrolled_courses->num_rows > 0): ?>
<?php while($course = $enrolled_courses->fetch_assoc()):
$completion_rate = $course['total_modules'] > 0 ?
round(($course['completed_modules'] / $course['total_modules']) * 100) : 0;
?>
<div class="col-lg-4 col-md-6 mb-4">
<div class="card course-card h-100">
<img src="<?php echo $course['image'] ? '../' . $course['image'] : '../assets/images/course-placeholder.jpg'; ?>"
class="card-img-top" alt="<?php echo $course['title']; ?>" style="height: 200px; object-fit: cover;">
<div class="card-body">
<h5 class="card-title"><?php echo $course['title']; ?></h5>
<p class="card-text"><?php echo substr($course['description'], 0, 100); ?>...</p>
<div class="course-meta mb-3">
<div class="d-flex justify-content-between text-muted small">
<span><i class="bi bi-play-circle"></i> <?php echo $course['total_modules']; ?> modules</span>
<span><i class="bi bi-check-circle"></i> <?php echo $course['completed_modules']; ?> completed</span>
</div>
</div>
<div class="progress mb-3" style="height: 8px;">
<div class="progress-bar bg-success" style="width: <?php echo $completion_rate; ?>%"></div>
</div>
<div class="d-flex justify-content-between align-items-center">
<small class="text-muted"><?php echo $completion_rate; ?>% Complete</small>
<small class="text-muted">Enrolled: <?php echo date('M j, Y', strtotime($course['enrolled_at'])); ?></small>
</div>
</div>
<div class="card-footer">
<div class="d-grid gap-2">
<a href="course-player.php?course_id=<?php echo $course['id']; ?>" class="btn btn-primary">
<?php echo $completion_rate > 0 ? 'Continue Learning' : 'Start Learning'; ?>
</a>
<a href="course-progress.php?course_id=<?php echo $course['id']; ?>" class="btn btn-outline-secondary btn-sm">
View Progress
</a>
</div>
</div>
</div>
</div>
<?php endwhile; ?>
<?php else: ?>
<div class="col-12 text-center py-5">
<i class="bi bi-book fs-1 text-muted mb-3"></i>
<h3 class="text-muted">No Courses Enrolled</h3>
<p class="text-muted mb-4">You haven't enrolled in any courses yet.</p>
<a href="../courses.php" class="btn btn-primary btn-lg">
<i class="bi bi-plus-circle"></i> Browse Courses
</a>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
</body>
</html>