Course configuration
Directory layout
A course is specified by a single directory, with the following structure:
exampleCourse
|-- courseInfo.json # course specification (see below)
|-- questions # all questions for the course
| `-- ... # one subdirectory per question
|-- tests # all the tests for the course
| `-- ... # one subdirectory per test
|-- clientCode # library code that can be used in any question
| |-- library1.js
| `-- library2.js
|-- serverCode # code only accessible from server.js in questions
| `-- secretLibrary1.js
`-- clientFiles # general files available from the client at all time
|-- refs.html
`-- formulas.pdf
- Example course directory in PrairieLearn
courseInfo.json
This file specifies basic information about the course, like the title and users:
{
"name": "TAM 212",
"title": "Introductory Dynamics",
"userRoles": {
"mwest@illinois.edu": "Instructor",
"zilles@illinois.edu": "TA",
"mussulma@illinois.edu": "TA"
}
}
User Roles
Each user has a single role assigned to them. These are:
Role | Description |
---|---|
Student |
A student participating in the class. They can only see their own information, and can do do tests. |
TA |
An assistant instructor. They can see the data of all users, but can only edit their own information. |
Instructor |
A person in charge of the course. Has full permission to see and edit the information of other users. |
Superuser |
A server administrator. Has full access to everything. |
User roles Student
through Instructor
can be set in the courseConfig.json
file. The Superuser
role can only be specified in the server config.json
file.
The detailed list of permissions for each role is:
Operation | Student | TA | Instructor | Superuser |
---|---|---|---|---|
overrideScore : Submit question answers with pre-determined scores. |
Yes | Yes | ||
overrideVID : Load specific (non-random) instances of questions. |
Yes | Yes | Yes | |
seeQID : See question ID strings. |
Yes | Yes | Yes | |
viewOtherUsers : View data from any other user. |
Yes | Yes | Yes | |
editOtherUsers : Edit data from any other user. |
Yes | Yes | ||
changeMode : Change the current interface mode (Public/Exam). |
Yes | Yes | ||
seeAvailDate : See the date availability information for tests. |
Yes | Yes | Yes | |
bypassAccess : Bypass all access restrictions. |
Yes | Yes | ||
viewErrors : See server error messages. |
Yes | Yes | ||
viewCoursePulls : See git pulls of course data. |
Yes | Yes | Yes | |
editCoursePulls : Pull the course data from git. |
Yes | Yes | ||
deleteTInstances : Delete and reset tests. |
Yes | Yes | ||
seeAdminPages : View admin pages with extra options. |
Yes | Yes | Yes | |
createQIDWithoutTID : View questions outside of a test. |
Yes | Yes | ||
createQIDWithoutTIID : View questions outside of a test instance. |
Yes | Yes | Yes | |
Automatic access to all courses. | Yes |