Definitions

Admin User

Admin users have special privilege on ngshare (e.g. create / delete courses). The list of admin users can be set by --admins= argument in ngshare or vngshare.

Assignment Name

Also referred to as assignment_id, this is a unique name for an assignment within a course. For example, “Assignment 1”.

Checksum

The md5 checksum of a file.

Course Name

Also referred to as course_id, this is a unique name for a course. For example, “NBG 101”.

Directory Tree

Assignments consist of a directory, notebook files in the root, and optional supplementary files in the root and/or subdirectories. In order to send an entire assignment in one request, a JSON file has a list of maps for each file. The following structure will be referred to as “encoded directory tree.”

path should be in Unix style, and should be relative. For example: a.ipynb or notes/a.txt. Pathnames not following this style will be rejected by server with error 400 “Illegal path”.

[
    {
        "path": /* file path relative to the root */,
        "content": /* base64 encoded file contents */,
        "checksum": /* md5 checksum of file contents */
    },
    ...
]

Instructor ID

The ID given to an instructor. For example, “course1_instructor” or “doe_jane”.

Notebook Name

Also referred to as notebook_id, this is the base name of a .ipynb notebook without the extension. For example, “Problem 1” is the name for the notebook “Problem 1.ipynb”.

Student ID

The ID given to a student. For example, “doe_jane”.

Timestamp

A timestamp of when a user initiates the assignment submission process. It follows the format "%Y-%m-%d %H:%M:%S.%f %Z". For example, 2020-01-30 10:30:47.524219 UTC.