Skip to content

Commit a1833dd

Browse files
committed
feat: include .hidden in styles, introduce new js file for resume analyzer
1 parent 6d6b240 commit a1833dd

3 files changed

Lines changed: 7 additions & 102 deletions

File tree

web-app/css/styles.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,10 @@ body.sidebar-active .hero-controls {
939939
color: #000;
940940
}
941941

942+
.hidden {
943+
display: none !important;
944+
}
945+
942946
/* ── AI Resume Analyzer ────────────────────────────────────── */
943947
.resume-analyzer-shell {
944948
max-width: 960px;

web-app/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -681,6 +681,7 @@ <h3>Legal</h3>
681681
<script src="js/projects/spot-the-difference.js"></script>
682682
<script src="js/projects/color-palette.js"></script>
683683
<script src="js/projects/ceasar-cipher.js"></script>
684+
<script src="js/projects/resume-analyzer.js"></script>
684685
<!-- Registry: maps project names to their module functions -->
685686
<script src="js/projects.js"></script>
686687
<script src="js/playground.js"></script>

web-app/js/projects.js

Lines changed: 2 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -3320,108 +3320,8 @@ function getProductivePetHTML() {
33203320
`;
33213321
}
33223322

3323-
function getAIResumeAnalyzerHTML() {
3324-
return `
3325-
<div class="resume-analyzer-shell">
3326-
<div class="resume-analyzer-hero">
3327-
<div class="resume-analyzer-copy">
3328-
<span class="resume-analyzer-badge">GSSoC Utility</span>
3329-
<h2>AI Resume Analyzer</h2>
3330-
<p>Upload a resume and get a quick ATS-style snapshot with keyword, structure, and formatting feedback.</p>
3331-
</div>
3332-
<div class="resume-analyzer-pill">No backend required</div>
3333-
</div>
3334-
3335-
<div class="resume-analyzer-grid">
3336-
<section class="resume-panel resume-upload-panel">
3337-
<div class="resume-upload-box">
3338-
<i class="fa-solid fa-file-lines resume-upload-icon"></i>
3339-
<label class="resume-file-btn">
3340-
Choose File
3341-
<input type="file" id="resumeInput" accept=".pdf,.doc,.docx,.txt" hidden>
3342-
</label>
3343-
<p>Drag &amp; drop or click to choose a resume</p>
3344-
</div>
3345-
3346-
<button class="resume-analyze-btn" id="analyzeBtn" type="button">Analyze Resume 🚀</button>
3347-
</section>
3348-
3349-
<section class="resume-panel resume-score-panel hidden" id="ats">
3350-
<h3>ATS Score</h3>
3351-
<div class="resume-progress-circle">
3352-
<span>82%</span>
3353-
</div>
3354-
<div class="resume-extra-info">
3355-
<p>✔ Formatting Score: 80%</p>
3356-
<p>✔ Keyword Match: 75%</p>
3357-
</div>
3358-
</section>
3359-
3360-
<section class="resume-panel resume-bottom-panel hidden" id="bottomSection">
3361-
<div class="resume-mini-card">
3362-
<h3>Keywords Match</h3>
3363-
3364-
<div class="resume-keyword-item">
3365-
<span>Python</span>
3366-
<div class="resume-bar"><div style="width: 90%"></div></div>
3367-
</div>
3368-
3369-
<div class="resume-keyword-item">
3370-
<span>Machine Learning</span>
3371-
<div class="resume-bar"><div style="width: 75%"></div></div>
3372-
</div>
3373-
3374-
<div class="resume-keyword-item">
3375-
<span>Data Analysis</span>
3376-
<div class="resume-bar"><div style="width: 65%"></div></div>
3377-
</div>
3378-
</div>
3379-
3380-
<div class="resume-mini-card">
3381-
<h3><i class="fa-solid fa-lightbulb"></i> Suggestions</h3>
3382-
3383-
<div class="resume-suggestion">
3384-
<i class="fa-solid fa-check"></i>
3385-
<p>Add more projects</p>
3386-
</div>
3387-
3388-
<div class="resume-suggestion">
3389-
<i class="fa-solid fa-check"></i>
3390-
<p>Improve formatting</p>
3391-
</div>
3392-
3393-
<div class="resume-suggestion">
3394-
<i class="fa-solid fa-check"></i>
3395-
<p>Use action verbs</p>
3396-
</div>
3397-
</div>
3398-
</section>
3399-
</div>
3400-
</div>
3401-
`;
3402-
}
3403-
3404-
function initAIResumeAnalyzer() {
3405-
const analyzeBtn = document.getElementById('analyzeBtn');
3406-
const resumeInput = document.getElementById('resumeInput');
3407-
const ats = document.getElementById('ats');
3408-
const bottomSection = document.getElementById('bottomSection');
3409-
3410-
if (!analyzeBtn || !resumeInput || !ats || !bottomSection) return;
3411-
3412-
analyzeBtn.addEventListener('click', () => {
3413-
if (!resumeInput.files.length) {
3414-
alert('Upload resume first!');
3415-
return;
3416-
}
3417-
3418-
ats.classList.remove('hidden');
3419-
bottomSection.classList.remove('hidden');
3420-
});
3421-
}
3422-
3423-
3424-
3323+
// getAIResumeAnalyzerHTML and initAIResumeAnalyzer are defined in
3324+
// js/projects/resume-analyzer.js to keep the codebase organized and modular.
34253325

34263326

34273327
function initializeProject(projectName) {

0 commit comments

Comments
 (0)