This section gives a brief overview of WeBWorK's architecture and data organization.
A WeBWorK installation consists of one or more 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).
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
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.
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
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.
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.