Plom components

Plom consists of several different components:

  1. Scripts – which handle building, scanning and recompiling papers
  2. Client application – used by your markers to identify, annotate and assign marks (grades).
  3. Manager application – to oversee the whole process
  4. Server – which handles all the communication and data.


These are generally run from the commandline, but in the future we intend to place these behind a web-interface.

Before you print your tests

  • plom-create – help you write your test specification, upload classlists, manage users, and build the PDFs.

After your students write the test, but before marking starts

  • plom-server – starts the server which handles uploads, clients and finishing.
  • plom-scan – process scans of student tests and upload to server

After you have uploaded some scans:

  • plom-client – your markers use to annotate and mark papers
  • plom-manager – you use to oversee the process

Once all the marking is done

  • plom-finishing – reassemble completed papers, compile spreadsheets of marks, and build a paper-return website. At present these are still separate scripts, but should be recombined soon.

Client application

The client application is an executable that is run on your markers’ laptops (linux, mac or windows). It helps your markers do 2 main tasks – identifying and marking.

  • Identify papers: Each test-paper needs to be associated with a student, ie - paper 17 was written by student #1234578. We use machine-learning to read hand-written student-numbers from papers, but those predictions are verified via this client.
  • Mark questions: The client displays scanned questions and helps the marker to annotate and assign a mark. The marker is only shown the question to which they have been assigned. The annotation engine supports rich text comments and is LaTeX compatible.

Manager application

The manager application is an executable that allows the manager (the instructor in charge) to oversea both scanning/uploading of papers and the marking process.


The server stores all the page-images and data, and handles all the communication with the clients and scripts.