examlab

package
v1.2.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 7, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

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

func New

func New(cfg labkit.Config) http.Handler

New returns ExamLab's handler.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL