document.addEventListener("DOMContentLoaded", () => { const formContainer = document.getElementById("form-container"); const questionsContainer = document.getElementById("questions-container"); const resultContainer = document.getElementById("result-container"); let career = ""; let qualifications = ""; let questions = []; // Handle form submission document.getElementById("start-form").addEventListener("submit", async (e) => { e.preventDefault(); career = document.getElementById("career").value; qualifications = document.getElementById("qualifications").value; // Fetch questions from the server const response = await fetch("/start", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ career, qualifications }), }); const data = await response.json(); questions = data.questions; // Save questions for later renderQuestions(questions); }); function renderQuestions(questions) { formContainer.style.display = "none"; questionsContainer.style.display = "block"; resultContainer.style.display = "none"; questionsContainer.innerHTML = `

Psychological Assessment

${questions .map( (q, idx) => `

Q${idx + 1}: ${q.question}

${Object.entries(q.choices) .map( ([key, value]) => `
` ) .join("")}
` ) .join("")}
`; document.getElementById("questions-form").addEventListener("submit", handleQuestionsSubmit); } async function handleQuestionsSubmit(e) { e.preventDefault(); const formData = new FormData(e.target); const answers = []; for (let idx = 0; idx < questions.length; idx++) { const questionText = questions[idx].question; const selectedAnswerText = formData.get(`q_${idx}`); // Get the selected answer text if (selectedAnswerText) { answers.push({ question: questionText, answer: selectedAnswerText, }); } } // Send the full payload with career, qualifications, and answers const payload = { career, qualifications, answers, }; const response = await fetch("/evaluate", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(payload), }); const data = await response.json(); // Render results renderResult(data.result); } function renderResult(result) { const { capable, roadmap, evaluation_report, motivation, alternatives } = result; formContainer.style.display = "none"; questionsContainer.style.display = "none"; resultContainer.style.display = "block"; // Capable or Not const header = `

${capable ? "You Are Capable!" : "Consider Alternatives"}

`; // Evaluation Report and Motivation const evaluationReport = `

Evaluation Report

${evaluation_report || "No evaluation report provided."}

Motivation

${motivation || "No motivational message provided."}

`; // Roadmap (only if capable is true) const roadmapSection = capable && roadmap ? `

Roadmap

` : ""; // Alternatives (only if capable is false) const alternativesSection = !capable && alternatives ? `

Alternative Careers

` : capable ? "" : "

No alternatives provided.

"; resultContainer.innerHTML = ` ${header} ${evaluationReport} ${roadmapSection} ${alternativesSection}
`; } });