πŸŽ“ aceAcademy ← Home
All Tools

πŸ§ͺ Lab Report Builder

Fill in each section, then print or save your completed lab report.

i
Report Info
Title, class, date
1
Purpose / Problem Statement
What question is this experiment trying to answer?
2
Hypothesis
If–Then–Because format recommended
3
Materials
List all equipment and materials used
4
Procedure
Numbered, step-by-step instructions
5
Variables
Identify your independent, dependent, and controlled variables
6
Data / Observations
Build your data table below, then add qualitative observations
7
Analysis / Calculations
Show calculations, describe trends, interpret results
8
Conclusion
Restate hypothesis, summarize findings, discuss errors and improvements
βœ…
Lab Report Checklist
Check off each item before submitting
πŸ“‚
Saved Reports
No saved reports yet. Fill in the builder and click Save.

${d.title||'Lab Report'}

Name: ${d.name||'β€”'} Class: ${d.class||'β€”'} Date: ${d.date||'β€”'} ${d.partners?`Partners: ${d.partners}`:''}

1. Purpose

${d.purpose||'β€”'}

2. Hypothesis

${d.hypothesis||'β€”'}

3. Materials

${d.materials||'β€”'}

4. Procedure

${d.procedure||'β€”'}

5. Variables

Independent: ${d.iv||'β€”'}

Dependent: ${d.dv||'β€”'}

Controlled: ${d.cv||'β€”'}

6. Data & Observations

${makeRows()}
${d.obs||''}

7. Analysis

${d.analysis||'β€”'}

8. Conclusion

${d.hypoResult||''}

${d.conclusion||'β€”'}

Sources of Error:

${d.errors||'β€”'}

Improvements:

${d.improvements||'β€”'}
`; const w = window.open('','_blank'); w.document.write(html); w.document.close(); setTimeout(()=>w.print(),400); } // --- Tabs --- function switchTab(name, el){ document.querySelectorAll('.tab').forEach(t=>t.classList.remove('active')); document.querySelectorAll('.tab-content').forEach(t=>t.classList.remove('active')); el.classList.add('active'); document.getElementById('tab-'+name).classList.add('active'); if(name==='checklist') renderChecklist(); if(name==='saved') renderSavedList(); } // Init renderDataTable(); // Lab report auto-save var LAB_DRAFT = 'ace_labreport_draft'; function autoSaveLab(){ var fields = ['labTitle','labObjective','labHypothesis','labMaterials','labProcedure','labData','labAnalysis','labConclusion','labErrors']; var draft = {}; fields.forEach(id=>{ var el=document.getElementById(id); if(el) draft[id]=el.value; }); draft.saved = new Date().toLocaleTimeString(); localStorage.setItem(LAB_DRAFT, JSON.stringify(draft)); var el = document.getElementById('labSaveStatus'); if(el){ el.textContent='βœ“ Auto-saved '+draft.saved; setTimeout(()=>el.textContent='',2000); } } function loadLabDraft(){ var draft = JSON.parse(localStorage.getItem(LAB_DRAFT)||'null'); if(!draft) return; Object.entries(draft).forEach(([id,val])=>{ var el=document.getElementById(id); if(el&&val) el.value=val; }); } document.addEventListener("DOMContentLoaded",()=>{ loadLabDraft(); setInterval(autoSaveLab,30000); });