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:
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.
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
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.
Number Of Tests Run | Number Of Number of Tests Passed | Total Run Time |
---|---|---|
49 | 49 | 11.784s |
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 |
ptrric011@myuct.ac.za
hussein.suleman@uct.ac.za