<?php
session_start();
// Check if student is logged in
if (!isset($_SESSION['user_id']) || $_SESSION['role'] !== 'student') {
echo json_encode([
'success' => false,
'message' => 'Unauthorized access'
]);
exit();
}
// Include database connection
require_once('../../includes/db_connection.php');
$userId = $_SESSION['user_id'];
try {
// Fetch all documents for the user
$stmt = $conn->prepare("
SELECT id, document_type, file_path, upload_date, status, admin_notes
FROM student_documents
WHERE user_id = ?
ORDER BY upload_date DESC
");
$stmt->bind_param('i', $userId);
$stmt->execute();
$result = $stmt->get_result();
$documents = [];
// Define document types display names
$documentTypeDisplay = [
'id_proof' => 'ID Proof',
'address_proof' => 'Address Proof',
'qualification_certificate' => 'Qualification Certificate',
'passport_photo' => 'Passport Size Photo'
];
// Define status badges
$statusBadges = [
'pending' => '<span class="badge bg-warning text-dark">Pending</span>',
'verified' => '<span class="badge bg-success">Verified</span>',
'rejected' => '<span class="badge bg-danger">Rejected</span>'
];
// Format documents for response
while ($row = $result->fetch_assoc()) {
$documents[] = [
'id' => $row['id'],
'document_type' => $row['document_type'],
'document_type_display' => $documentTypeDisplay[$row['document_type']] ?? $row['document_type'],
'file_path' => $row['file_path'],
'upload_date' => date('M d, Y', strtotime($row['upload_date'])),
'status' => $row['status'],
'status_badge' => $statusBadges[$row['status']] ?? '<span class="badge bg-secondary">'.$row['status'].'</span>',
'admin_notes' => $row['admin_notes']
];
}
// Check for missing required documents
$requiredDocuments = [
'id_proof' => 'ID Proof',
'address_proof' => 'Address Proof',
'qualification_certificate' => 'Qualification Certificate',
'passport_photo' => 'Passport Size Photo'
];
$missingDocuments = [];
$uploadedDocumentTypes = array_column($documents, 'document_type');
foreach ($requiredDocuments as $type => $display) {
if (!in_array($type, $uploadedDocumentTypes)) {
$missingDocuments[] = [
'document_type' => $type,
'document_type_display' => $display
];
}
}
// Get application status if exists
$applicationStatus = null;
$stmt = $conn->prepare("
SELECT status FROM applications
WHERE user_id = ?
ORDER BY application_date DESC
LIMIT 1
");
$stmt->bind_param('i', $userId);
$stmt->execute();
$result = $stmt->get_result();
if ($row = $result->fetch_assoc()) {
$applicationStatus = $row['status'];
}
echo json_encode([
'success' => true,
'documents' => $documents,
'missing_documents' => $missingDocuments,
'application_status' => $applicationStatus
]);
} catch (Exception $e) {
echo json_encode([
'success' => false,
'message' => 'Error retrieving documents: ' . $e->getMessage()
]);
}
$conn->close();