Introduction

The computer science department at UCT has a digital archive of the Honours students’ projects that has existed since 2003 and while it is still functional, it has become outdated. These archives display the heritage of the Computer Science department and allow visitors to see the development of technology and formation of knowledge that has happened over the past 20 years. This archive is accessible to all members of staff, students (current and past), and even general members of the public who are interested in accessing such a rich collection of works. And over the past 20 years this software solution has largely remained the same. This software is still completely functional, however, new and more advanced solutions are available now that could improve upon the current archive. Currently, the software used for the honours project archive is outdated and there is potential to use new and more modern tools and techniques to style and improve the aesthetic appeal of the submission process to make it more in line with the standards of websites today. There is also a lack of security on the website as outside users can upload projects to the archive.
Therefore, the aim of this project is to develop a Web application with advanced features and a better user interface that provides a more pleasant user experience. This will be done by meeting the following set of requirements:

Functional requirements: Non-functional requirements:

Process

An iterative development cycle was used, the agile methodology of feature driven development (FDD). An agile development process was chosen due to the core principles of agile allowing for continuous changes over iterations. FDD was specifically utilized due to the nature of the project being largely feature based.

Iterations

There were three main iterations for the software. In the first iteration, the user management and uploads were developed. In the second iteration, the administrator management and archival of projects was developed. In the third and final iteration, styling was done to creating a more visually appealing website. In each iteration, a detailed list of features were planned along with sequence diagrams. Once the individual methods were created, a lo-fi prototype was made to create the basic layout for the webpage, which was then developed and interacted with the previously created methods. After the development was completed, manual integration testing was used to ensure the expected behavior was exhibited

Testing

Both functional testing and non-functional testing was performed. Functional testing included integration testing, unit testing and system testing. Non-functional testing included performance testing and usability testing. The functional testing ensured that the system was able to perform the correct actions at both a method level and checked that the information flow between methods worked as expected. Whereas the non-functional testing ensured that the system was reliable and acceptable to users.


Results

Unit Testing:

A total of 49 tests were run and all of the tests passed. These tests encompassed each of the methods involved with user management, project management, email sending and cookie handling.

Number Of Tests Run Number Of Number of Tests Passed Total Run Time
49 49 11.784s

Happy Path Testing:

A total of 12 actions werer tested and all use case tests passed, showing the correct output on a positive flow.

Test Result
Uploading a file to the project PASS
Deleting a file from the project PASS
Unzipping a file to be added to the project PASS
Submitting a project to be moderated PASS
Uploading a thumbnail to the project PASS
Uploading metadata to the project PASS
Creating a new user PASS
Deleting a user PASS
Creating a project manually PASS
Creating a project from a CSV PASS
Approving a project during moderation PASS
Denying a project during moderation PASS

Usability testing:

Users were on average pleased with the visual design and simplicity of the website, scoring it an average of 4.3 over a serries of questions. As well as providing mostly positive comments in the open-ended questions.

user testing image

Website


Team

Richard Paterson

Author

richard profile picture

ptrric011@myuct.ac.za

Hussein Suleman

Supervisor

hussein profile picture

hussein.suleman@uct.ac.za


Source Code

GitHub Link Download Project