Syllabus Maker Pro

Syllabus Maker Pro

Create beautiful, organized course syllabi in minutes

Course Details

Weekly Breakdown

Assessments

Syllabus Preview

Your syllabus will appear here

Fill in the details on the left and click “Generate Syllabus”

`], {type: 'text/html'}); const url = URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; a.download = `${title.toLowerCase().replace(/\s+/g, '-')}-syllabus.html`; a.click(); } // Get CSS styles for HTML export function getCSSStyles() { return ` body { font-family: 'Poppins', sans-serif; background-color: white; color: #212529; line-height: 1.6; padding: 2rem; max-width: 1000px; margin: 0 auto; } .output-course-title { font-size: 2rem; color: #4361ee; margin-bottom: 0.5rem; } .output-meta { display: flex; gap: 2rem; margin-bottom: 1.5rem; color: #6c757d; } h2 { font-size: 1.5rem; color: #3f37c9; margin: 2rem 0 1.5rem; padding-bottom: 0.5rem; border-bottom: 2px solid #4895ef; } .week-item, .assessment-item { background: white; border-radius: 8px; padding: 1.5rem; margin-bottom: 1.5rem; box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); border-left: 4px solid #4895ef; } .week-item h3, .assessment-item h3 { color: #3f37c9; margin-bottom: 1rem; font-size: 1.2rem; } p { margin-bottom: 0.75rem; } strong { color: #212529; } `; } // Export as PDF function exportPDF() { const element = document.getElementById('syllabus-output'); const title = document.getElementById('course-title').value || 'syllabus'; html2canvas(element, { scale: 2, logging: false, useCORS: true, allowTaint: true }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'portrait', unit: 'mm' }); const imgWidth = 210; // A4 width in mm const pageHeight = 295; // A4 height in mm const imgHeight = canvas.height * imgWidth / canvas.width; let heightLeft = imgHeight; let position = 0; pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight); heightLeft -= pageHeight; while (heightLeft >= 0) { position = heightLeft - imgHeight; pdf.addPage(); pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight); heightLeft -= pageHeight; } pdf.save(`${title.toLowerCase().replace(/\s+/g, '-')}-syllabus.pdf`); }); } // Print syllabus function printSyllabus() { const printContent = document.getElementById('syllabus-output').innerHTML; const originalContent = document.body.innerHTML; document.body.innerHTML = printContent; window.print(); document.body.innerHTML = originalContent; generateSyllabus(); // Restore the preview } // Reset form function resetForm() { if (confirm('Are you sure you want to reset all inputs?')) { document.getElementById('course-title').value = ''; document.getElementById('course-code').value = ''; document.getElementById('instructor').value = ''; document.getElementById('duration').value = ''; document.getElementById('week-inputs').innerHTML = ''; document.getElementById('assessment-inputs').innerHTML = ''; document.getElementById('syllabus-output').innerHTML = `

Your syllabus will appear here

Fill in the details on the left and click "Generate Syllabus"

`; } } // Add initial week and assessment for better UX document.addEventListener('DOMContentLoaded', function() { addWeek(); addAssessment(); });