Parental Stress & Wellbeing Assessment

Parental Stress & Wellbeing Assessment

A quick check-in to help you understand and support your own wellbeing.

Section 1: Sleep & Energy

"Over the past week, I have felt well-rested and energetic."

Section 2: Social & Emotional Support

"I feel connected and have someone I can talk to about my struggles."

Section 3: Personal Time & Self-Care

"I regularly make time for my own hobbies and relaxation."

Section 4: Parenting Confidence

"I feel confident in my ability to handle daily parenting challenges."

Your Wellbeing Assessment

Personalized Suggestions:

Your Wellbeing Score:

${resultLevel}

${resultMessage}

`; // Render Tips const sortedScores = Object.entries(scores).sort((a, b) => a[1] - b[1]); const lowAreas = sortedScores.slice(0, 2); // Focus on the 2 lowest-scoring areas let tipsHTML = ''; lowAreas.forEach(([category, score]) => { const categoryTitle = category.charAt(0).toUpperCase() + category.slice(1).replace(/([A-Z])/g, ' $1'); const areaTips = db.tips[category]; tipsHTML += `

Focus Area: ${categoryTitle}

    ${areaTips.map(tip => `
  • ${tip}
  • `).join('')}
`; }); elements.resultTips.innerHTML = tipsHTML; assessmentData.tips = lowAreas.map(([category]) => ({ category, tips: db.tips[category] })); }; const downloadPDF = () => { if (typeof window.jspdf === 'undefined') { alert('Could not generate PDF. The required library is missing.'); return; } const { jsPDF } = window.jspdf; const doc = new jsPDF(); const colors = { primary: '#2563eb', secondary: '#3b82f6', textPrimary: '#1f2937', textSecondary: '#6b7280' }; doc.setFillColor(colors.primary); doc.rect(0, 0, 210, 28, 'F'); doc.setFont('helvetica', 'bold'); doc.setFontSize(20); doc.setTextColor('#FFFFFF'); doc.text('My Parental Wellbeing Assessment', 105, 18, { align: 'center' }); let yPos = 40; doc.setFontSize(16); doc.setFont('helvetica', 'bold'); doc.setTextColor(colors.primary); doc.text('Your Assessment Summary', 14, yPos); yPos += 10; doc.setFontSize(12); doc.setFont('helvetica', 'normal'); doc.setTextColor(colors.textPrimary); doc.text(`Overall Result:`, 20, yPos); doc.setFont('helvetica', 'bold'); doc.text(assessmentData.resultLevel, 55, yPos); yPos += 7; doc.setFont('helvetica', 'normal'); doc.setFontSize(11); const splitMessage = doc.splitTextToSize(assessmentData.resultMessage, 180); doc.text(splitMessage, 14, yPos); yPos += (splitMessage.length * 5) + 10; doc.setFontSize(16); doc.setFont('helvetica', 'bold'); doc.setTextColor(colors.primary); doc.text('Personalized Suggestions', 14, yPos); yPos += 8; assessmentData.tips.forEach(area => { const categoryTitle = area.category.charAt(0).toUpperCase() + area.category.slice(1).replace(/([A-Z])/g, ' $1'); doc.setFontSize(12); doc.setFont('helvetica', 'bold'); doc.setTextColor(colors.textSecondary); doc.text(`Focus Area: ${categoryTitle}`, 14, yPos); yPos += 7; area.tips.forEach(tip => { doc.setFontSize(11); doc.setFont('helvetica', 'normal'); doc.setTextColor(colors.textPrimary); const splitTip = doc.splitTextToSize(`• ${tip}`, 170); doc.text(splitTip, 20, yPos); yPos += (splitTip.length * 5) + 2; }); yPos += 5; }); yPos = 280; doc.setDrawColor(colors.secondary); doc.line(14, yPos, 196, yPos); doc.setFontSize(9); doc.setFont('helvetica', 'italic'); doc.setTextColor(colors.textSecondary); doc.text('Remember to be kind to yourself. This assessment is a snapshot in time, not a final judgment. You are doing enough.', 105, yPos + 8, { align: 'center', maxWidth: 180 }); doc.save('My_Parental_Wellbeing_Assessment.pdf'); }; // --- Event Listeners --- elements.nextBtn.addEventListener('click', nextStep); elements.prevBtn.addEventListener('click', prevStep); elements.downloadPdfBtn.addEventListener('click', downloadPDF); // --- Initialization --- updateFormUI(); });
Scroll to Top