Adaptive Learning Tool

Adaptive Learning Tool

Start with a topic, and the AI will tailor questions to your knowledge level.

Session Report

Your Answer: ${item.answer}

${item.isCorrect ? '✔ Correct' : '✘ Incorrect'}

${item.feedback ? `

Feedback: ${item.feedback}

` : ''}
`).join(''); switchView('results'); }; // --- PDF Generation --- async function generatePdf() { if (sessionHistory.length === 0) return; pdfContentArea.innerHTML = `

Learning Report: ${currentTopic}

` + sessionHistory.map((item, index) => `

Question ${index + 1}: ${item.question}

Your Answer: ${item.answer}

Result: ${item.isCorrect ? 'Correct' : 'Incorrect'}

${item.feedback ? `

Feedback: ${item.feedback}

` : ''}
`).join(''); pdfContentArea.style.display = 'block'; pdfContentArea.style.position = 'absolute'; pdfContentArea.style.left = '-9999px'; pdfContentArea.style.width = '800px'; try { const canvas = await html2canvas(pdfContentArea, { scale: 2 }); const imgData = canvas.toDataURL('image/png'); const { jsPDF } = window.jspdf; const pdf = new jsPDF({ orientation: 'portrait', unit: 'px', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const imgHeight = canvas.height * pdfWidth / canvas.width; pdf.addImage(imgData, 'PNG', 0, 0, pdfWidth, imgHeight); pdf.save(`Adaptive-Learning-Report.pdf`); } catch (error) { console.error("PDF generation failed:", error); alert("Could not generate PDF."); } finally { pdfContentArea.style.display = 'none'; } } const showError = (message) => { setupError.textContent = message; setupError.style.display = 'block'; }; const hideError = () => { setupError.style.display = 'none'; }; // --- Event Listeners --- startBtn.addEventListener('click', startSession); submitAnswerBtn.addEventListener('click', checkAnswer); endSessionBtn.addEventListener('click', endSession); startOverBtn.addEventListener('click', () => switchView('setup')); downloadReportBtn.addEventListener('click', generatePdf); // --- Initial State --- switchView('setup'); });
Scroll to Top