<?php
// Include header
include_once 'includes/header.php';
// Get student ID from session
$student_id = $_SESSION['user_id'];
// Get enrolled courses for the current student
$enrolled_courses_query = "
SELECT e.*, c.title as course_title, c.description, c.image, c.duration,
c.price, c.discount_price
FROM enrollments e
INNER JOIN courses c ON e.course_id = c.id
WHERE e.user_id = ? AND e.status IN ('active', 'completed')
ORDER BY e.enrollment_date DESC
";
$stmt = $conn->prepare($enrolled_courses_query);
$stmt->bind_param("i", $student_id);
$stmt->execute();
$result = $stmt->get_result();
$enrolled_courses = [];
$active_courses = [];
$completed_courses = [];
while ($row = $result->fetch_assoc()) {
if ($row['status'] == 'completed') {
$completed_courses[] = $row;
} else {
$active_courses[] = $row;
}
}
// Get applied courses (applications)
$applied_courses_query = "
SELECT a.*, c.title as course_title, c.description, c.image, c.duration,
c.price, c.discount_price,
(
SELECT COUNT(*)
FROM student_documents sd
WHERE sd.user_id = a.user_id AND sd.status = 'verified'
) as verified_docs,
(
SELECT COUNT(*)
FROM student_documents sd
WHERE sd.user_id = a.user_id
) as total_docs
FROM enrollment_applications a
INNER JOIN courses c ON a.course_id = c.id
WHERE a.user_id = ? AND a.status NOT IN ('cancelled', 'rejected')
ORDER BY a.application_date DESC
";
$stmt = $conn->prepare($applied_courses_query);
$stmt->bind_param("i", $student_id);
$stmt->execute();
$result = $stmt->get_result();
$applied_courses = [];
while ($row = $result->fetch_assoc()) {
$applied_courses[] = $row;
}
?>
<div class="container-fluid py-4">
<div class="row mb-4">
<div class="col-12">
<div class="card">
<div class="card-body">
<h5 class="card-title">My Courses</h5>
<p class="text-muted">Manage your enrolled courses</p>
</div>
</div>
</div>
</div>
<!-- Active Courses -->
<div class="row mb-4">
<div class="col-12">
<div class="card">
<div class="card-header bg-primary text-white">
<h5 class="mb-0">Active Courses</h5>
</div>
<div class="card-body">
<?php if (empty($active_courses)): ?>
<div class="alert alert-info mb-0">
<i class="fas fa-info-circle me-2"></i> You don't have any active courses.
</div>
<?php else: ?>
<div class="row">
<?php foreach ($active_courses as $course): ?>
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 course-card">
<img src="<?php echo !empty($course['image']) ? '../' . $course['image'] : '../assets/img/course-placeholder.jpg'; ?>"
class="card-img-top" alt="<?php echo htmlspecialchars($course['course_title']); ?>">
<div class="card-body">
<h5 class="course-title"><?php echo htmlspecialchars($course['course_title']); ?></h5>
<div class="d-flex align-items-center mb-3">
<?php if ($course['status'] === 'completed'): ?>
<span class="badge bg-success me-2">Completed</span>
<?php else: ?>
<span class="badge bg-primary me-2">Active</span>
<?php endif; ?>
<span class="ms-auto small text-muted">
<i class="fas fa-calendar me-1"></i>
<?php echo date('M d, Y', strtotime($course['enrollment_date'])); ?>
</span>
</div>
<?php if ($course['status'] === 'completed'): ?>
<div class="alert alert-success p-2 mb-3">
<div class="d-flex align-items-center">
<i class="fas fa-award me-2"></i>
<div>Course completed!</div>
</div>
</div>
<?php endif; ?>
</div>
<div class="card-footer">
<div class="d-grid gap-2">
<a href="course_details.php?id=<?php echo $course['course_id']; ?>" class="btn btn-primary">
<i class="fas fa-book-open me-1"></i> View Details
</a>
<?php if ($course['status'] === 'completed'): ?>
<a href="certificates.php" class="btn btn-outline-success">
<i class="fas fa-certificate me-1"></i> View Certificate
</a>
<?php endif; ?>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<!-- Applied Courses -->
<div class="row mb-4">
<div class="col-12">
<div class="card">
<div class="card-header bg-warning text-dark">
<h5 class="mb-0">Applied Courses</h5>
</div>
<div class="card-body">
<?php if (empty($applied_courses)): ?>
<div class="alert alert-info mb-0">
<i class="fas fa-info-circle me-2"></i> You don't have any pending applications.
</div>
<?php else: ?>
<div class="row">
<?php foreach ($applied_courses as $course): ?>
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 course-card">
<img src="<?php echo !empty($course['image']) ? '../' . $course['image'] : '../assets/img/course-placeholder.jpg'; ?>"
class="card-img-top" alt="<?php echo htmlspecialchars($course['course_title']); ?>">
<div class="card-body">
<h5 class="course-title"><?php echo htmlspecialchars($course['course_title']); ?></h5>
<div class="d-flex align-items-center mb-3">
<span class="badge bg-<?php echo ($course['status'] == 'pending') ? 'warning' : (($course['status'] == 'documents_pending') ? 'info' : 'primary'); ?> me-2">
<?php
if ($course['status'] == 'pending') {
echo 'Pending Review';
} elseif ($course['status'] == 'documents_pending') {
echo 'Documents Pending';
} elseif ($course['status'] == 'payment_pending') {
echo 'Payment Pending';
} else {
echo ucfirst($course['status']);
}
?>
</span>
<span class="ms-auto small text-muted">
<i class="fas fa-calendar me-1"></i>
<?php echo date('M d, Y', strtotime($course['application_date'])); ?>
</span>
</div>
<?php if (isset($course['total_docs']) && $course['total_docs'] > 0): ?>
<div class="mt-2">
<small class="text-muted">Documents Verified:</small>
<div class="progress mt-1" style="height: 6px;">
<div class="progress-bar bg-success" role="progressbar" style="width: <?php echo ($course['verified_docs'] / $course['total_docs']) * 100; ?>%"
aria-valuenow="<?php echo $course['verified_docs']; ?>" aria-valuemin="0" aria-valuemax="<?php echo $course['total_docs']; ?>"></div>
</div>
<div class="d-flex justify-content-between mt-1">
<small><?php echo $course['verified_docs']; ?>/<?php echo $course['total_docs']; ?> verified</small>
</div>
</div>
<?php endif; ?>
</div>
<div class="card-footer">
<a href="documents.php" class="btn btn-primary w-100">
<i class="fas fa-file-alt me-1"></i> Manage Documents
</a>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
<!-- Completed Courses -->
<div class="row mb-4">
<div class="col-12">
<div class="card">
<div class="card-header bg-success text-white">
<h5 class="mb-0">Completed Courses</h5>
</div>
<div class="card-body">
<?php if (empty($completed_courses)): ?>
<div class="alert alert-info mb-0">
<i class="fas fa-info-circle me-2"></i> You haven't completed any courses yet.
</div>
<?php else: ?>
<div class="row">
<?php foreach ($completed_courses as $course): ?>
<div class="col-md-6 col-lg-4 mb-4">
<div class="card h-100 course-card">
<div class="position-relative">
<img src="<?php echo !empty($course['image']) ? '../' . $course['image'] : '../assets/img/course-placeholder.jpg'; ?>"
class="card-img-top" alt="<?php echo htmlspecialchars($course['course_title']); ?>">
<div class="position-absolute top-0 end-0 m-2">
<span class="badge bg-success p-2">
<i class="fas fa-award me-1"></i> COMPLETED
</span>
</div>
</div>
<div class="card-body">
<h5 class="course-title"><?php echo htmlspecialchars($course['course_title']); ?></h5>
<p class="text-muted small mb-2">
<i class="fas fa-calendar-check me-1"></i> Completed:
<?php echo !empty($course['completion_date']) ? date('d M Y', strtotime($course['completion_date'])) : date('d M Y', strtotime($course['enrollment_date'])); ?>
</p>
<?php if (!empty($course['certificate_number'])): ?>
<div class="alert alert-light border p-2 mb-3">
<small class="d-block text-muted">Certificate Number:</small>
<strong><?php echo htmlspecialchars($course['certificate_number']); ?></strong>
</div>
<?php endif; ?>
</div>
<div class="card-footer">
<div class="d-grid gap-2">
<a href="course_details.php?id=<?php echo $course['course_id']; ?>" class="btn btn-primary">
<i class="fas fa-book-open me-1"></i> View Details
</a>
<a href="certificates.php" class="btn btn-outline-success">
<i class="fas fa-certificate me-1"></i> View Certificate
</a>
</div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php endif; ?>
</div>
</div>
</div>
</div>
</div>
<?php
// Include footer
include_once 'includes/footer.php';
?>