| Current Path : /home/users/unlimited/www/nigeria.codeskitter.site/student/ |
| Current File : /home/users/unlimited/www/nigeria.codeskitter.site/student/mark-complete.php |
<?php
include '../includes/config.php';
if(!isset($_SESSION['user_id']) || $_SESSION['user_role'] != 'student') {
echo json_encode(['success' => false, 'message' => 'Unauthorized']);
exit();
}
if($_SERVER['REQUEST_METHOD'] == 'POST') {
$user_id = $_SESSION['user_id'];
$module_id = $_POST['module_id'];
// Get module and course info
$module_sql = "SELECT cm.*, cm.course_id FROM course_modules cm WHERE cm.id = ?";
$stmt = $conn->prepare($module_sql);
$stmt->bind_param("i", $module_id);
$stmt->execute();
$module = $stmt->get_result()->fetch_assoc();
if($module) {
// Mark module as completed
$complete_sql = "INSERT INTO student_progress (user_id, module_id, course_id, progress_percentage, is_completed, completed_at)
VALUES (?, ?, ?, 100, 1, NOW())
ON DUPLICATE KEY UPDATE progress_percentage = 100, is_completed = 1, completed_at = NOW()";
$stmt_complete = $conn->prepare($complete_sql);
$stmt_complete->bind_param("iii", $user_id, $module_id, $module['course_id']);
$stmt_complete->execute();
// Update course progress
updateCourseProgress($conn, $user_id, $module['course_id']);
echo json_encode(['success' => true]);
} else {
echo json_encode(['success' => false, 'message' => 'Module not found']);
}
}
function updateCourseProgress($conn, $user_id, $course_id) {
// Calculate overall course progress
$progress_sql = "SELECT
COUNT(*) as total_modules,
COUNT(CASE WHEN sp.is_completed = 1 THEN 1 END) as completed_modules
FROM course_modules cm
LEFT JOIN student_progress sp ON cm.id = sp.module_id AND sp.user_id = ?
WHERE cm.course_id = ?";
$stmt = $conn->prepare($progress_sql);
$stmt->bind_param("ii", $user_id, $course_id);
$stmt->execute();
$progress = $stmt->get_result()->fetch_assoc();
$course_progress = $progress['total_modules'] > 0 ?
round(($progress['completed_modules'] / $progress['total_modules']) * 100) : 0;
// Update enrollment progress
$update_sql = "UPDATE enrollments SET progress = ? WHERE user_id = ? AND course_id = ?";
$stmt_update = $conn->prepare($update_sql);
$stmt_update->bind_param("iii", $course_progress, $user_id, $course_id);
$stmt_update->execute();
return $course_progress;
}
?>