Machine Learning Portfolio Insights Machine Learning Portfolio Insights Analyze and showcase your machine learning projects. Dashboard Project Configuration Portfolio Dashboard Model Performance by Project Algorithm Usage Frequency Download Portfolio PDF Your ML Projects Add Project Your Name (for PDF report) Previous Next ${state.ownerName} Executive Summary Total Projects${kpis.totalProjects} Total Impact$${(kpis.totalImpact/1000).toFixed(0)}k Most Used Type${kpis.mostUsedType} Avg. Impact$${(kpis.totalImpact / kpis.totalProjects / 1000).toFixed(0)}k Project Details ${projectsHtml} Performance Visualizations `; const pdfTemplate = document.getElementById('pdf-template'); pdfTemplate.innerHTML = reportHtml; pdfTemplate.classList.remove('invisible'); try { const { jsPDF } = window.jspdf; const canvas = await html2canvas(pdfTemplate.querySelector('.pdf-report-container'), { scale: 2 }); const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'p', unit: 'pt', format: 'a4' }); pdf.addImage(imgData, 'PNG', 0, 0, pdf.internal.pageSize.getWidth(), (canvas.height * pdf.internal.pageSize.getWidth()) / canvas.width); pdf.save(`${state.ownerName.replace(/\s+/g, '_')}_ML_Portfolio.pdf`); } catch(e) { console.error('PDF Generation Error:', e); } finally { downloadPdfBtn.disabled = false; downloadPdfBtn.textContent = 'Download Portfolio PDF'; pdfTemplate.classList.add('invisible'); } } downloadPdfBtn.addEventListener('click', generatePdfReport); // --- INITIALIZATION --- renderProjectInputs(); attachDataListeners(); runAnalysis(); switchTab(0); });