Student Exam Portal

Enter the 6-character exam code your teacher gave you.

📋 Teacher-Set Exam
📄 Or upload an exam file (alternative)
Upload Exam File
📄
Click or drag & drop exam .json file

Jackson Habimana Chemistry Portal

📝 Ready to Begin

Please enter your details before starting.

⚠️ Once started, switching tabs or windows will be recorded as a violation.

00:00

Correct
Wrong
Time Taken
Violations

📩 Download your result and submit the file to your teacher.

🚨

⚠️ CHEATING DETECTED!

You switched away from the exam window. This has been recorded and reported to your teacher.

Warning 1 of 3
⚡ Your teacher has been notified immediately
Every time you leave this window, it is recorded. When you reach the maximum number of warnings, your exam will be automatically submitted with your current answers.
// ── Save to local storage ── try{ const existing=JSON.parse(localStorage.getItem('student_results')||'[]'); existing.push(resultData); localStorage.setItem('student_results',JSON.stringify(existing)); }catch(e){} // ── Save to teacher's cloud results bin (embedded in exam) ── if(exam && exam._apiKey && exam._resultsBin){ try{ const gr=await fetch('https://api.jsonbin.io/v3/b/'+exam._resultsBin+'/latest', {headers:{'X-Master-Key':exam._apiKey}}); const gd=await gr.json(); const list=Array.isArray(gd.record)?gd.record:[]; list.push(resultData); await fetch('https://api.jsonbin.io/v3/b/'+exam._resultsBin,{ method:'PUT', headers:{'Content-Type':'application/json','X-Master-Key':exam._apiKey}, body:JSON.stringify(list) }); }catch(e){} }