Courses
Everything hangs off a course. Pick one to work in.
New course
Activities
New lab
The hard stop. After this no student can start.
From when they enter the code, not from now.
After the deadline, still accepted and tagged LATE. 0 = a hard stop.
Without it a student who finished at 23:58 and lost their wifi holds a proof the server
refuses for ever, recoverable only by a teacher accepting it by hand.
Submissions
Work arrives on its own as students finish, with no name on it. Enter the
receipt a student gave you, plus their student ID, to open the work and record it as
theirs. Leave the ID blank just to look.
Take one in by hand
For work that never made it up — a code that lapsed before the upload
landed, a laptop that was offline at the deadline. Pick the proof file the student still
has. It is checked exactly as an upload is, and nothing that fails a check is taken. Only
the deadline is waived, the work is tagged LATE, and the report says you waived it.
Library
Books and specs indexed once for the whole server, and
linked into a course by whoever teaches it. Linking is what lets GINI answer out of a work —
so it is also how you keep a class in ONE vocabulary: a course that says "thread" where a
book says "process" does not want the two mixed in front of students, however relevant the
book is. Nothing here reaches a course until it is linked.
A work is put on the shelf from the server, not from
here — indexing walks the source a page at a time and takes a minute:
gini-tc index-reference --preset xv6Staff
Teachers you add get a one-time claim token. They choose their own password.
Add a teacher
Reset the site
For clearing up after a testing phase. Labs, codes and submissions are
always removed. A backup is written to disk first.