Architecture
This section gives a brief overview of WeBWorK's architecture and data organization.
A WeBWorK installation consists of one or more courses. One course, named admin, is special. This course's classlist is used to control access to the Course Administration page. This page allows you to create, rename, delete, and archive courses, and restore archived courses.
Each course contains a classlist (a list of the students, TAs, instructors in the course) and a list of homework sets. A homework set consists of one or more problems. Homework sets can be assigned to one or more users.
Each homework set has an open date (the date and time before which students cannot view the set), a due date (the date and time after which students are not allowed to submit answers for credit), and an answer date (the date and time after which students are allowed to see correct answers and solutions). In addition, a homework set can be visible to students or not.
A special type of homework set is a gateway quiz. This type of set is designed for use with gateway testing or as a quiz. The entire set is presented on one page (rather than problem-by-problem as in a normal set). A time limit can be enforced, and multiple versions of the set can be allowed for a single student.
Each problem in a homework set has a weight and a maximum number of attempts. It also has a link to a problem source file, which contains the actual definition of the problem. Problem source files are written using the PG language and have the file extension .pg
.
Classlists can be imported from and exported to classlist files which have the extension .lst
. Homework sets can be imported from and exported to set definition files, which have the extension .def
.
Homework sets can be scored using the scoring tools. These tools generate scoring files, which contain comma-separated values appropriate for importing into a spreadsheet or gradebook program.
Each course has its own course directory on the server. This directory contains any static files that are required for the course to function. The course.conf
file contains course-specific settings. The templates
subdirectory contains set definition files, classlist files, and problem source files. The scoring
subdirectory contains scoring files generated by the scoring tools. The html
subdirectory contains static files that may be used in rendering problems (This is seldom used currently) and temporary files generated during the problem rendering process. The logs
subdirectory contains logs of course activity, which can be useful for debugging purposes.
The course templates
directory may also contain symbolic links to problem libraries, directory structures containing problem source files that are shared among courses. One problem library is special: the National Problem Library or NPL. Every problem source file in the NPL has been tagged with metadata such as the topic that the problem pertains to, keywords describing the problem, and textbook exercises that the problem is similar to. This metadata can be indexed in WeBWorK's database, making the NPL searchable.