query('SELECT status, COUNT(*) as count FROM candidates GROUP BY status'); $candidate_stats = $stmt->fetchAll(PDO::FETCH_ASSOC); $total_candidates = array_sum(array_column($candidate_stats, 'count')); // Task stats $stmt = $pdo->query('SELECT status, COUNT(*) as count FROM tasks GROUP BY status'); $task_stats = $stmt->fetchAll(PDO::FETCH_ASSOC); $total_tasks = array_sum(array_column($task_stats, 'count')); $completed_tasks = 0; foreach ($task_stats as $stat) { if ($stat['status'] === 'Completed') { $completed_tasks = $stat['count']; break; } } $candidate_status_labels = json_encode(array_column($candidate_stats, 'status')); $candidate_status_data = json_encode(array_column($candidate_stats, 'count')); $task_status_labels = json_encode(array_column($task_stats, 'status')); $task_status_data = json_encode(array_column($task_stats, 'count')); // Candidates per day $stmt = $pdo->query("SELECT DATE(created_at) as date, COUNT(*) as count FROM candidates GROUP BY DATE(created_at) ORDER BY DATE(created_at) ASC"); $candidates_per_day = $stmt->fetchAll(PDO::FETCH_ASSOC); $candidates_per_day_labels = json_encode(array_column($candidates_per_day, 'date')); $candidates_per_day_data = json_encode(array_column($candidates_per_day, 'count')); // Tasks per day $stmt = $pdo->query("SELECT DATE(created_at) as date, COUNT(*) as count FROM tasks GROUP BY DATE(created_at) ORDER BY DATE(created_at) ASC"); $tasks_per_day = $stmt->fetchAll(PDO::FETCH_ASSOC); $tasks_per_day_labels = json_encode(array_column($tasks_per_day, 'date')); $tasks_per_day_data = json_encode(array_column($tasks_per_day, 'count')); // Tasks completed per day $stmt = $pdo->query("SELECT DATE(updated_at) as date, COUNT(*) as count FROM tasks WHERE status = 'Done' GROUP BY DATE(updated_at) ORDER BY DATE(updated_at) ASC"); $tasks_completed_per_day = $stmt->fetchAll(PDO::FETCH_ASSOC); $tasks_completed_per_day_labels = json_encode(array_column($tasks_completed_per_day, 'date')); $tasks_completed_per_day_data = json_encode(array_column($tasks_completed_per_day, 'count')); // Fetch candidates for table $page = isset($_GET['page']) ? (int)$_GET['page'] : 1; $limit = 5; $offset = ($page - 1) * $limit; $stmt = $pdo->prepare("SELECT * FROM candidates LIMIT :limit OFFSET :offset"); $stmt->bindParam(':limit', $limit, PDO::PARAM_INT); $stmt->bindParam(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $candidates = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt = $pdo->query("SELECT COUNT(*) FROM candidates"); $total_candidates_records = $stmt->fetchColumn(); $total_candidate_pages = ceil($total_candidates_records / $limit); // Fetch tasks for table $stmt = $pdo->prepare("SELECT * FROM tasks LIMIT :limit OFFSET :offset"); $stmt->bindParam(':limit', $limit, PDO::PARAM_INT); $stmt->bindParam(':offset', $offset, PDO::PARAM_INT); $stmt->execute(); $tasks = $stmt->fetchAll(PDO::FETCH_ASSOC); $stmt = $pdo->query("SELECT COUNT(*) FROM tasks"); $total_tasks_records = $stmt->fetchColumn(); $total_task_pages = ceil($total_tasks_records / $limit); ?> Analytics Dashboard

Analytics Dashboard

Total Candidates

Total Tasks

Completed Tasks

Candidates by Status
Tasks by Status
Candidates per Day
Tasks Created per Day
Tasks Completed per Day
Recent Candidates
Add Candidate
Name Email Status Actions
Edit Delete
Recent Tasks
Add Task
Title Status Assigned To Actions
Edit Delete