Compare commits

..

No commits in common. "ab20fdf0aa63d2e994c5e4c9b8ca8fbd2a69ecf1" and "949a6677e428ec4d343e866c501e324664e59620" have entirely different histories.

3 changed files with 38 additions and 58 deletions

View file

@ -1,9 +1,5 @@
@import "tailwindcss"; @import "tailwindcss";
#resumePreviewSection { #outputSection {
display: none;
}
#coverLetterSection {
display: none; display: none;
} }

View file

@ -12,7 +12,7 @@
<form id="uploadForm" enctype="multipart/form-data"> <form id="uploadForm" enctype="multipart/form-data">
<label for="resume">Upload Resume (pdf or docx):</label> <label for="resume">Upload Resume (pdf or docx):</label>
<input type="file" id="resume" name="resume" accept=".txt,.pdf,.docx" required><br><br> <input type="file" id="resume" name="resume" accept=".txt,.pdf,.docx" required><br><br>
<button type="submit" id="generateBtn">Read Resume</button> <button type="submit" id="generateBtn">Generate Cover Letter</button>
</form> </form>
<div id="resumePreviewSection" style="display: none;"> <div id="resumePreviewSection" style="display: none;">

View file

@ -1,54 +1,34 @@
document.getElementById('uploadForm').addEventListener('submit', async function (event) { document.getElementById('uploadForm').addEventListener('submit', async function (event) {
event.preventDefault(); event.preventDefault();
const resumePreviewSection = document.getElementById('resumePreviewSection'); const outputSection = document.getElementById('outputSection');
const generateBtn = document.getElementById('generateCoverLetterBtn'); const coverLetterOutput = document.getElementById('coverLetterOutput');
const generateBtn = document.getElementById('generateBtn');
const downloadBtn = document.getElementById('downloadBtn');
generateBtn.disabled = true; generateBtn.disabled = true;
generateBtn.textContent = "Reading Resume..."; generateBtn.textContent = "Generating...";
resumePreviewSection.value = ""; //This clear any previous generated output coverLetterOutput.value = ""; //This clear any previous generated output
resumePreviewSection.style.display = "flex";
// Show the Output Section while the program runs
outputSection.style.display = "block";
coverLetterOutput.value = "Generating cover letter...";
const fileInput = document.getElementById('resume'); const fileInput = document.getElementById('resume');
const file = fileInput.files[0]; const jobDescriptionInput = document.getElementById('jobDescription');
if (!file) { if (!fileInput || !jobDescriptionInput) {
alert("Please upload a resume."); console.error("Form elements not found.");
return; return;
} }
const formData = new FormData(); const file = fileInput.files[0];
formData.append("resume", file); const jobDescription = jobDescriptionInput.value;
try { if (!file) {
const response = await fetch('/generate/extract-resume', { alert("Please upload a resume.");
method: "POST",
body: formData,
});
const data = await response.json();
if (data.error) {
alert("Error: " + data.error)
} else {
resumePreviewSection.value = data.extractedText;
generateBtn.disabled = false;
generateBtn.textContent = "Generate Cover Letter"
}
} catch (error) {
console.error('Error:', error);
alert('Something went wrong. Please try again.');
outputSection.style.display = "none";
}
});
document.getElementById("generateCoverLetterBtn").addEventListener("click", async function () {
const extractedResumeText = document.getElementById("resumeTextOutput").value;
const jobDescription = document.getElementById("jobDescription").value;
if (!extractedResumeText.trim()) {
alert("Please confirm the extracted resume text.");
return; return;
} }
@ -57,29 +37,33 @@ document.getElementById("generateCoverLetterBtn").addEventListener("click", asyn
return; return;
} }
const requestData = { const formData = new FormData();
extractedResumeText, formData.append("resume", file);
jobDescription, formData.append("jobDescription", jobDescription);
};
try { try {
const response = await fetch("/generate", { const response = await fetch('/generate', {
method: "POST", method: "POST",
headers: { "Content-Type": "application/json" }, body: formData,
body: JSON.stringify(requestData),
}); });
const data = await response.json(); const result = await response.json();
if (data.error) { if (result.coverLetter) {
alert("Error: " + data.error); coverLetterOutput.value = result.coverLetter;
downloadBtn.style.display = 'block';
} else { } else {
document.getElementById("coverLetterOutput").innerText = data.coverLetter; alert('Error Generating Cover Letter (Check Console for more details');
document.getElementById("coverLetterSection").style.display = "block"; // Show cover letter section outputSection.style.display = 'none' // Hides the output on erros
} }
} catch (error) { } catch (error) {
console.error("Error generating cover letter:", error); console.error('Error:', error);
alert("Something went wrong. Please try again."); alert('Something went wrong. Please try again.');
outputSection.style.display = "none";
} finally {
generateBtn.disabled = false;
generateBtn.textContent = 'Generate Cover Letter';
} }
}); });
document.getElementById('downloadBtn').addEventListener('click', async function () { document.getElementById('downloadBtn').addEventListener('click', async function () {