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