Sale!
Placeholder

A Distributed System for Coursework Submission and Management

10,000 3,000

Topic Description

Summary
The aim of this project is to provide the School with a distributed system to manage both the submission
and marking of coursework. A database provides the storage mechanism for the submitted files. A threetiered
client-server architecture is used to allow students to submit files to the database for marking. A
separate client application allows management of the database, including features to set courseworks
and assign markers for the work. This database solution allows active rules to be written to handle
workflow management of the marking process.

Contents
1 Coursework Submission and Management 1
1.1 Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Existing Solutions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.1 E-mail attachments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2.2 School Information System . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2.3 “submit” . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 The Proposed New System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 Features of the new system . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Formal system requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2.1 Functional requirements . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3.2.2 Non-functional requirements . . . . . . . . . . . . . . . . . . . . . 5
1.3.3 Methodology for the process . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2 Project Management 7
2.1 The Project Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Minimum requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.3 Possible enhancements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.1.4 Deliverables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.1.5 Project schedule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Revisions to the plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3 Building the Database 11
3.1 Entity-Relationship Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.1.1 Identification of entities and relationships . . . . . . . . . . . . . . . . . . . . 11
3.1.2 Entity attributes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1.3 The model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Table Schemata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2.1 Mapping the model to a set of logical schema . . . . . . . . . . . . . . . . . . 14
3.2.2 Derivation of PostgreSQL data definition statements . . . . . . . . . . . . . . 16
iii
3.3 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 Integrity Constraints and Business Rules . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.1 Foreign key dependencies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4.2 Input validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.5 Building the Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4 Coursework Submission Application 19
4.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
4.3 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4 Design Choices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4.1 Scripting language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4.4.2 Cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4.3 CGI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4.4 DBI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4.5 base64 encoding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.5 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.5.1 HTML index page – index.html . . . . . . . . . . . . . . . . . . . . . . . 24
4.5.2 Recursive Perl script – connect.cgi . . . . . . . . . . . . . . . . . . . . . 25
4.5.3 Upload script – upload.cgi . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.5.4 Delete scripts – delete.cgi, deleted.cgi . . . . . . . . . . . . . . . . 26
4.5.5 Download script – download.cgi . . . . . . . . . . . . . . . . . . . . . . . 27
4.6 Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.7 Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5 Coursework Management Application 29
5.1 Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.2 Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
5.3 Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.3.1 Managing module registrations . . . . . . . . . . . . . . . . . . . . . . . . . . 32
5.3.2 Managing module markers . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
5.3.3 Managing coursework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
5.3.4 Querying submissions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
5.4 Software Choices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5.5 Design of the GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.6 Implementation of Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
5.7 Using the application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6 Additional features 41
iv
6.1 Workflow Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.2 Archiving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
6.3 Synchronisation with SIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7 Evaluation 44
7.1 Satisfaction of System Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
7.1.1 Functional requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.1.2 Non-functional requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.2 Evaluation of Coursework Submission Application . . . . . . . . . . . . . . . . . . . 48
7.2.1 Method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
7.2.2 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.3 Security Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Bibliography 51
v

PROJECT SAMPLE/DEPARTMENTS

REVIEW OUR SERVICES

SEE FAQ