Documentation
¶
Overview ¶
Package examlab is ExamLab, an online learning and exam platform: courses, timed exams taken question by question with every answer saved as it is given, a WebSocket channel per exam for the timer, proctoring heartbeats and announcements, and assignment submissions checked for similarity. It is the reference app for the edtech pack.
Planted bottlenecks (see README.md), each switched off by a fix flag:
- start: starting an attempt shuffles the whole question bank and writes the attempt while holding the exam's one lock, so when everyone starts at 10:00 they start one at a time (fix "start" hands out pre-built paper variants and writes outside the lock).
- autosave: saved answers go into one log for every attempt, and an attempt's answers are found by scanning that log (200ns a row, like a table scan), so each save costs more as the exam goes on (fix "autosave" keeps each attempt's answers with the attempt).
- similarity: every submission is compared with every earlier submission to the assignment, so the deadline rush gets slower with each one (fix "similarity" looks fingerprints up in an index).
Index ¶
Constants ¶
View Source
const ( // Students is how many students ExamLab has (s00001 ... s05000). Students = 5000 // Password is every student's password. Password = "examlab-pass" // StaffToken is the bearer token staff post announcements with. StaffToken = "examlab-staff" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
This section is empty.
Click to show internal directories.
Click to hide internal directories.