Civic Ledger · Law & Economics Chamber

Grade 11 Government, Law & Economics Honors

A self-contained student portal where students investigate constitutional government, courts, civil liberties, elections, public policy, microeconomics, macroeconomics, trade, regulation, and economic decision-making through evidence, models, seminars, quizzes, and capstone defense.

Khaemenes High · Grade 11 Government, Law & Economics Honors · Jennifer Pearl · 2026

`} function printReport(){let w=window.open("","_blank"); w.document.write(reportHTML()); w.document.close(); w.focus(); setTimeout(()=>w.print(),400);} function downloadReport(){download(`SS11_Report_${safe(student().name)}.html`,reportHTML(),"text/html");} function downloadCSV(){const s=student(); let rows=[["Student","Week","Unit","Title","Lessons","Assignments","Quiz","Attempts","Repeats"]]; APP.weeks.forEach(w=>{let r=weekRec(s,w.week); rows.push([s.name,w.week,w.unit,w.title,lessonPct(s,w.week),assignPct(s,w.week),quizBest(s,w.week)||"",r.quiz.attempts.length,r.repeats||0]);}); download(`SS11_Progress_${safe(s.name)}.csv`,rows.map(r=>r.map(csv).join(",")).join("\n"),"text/csv");} function downloadScope(){let rows=[["Week","Unit","Frame","Title","Essential Question","Source/Case","Model/Data Task","Seminar","Standards"]]; APP.weeks.forEach(w=>rows.push([w.week,w.unit,w.frame,w.title,w.essentialQuestion,w.sourceCase,w.modelTask,w.seminar,w.standards.map(s=>s.code).join("; ")])); download("SS11_Government_Law_Economics_36_Week_Scope.csv",rows.map(r=>r.map(csv).join(",")).join("\n"),"text/csv");} function downloadCapstone(){download("SS11_Policy_Capstone_Guide.txt","Grade 11 Policy Capstone\\n\\nGoal: Integrate constitutional authority, economic reasoning, data, stakeholder evidence, and civic responsibility into one defensible public recommendation.\\n\\n1. Define problem and jurisdiction.\\n2. Build an evidence ledger.\\n3. Map stakeholders, rights, costs, benefits, and institutions.\\n4. Compare at least four policy alternatives.\\n5. Complete sensitivity analysis.\\n6. Present oral defense and reflection.\\n","text/plain");} function downloadBackup(){download("SS11_GLE_Backup.json",JSON.stringify(state,null,2),"application/json");} function importBackup(e){const f=e.target.files[0]; if(!f)return; const r=new FileReader(); r.onload=()=>{try{state=JSON.parse(r.result); if(!state.students)throw Error(); state.activeId=state.activeId||state.students[0]?.id; save(); render();}catch{alert("Could not import backup.");}}; r.readAsText(f);} function safe(s){return String(s||"student").replace(/[^a-z0-9_-]+/gi,"_").slice(0,60);} function csv(v){return `"${String(v??"").replaceAll('"','""')}"`;} function download(name,text,type){let b=new Blob([text],{type}),a=document.createElement("a"); a.href=URL.createObjectURL(b); a.download=name; document.body.appendChild(a); a.click(); setTimeout(()=>{URL.revokeObjectURL(a.href);a.remove();},800);} /* Boot */ document.querySelectorAll("[data-view]").forEach(b=>b.onclick=()=>{view=b.dataset.view;render();}); document.querySelectorAll("[data-go]").forEach(b=>b.onclick=()=>{view=b.dataset.go;render();}); $("addStudent").onclick=()=>{let n=$("studentName").value.trim(); if(!n)return alert("Enter a student name."); addStudent(n); $("studentName").value="";}; $("studentSelect").onchange=e=>{state.activeId=e.target.value; save(); render();}; $("deleteStudent").onclick=()=>{let s=student(); if(!s)return; if(!confirm(`Delete ${s.name}?`))return; state.students=state.students.filter(x=>x.id!==s.id); state.activeId=state.students[0]?.id||null; if(!state.students.length)addStudent("First Student"); save(); render();}; $("demo").onclick=()=>{addStudent("Demo Student"); let s=student(); for(let i=1;i<=3;i++){let r=weekRec(s,i); ["Monday","Tuesday","Wednesday"].forEach(d=>r.lessons[d]=true); r.assignments[0]=true; r.quiz.best=[90,78,86][i-1]; r.quiz.attempts.push({date:new Date().toISOString(),score:r.quiz.best});} save(); render();}; if(!state.students.length)addStudent("First Student"); else render();