The website component of Submitty, where submission, TA grading, etc. happens is written in PHP following the Model-View-Controller design pattern. This paradigm allows for organized modular development, unit testing, and integration of the parts.
Models hold data, which is often loaded from the database. For example, a hypothetical
UserModelwould hold information about a user, like their name or favorite color.
Views render visual information. In this sample example, the
UserViewwould house functions which involve displaying information about a user.
Finally, Controllers perform logic. For example, if you want to load the corresponding
See User Detailspage, you might call the function