Thursday, 29 June 2017, 08:53:21

BOSS Online Submission System

BOSS Project

Latest Release

BOSS1

Controller

The Controller is a web application that displays pages to the user, handles login and logout, receives responses from the user and performs the operations required using the Model.

Servlet

The servlet reads configuration from the servlet initialisation parameters and registers all Model Implementations with the relevant factories, then registers all the PageFactory with the correct site names.

When a request is received, it creates a PageContext object from the HTTP request and looks up a Page based on the PageContext’s site and page names. If one isn’t found, it looks up a Page with site system and page notfound instead (and if that isn’t found, an exception is thrown - this is a bug).

Once the servlet has a page, it passes the page context to its internal rendering function, defined in the Page object.

PageContext

A PageContext object contain methods to discover all information that a Page may need to know about the current request that has been made, such as the user session, the help URL for the current page, the current page’s site name, etc.

It also contains method to render a result, send a file, handle file uploads, or other such operations. It’s a bit monolithic and should be normalised at some point.

Page

Pages in the servlet are provided by PageFactory objects. The PageFactory allows registration of PageFactory instances under a site name. A static method in the PageFactory object allows you to retrieve a Page object via site name and page name.

Page objects have a template associated with them. This template name maps to a help page template and a HTML template. The HTML template is loaded by the Page object and stored in memory.

When the Servlet renders a Page, it calls an internal function. This first checks privileges, redirecting to a login page if the user is not logged in and is required to me, or to an error page if the user is not an administrator and tried accessing an administration page. It then generates a templating context and puts the page context object into it so that any page template can always access the '$context' object. It then passes the template, the page context and the template context to an abstract function designed to be overriden by page instances that performs the actual logic.

System pages

Page ClassPage IdentifierTemplateDescription
HomePagehomesystem_homeHome page
LoggedInPagelogged_insystem_logged_inLogged in with no redirect
LoginPageloginsystem_loginDisplay login form or perform login
LogoutPagelogoutsystem_logoutLog out the user
NewPasswordPagenew_passwordsystem_new_passwordPassword request form
NotAdminPagenot_adminsystem_not_adminUser not an admin
NotFoundPagenot_foundsystem_404Page not found.
PerformNewPasswordPageperform_new_passwordmulti_editedGenerate and email a new password.
RegisterPageregister?Not used currently.

Student pages

Page ClassPage IdentifierTemplateDescription
ActivatePageactivatestudent_activateActivate a submission (form)
AssignmentPageassignmentstudent_assignmentAssignment details
AssignmentsPageassignmentsstudent_assignmentsAssignments to submit to
AssignmentSubmissionsPageassignment_submissionsstudent_assignment_submissionsSubmissions for an assignment
DeletePagedeletestudent_deleteDelete a submission (form)
DetailsPagedetailsstudent_detailsStudent details
DownloadAssignmentResourcePagedownload_assignment_resourcemulti_editedDownload an assignment resource
DownloadSubmissionPagedownload_submissionmulti_editedDownload a submission
ModulePagemodulestudent_moduleModule details
ModulesPagemodulesstudent_modulesModules student can access
PerformActivatePageperform_activatemulti_editedActivate a submission
PerformChangePasswordPageperform_change_passwordmulti_editedChange login password
PerformDeletePageperform_deletemulti_editedDelete a submission
PerformSubmitPageperform_submitstudent_submittedMake a submission
PerformTestPageperform_testmulti_testresultsRun tests
SubmissionsPagesubmissionsstudent_submissionsAssignments previously submitted to
SubmitPagesubmitstudent_submitMake a submission (form)
TestPageteststudent_testRun tests (form)

Staff pages

Page ClassPage IdentifierTemplateDescription
AddAssignmentFilePageadd_assignment_filestaff_add_assignment_fileAdd required file to assignment (form)
AssignmentFilesPageasssignment_filesstaff_assignment_filesRequired files for an assignment (table)
AssignmentsPageassignmentsstaff_assignmentsAssignments for a module (table)
AutoAssignMarkersPageauto_assign_markersstaff_auto_assignAuto-create marking assignments (form)
DeadlineRevisionsPagedeadlinerevisionsstaff_deadlinerevisionsDeadline revisions for an assignment (table)
DeleteSubmissionsPagedelete_submission?Orphaned/unused page
DownloadSubmissionPagedownload_submissionstaff_download_submissionDownload a submission
EditAssignmentPageedit_assignmentstaff_edit_assignmentEdit/Delete assignment (form)
EditDeadlineRevisionPageedit_deadlinerevisionstaff_edit_deadlinerevisionEdit/Delete deadline revision (form)
EditMarkingAssignmentPageedit_markingassignmentstaff_edit_markingassignmentEdit/Delete marking assignment (form)
EditMarkingCategoryPageedit_markingcategorystaff_edit_markingcategoryEdit/Delete marking category (form)
EditTestPageedit_teststaff_edit_testEdit/Delete test (form)
EditTestParametersPageedit_test_parametersstaff_edit_test_parametersEdit test parameters (form)
EmailResultsPageemail_resultsstaff_email_resultsEmail assignment results (form)
FindMarkerPagefind_markermulti_find_personAdd a marker 1 (form)
FindModeratorPage??Orphaned/unused page
FindStudentPagefind_studentmulti_find_personAdd a student 1 (form)
MarkersPagemarkersstaff_markersMarkers for an assignment (table)
MarkingAssignmentsPagemarkingassignmentsstaff_markingassignmentsMarking assignments for an assignment (table)
MarkingCategoriesPagemarkingcategoriesstaff_markingcategoriesMarking categories for an assignment (table)
ModulesPagemodulesstaff_modulesModules to administrate (table)
PerformAddAssignmentFilePageperform_add_assignment_filemulti_editedAdd a required assignment file
PerformAddMarkerPageperform_add_markermulti_editedAdd an assignment marker
PerformAddStudentPageperform_add_studentmulti_editedAdd a module student
PerformAutoAssignMarkersPageperform_auto_assign_markersmulti_editedAuto-create marking assignments
PerformEditAssignmentPageperform_edit_assignmentmulti_editedEdit/delete an assignment
PerformEditDeadlineRevisionPageperform_edit_deadlinerevisionmulti_editedEdit/delete a deadline revision
PerformEditMarkingAssignmentPageperform_edit_markingassignmentmulti_editedEdit/delete a marking assignment
PerformEditMarkingCategoryPageperform_edit_markingcategorymulti_editedEdit/delete a marking category
PerformEditTestPageperform_edit_testmulti_editedEdit/delete a test
PerformEditTestParametersPageperform_edit_test_parametersmulti_editedEdit test parameters
PerformEmailResultsPageperform_email_resultsmulti_editedEmail results out to students
PerformFindMarkerPageperform_find_markermulti_found_personAdd a marker 2 (form)
PerformFindModeratorPage??Orphaned/unused page
PerformFindStudentPageperform_find_studentmulti_found_personAdd a student 2 (form)
PerformPublishResultsPageperform_publish_resultsmulti_editedPublish results for an assignment
PerformRemoveAssignmentFilePageperform_remove_assignment_filemulti_editedRemove a required file from an assignment
PerformRemoveMarkerPageperform_remove_markermulti_editedRemove a marker from an assignment
PerformRemoveStudentPageperform_remove_studentmulti_editedRemove a student from a module
PerformTestHashPageperform_test_hashstaff_hashedHash a submission to generate a security code
PeformUploadAssignmentResourcePageperform_upload_assignment_resourcemulti_editedUpload an assignment resource
PerformUploadTestResourcePageperform_upload_test_resourcemulti_editedUpload a test resource
PublishResultsPagepublish_resultsstaff_publish_resultsPublis results for an assignment (form)
ResultsPageresultsstaff_resultsResults for an assignment (table)
StudentsPagestudentsstaff_studentsStudents for a module (table)
SubmissionsPagesubmissionsstaff_submissionsSubmissions for an assignment (table)
TestHashPagetest_hashstaff_test_hashHash a submission to generate a security code (form)
TestsPagetestsstaff_testsTests for an assignment (table)
UploadAssignmentResourcePageupload_assignment_resourcestaff_upload_assignment_resourceUpload an assignment resource (form)
UploadTestResourcePageupload_test_resourcestaff_upload_test_resourceUpload a test resource (form)

Marker pages

Page ClassPage IdentifierTemplateDescription
AssignmentsPageassignmentsmarker_assignmentsAssignments that a marker can mark (table)
DownloadSubmissionPagedownload_submissionmulti_editedDownload a submission
EditMarkPageedit_markmarker_edit_markEdit/delete a mark (form)
MarksPagemarksmarker_marksMarks for a particular marking assignment (table)
PerformEditMarkPageperform_edit_markmulti_editedEdit/delete a mark
PerformTestPageperform_testmulti_testresultsExecute tests on a submission
StudentsPagestudentsmarker_studentsStudents that a marker can mark for an assignment (table)
SubmissionsPagesubmissionsmarker_submissionsSubmissions a student has submitted to an assignment (table)
TestPagetestmarker_testExecute tests on a submission (form)

Admin pages

Page ClassPage IdentifierTemplateDescription
EditModelPageedit_modeladmin_edit_modelEdit/delete a model (form)
EditModulePageedit_moduleadmin_edit_moduleEdit/delete a module (form)
EditPersonPageedit_personadmin_edit_personEdit/delete a person (form)
ExecuteUtilityPageexecute_utilityadmin_execute_utilityExecute an administration operation (form)
FindModuleAdministratorPagefind_module_administratormulti_find_personAdd module administrator 1 (form)
ModelsPagemodelsadmin_modelsModels in the database (table)
ModuleAdministratorsPagemodule_administratorsadmin_module_administratorsModule adminsitrators (table)
ModulesPagemodulesadmin_modulesModules for a model (table)
PeoplePagepeopleadmin_peoplePeople in the database (table)
PerformAddModuleAdministratorPageperform_add_module_administratormulti_editedAdd module administrator
PerformEditModelPageperform_edit_modelmulti_editedEdit/delete a model
PerformEditModulePageperform_edit_modulemulti_editedEdit/delete a module
PerformEditPersonPageperform_edit_personmulti_editedEdit/delete a person
PerformExecuteUtilityPageperform_execute_utilityadmin_executed_utilityExecute an administration operation
PerformFindModuleAdministratorPageperform_find_module_administratormulti_found_personAdd module administrator 2 (form)
PerformRemoveModuleAdministratorPageperform_remove_module_administratormulti_editedRemove module administrator
UtilitiesPageutilitiesadmin_utilitiesList of available admin operations