Your IP : 216.73.216.93


Current Path : /home/users/unlimited/www/nigeria.codeskitter.site/student/
Upload File :
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;
}
?>