Coursework Part 1

Official Frontpage of this assessment

Please, see the FAQ.

For the coursework you are asked to build an advanced server-side web application which has some graphics functionality. You can use PHP or Perl. (If you want to use another server-side scripting language, you must check with the module leader whether that is ok. In any case it needs to be a language that runs on a typical installation of Apache.)

There is a Part 2 of this coursework which consists of writing a report related to Part 1. You should read both coursework descriptions before you start working on Part 1.

The coursework is divided into "basic features" and "advanced features". The difference between basic and advanced features is that you are allowed to ask for help during the practicals for implementing the basic features, but not for the advanced features. Implementing only basic features is sufficient to pass this module, but adding advanced features leads to a better mark (see the marking sheet below).

Basic features

For the coursework you are asked to build a web-based application for displaying a photograph. The application will have a form for uploading a photograph and two display options (an SVG image, SVG source). In more detail: Your code should be secured against HTML injection as discussed in the lecture.

Advanced features

Implementing some of the advanced features can be time-consuming. You should try to be strategic about how much effort you might put into which features. Although you won't be given help with the implementation of these features, you are allowed to ask for clarification during the practicals.


Code hand-in: Monday in Week 11, November 15, 15:00: Demonstration: Practicals in Week 11 and 12:

Plagiarism and Safeguarding your work

Although you are allowed to use existing sources on the web, you are NOT allowed to discuss the coursework in on-line forums, to use materials posted by other students in such forums or ask other people to help you in any way. During the demonstration you may be asked to explain parts of your code. All sources used must be declared in the references section of coursework part 2.

It is your responsibility to ensure that your files are read-protected from others. You should not leave any printouts of your code on Campus, not even in the rubbish bins. You should change the permissions of all your HTML files and PHP to "unreadable by others" while you are not working on the code.

Deadline Extensions

Module leaders are not allowed to give extensions. Losing your code because you didn't make backups or having problems with the Napier webserver (which is guaranteed to be slow during a time of high demand around the deadline) are not reasons for extensions.

If you have mitigating circumstances, you should discuss this with your Programme Leader who might give you an extension. But extensions of more than 1 week are not accepted by the module leader, even if your Programme Leader signs this. If you have severe mitigating circumstances then you must go through the official mitigating circumstances process and submit your coursework at the resit diet.

Marking Scheme

If you submit your coursework late (up to 5 working days after the deadline), the mark will be capped at 40%. After that your coursework will be marked as "fail".

You can reach a total of 50 points for the coursework. This is 50% of your final mark. The points will be distributed as follows:

Basic features (total 25):

Image upload5 points
SVG image (frame, picture, title)6 points
SVG source code displayed5 points
Security4 points
Unicode2 points
Design and Usability3 points

Advanced features (total 25):

Display image attributes3 points
Display XML file4 points
Edit and upload XML file6 points
XML file as a tree with Graphviz6 points
AJAX functionality6 points

Learning Outcomes

This part of the coursework covers the Learning Outcomes (according to the Module Descriptor):