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).
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.
- A web form to
- upload a photograph
- choose a frame for the photograph (choose a background colour and shape)
- enter some text which will be used as the title of the photo.
The textfield should accept Unicode (utf-8) characters.
- Display options:
- An SVG image that displays the photograph within the chosen frame
and with the title. An example of what it might look
like is shown here.
- The source code of the SVG file (without asking users to select "view source" on
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.
- Display some attributes of the uploaded photograph (for example, date and
time when the photo was taken, camera type)
that are extracted from the jpg file of the photograph.
- A custom-designed XML file for the metadata of the photograph
(e.g., date and time, camera type) and the frame elements (e.g. colour) is displayed.
This XML file should contain between 10 and 15 elements.
- Giving users the ability to edit the XML file and/or upload a new XML file.
- The XML file is displayed as a tree using Graphviz.
- AJAX functionality (e.g. loading of data in the background, displaying
everything on a single page which changes dynamically).
Code hand-in: Monday in Week 11, November 15, 15:00:
Demonstration: Practicals in Week 11 and 12:
- A zipped file of the source code of your application should be emailed
to email@example.com with the Subject line "SET09103 Coursework".
(The file must be in .zip format, not .rar or anything else).
Your source code will not be marked. But if there are any disputes
about marks or if plagiarism is suspected your code will be looked at.
- If your application is installed on a public server, please include
the URL of your application in your email as well.
- Your coursework will be evaluated during the practicals in
Week 11 or 12. If you cannot attend these practicals for whatever reason,
you need to email the lecturer in advance. (If you use your own laptop
for demonstrating the coursework, please use a large font.)
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
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.
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
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 upload||5 points
|SVG image (frame, picture, title)||6 points
|SVG source code displayed||5 points
|Design and Usability||3 points
Advanced features (total 25):
|Display image attributes||3 points
|Display XML file||4 points
|Edit and upload XML file||6 points
|XML file as a tree with Graphviz||6 points
|AJAX functionality||6 points
This part of the coursework covers the Learning Outcomes
(according to the Module Descriptor):
- LO2: Execute XML operations using tools
(because SVG is an XML format and because of the advanced features)
- LO3: Construct an application using Web 2.0 technologies