36416-vm/dashboard.php
Flatlogic Bot 6cef6ef090 Deris Ai
2025-11-28 17:47:44 +00:00

235 lines
11 KiB
PHP

<?php
session_start();
// If the user is not logged in, redirect to the login page.
if (!isset($_SESSION['user_id'])) {
header("Location: login.php");
exit;
}
$userName = $_SESSION['user_name'] ?? 'User';
$jobMatchScore = null;
if (isset($_POST['calculate_score'])) {
$resumeText = $_POST['resume_text'] ?? '';
$jobDescription = $_POST['job_description'] ?? '';
function calculate_keyword_match($resume, $job_description) {
$resume_keywords = str_word_count(strtolower($resume), 1);
$job_keywords = str_word_count(strtolower($job_description), 1);
$common_keywords = array_intersect($resume_keywords, $job_keywords);
$match_percentage = count($common_keywords) / count($job_keywords);
return min($match_percentage, 1.0) * 40;
}
function calculate_skills_overlap($resume, $job_description) {
// For simplicity, we'll use a predefined list of skills.
$skills = ['php', 'javascript', 'python', 'java', 'c++', 'sql', 'html', 'css'];
$resume_lower = strtolower($resume);
$job_lower = strtolower($job_description);
$resume_skills = 0;
$job_skills = 0;
foreach ($skills as $skill) {
if (strpos($resume_lower, $skill) !== false) {
$resume_skills++;
}
if (strpos($job_lower, $skill) !== false) {
$job_skills++;
}
}
if ($job_skills === 0) {
return 0;
}
$overlap = $resume_skills / $job_skills;
return min($overlap, 1.0) * 30;
}
function calculate_action_verbs($resume) {
$action_verbs = ['managed', 'led', 'developed', 'created', 'implemented', 'designed', 'analyzed', 'negotiated'];
$resume_lower = strtolower($resume);
$verb_count = 0;
foreach ($action_verbs as $verb) {
$verb_count += substr_count($resume_lower, $verb);
}
// Award points based on the number of action verbs found.
$score = $verb_count * 2;
return min($score, 20);
}
function calculate_education_experience($resume) {
$education_keywords = ['bachelor', 'master', 'phd', 'degree', 'university', 'college'];
$experience_keywords = ['experience', 'year', 'years', 'project', 'projects'];
$resume_lower = strtolower($resume);
$education_score = 0;
$experience_score = 0;
foreach ($education_keywords as $keyword) {
if (strpos($resume_lower, $keyword) !== false) {
$education_score = 5;
break;
}
}
foreach ($experience_keywords as $keyword) {
if (strpos($resume_lower, $keyword) !== false) {
$experience_score = 5;
break;
}
}
return $education_score + $experience_score;
}
$keywordMatch = calculate_keyword_match($resumeText, $jobDescription);
$skillsOverlap = calculate_skills_overlap($resumeText, $jobDescription);
$actionVerbs = calculate_action_verbs($resumeText);
$educationExperience = calculate_education_experience($resumeText);
$totalScore = $keywordMatch + $skillsOverlap + $actionVerbs + $educationExperience;
$jobMatchScore = round($totalScore, 0);
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dashboard - <?php echo htmlspecialchars($_SERVER['PROJECT_NAME'] ?? 'Deris AI'); ?></title>
<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<!-- Bootstrap Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
<!-- Custom CSS -->
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
</head>
<body>
<header class="navbar navbar-expand-lg navbar-light bg-light">
<div class="container">
<a class="navbar-brand fw-bold" href="dashboard.php"><img src="assets/pasted-20251128-163837-87f97f7a.png" alt="Deris AI Logo" style="height: 30px; margin-right: 10px;"></a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><span class="navbar-text me-3">Welcome, <?php echo htmlspecialchars($userName); ?>!</span></li>
<li class="nav-item"><a class="btn btn-outline-primary" href="logout.php">Logout</a></li>
</ul>
</div>
</div>
</header>
<main class="container mt-5">
<div class="row justify-content-center">
<div class="col-lg-10">
<h1 class="display-5 fw-bold mb-4">Resume Analysis</h1>
<p class="lead mb-5">Paste your resume or LinkedIn profile text below to get an instant AI-powered analysis and score.</p>
<div id="analyzer-widget" class="card shadow-lg">
<div class="card-body p-4 p-lg-5">
<form id="resume-form">
<div class="mb-3">
<label for="resume-text" class="form-label visually-hidden">Paste your resume or profile text here</label>
<textarea class="form-control form-control-lg" id="resume-text" rows="12" placeholder="Paste your resume or profile text here..."></textarea>
</div>
<button type="submit" class="btn btn-primary btn-lg w-100">
<span class="button-text">Analyze My Resume</span>
<span class="spinner-border spinner-border-sm d-none" role="status" aria-hidden="true"></span>
</button>
</form>
</div>
</div>
<div id="results-widget" class="card shadow-lg mt-5 d-none">
<div class="card-body p-4 p-lg-5">
<h2 class="card-title mb-4">Your Quick Score</h2>
<div class="score-circle mx-auto mb-4">
<span id="score-value">78</span>
</div>
<h3 class="h4">Top Suggestions:</h3>
<ul id="suggestions-list" class="list-group list-group-flush text-start col-lg-10 mx-auto">
<li class="list-group-item"><i class="bi bi-check-circle-fill text-success me-2"></i> Add more quantifiable achievements to show impact.</li>
<li class="list-group-item"><i class="bi bi-check-circle-fill text-success me-2"></i> Include keywords like "Project Management" and "Agile".</li>
<li class="list-group-item"><i class="bi bi-check-circle-fill text-success me-2"></i> Enhance your skills section with more relevant technologies.</li>
</ul>
<form id="pdf-form" action="generate-pdf.php" method="post" class="mt-4">
<input type="hidden" name="score" id="pdf-score">
<input type="hidden" name="suggestions" id="pdf-suggestions">
<input type="hidden" name="resume_text" id="pdf-resume-text">
<button type="submit" class="btn btn-secondary btn-lg"><i class="bi bi-file-earmark-pdf-fill me-2"></i>Download Report as PDF</button>
</form>
</div>
</div>
<div id="credibility-widget" class="card shadow-lg mt-5">
<div class="card-body p-4 p-lg-5">
<h2 class="card-title mb-4">Resume Credibility Score</h2>
<p class="lead mb-4">Calculate the credibility of your resume.</p>
<a href="resume-credibility.php" class="btn btn-primary btn-lg w-100">Calculate Credibility</a>
</div>
</div>
<div id="impact-widget-link" class="card shadow-lg mt-5">
<div class="card-body p-4 p-lg-5">
<h2 class="card-title mb-4">Impact Meter + Fake Content Detector</h2>
<p class="lead mb-4">Measure your resume's impact and detect potential fake content.</p>
<a href="impact-meter.php" class="btn btn-primary btn-lg w-100">Analyze Resume</a>
</div>
</div>
<div id="optimizer-widget-link" class="card shadow-lg mt-5">
<div class="card-body p-4 p-lg-5">
<h2 class="card-title mb-4">Role-Based Resume Optimizer</h2>
<p class="lead mb-4">Optimize your resume for a specific role.</p>
<a href="role-based-optimizer.php" class="btn btn-primary btn-lg w-100">Optimize Resume</a>
</div>
</div>
<div id="voice-widget-link" class="card shadow-lg mt-5">
<div class="card-body p-4 p-lg-5">
<h2 class="card-title mb-4">Resume Voice-to-Text Analyzer</h2>
<p class="lead mb-4">Transcribe your resume by speaking.</p>
<a href="voice-analyzer.php" class="btn btn-primary btn-lg w-100">Transcribe Resume</a>
</div>
</div>
<div id="my-reports-link" class="card shadow-lg mt-5">
<div class="card-body p-4 p-lg-5">
<h2 class="card-title mb-4">My Reports</h2>
<p class="lead mb-4">View your saved analysis reports.</p>
<a href="my-reports.php" class="btn btn-primary btn-lg w-100">View Reports</a>
</div>
</div>
</div>
</div>
</main>
<footer class="bg-light text-center py-4 mt-5">
<div class="container">
<p class="mb-0">&copy; <?php echo date("Y"); ?> <?php echo htmlspecialchars($_SERVER['PROJECT_NAME'] ?? 'Deris AI'); ?>. All Rights Reserved.</p>
</div>
</footer>
<!-- Bootstrap JS Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
<!-- Custom JS -->
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
</body>
</html>