For the coursework you are asked to build an advanced server-side web application
which uses XML for data storage and some AJAX and graphics functionality.
You can use any programming
language of your choice for the coursework but only Perl
and PHP will be supported by the lecturer. That means that if you
choose a language other than PHP or Perl, you cannot ask for help if you
are having problems with your programming language.
Components of your coursework
Your application should consist of the components given below. You can
choose the exact topic of your application yourself. A few examples
of possible topics are given below.
- Interface and graphics:
A form-based interface which allows users to enter data. After
clicking the submit button, the data should be graphically represented
either using SVG or a graph that was drawn using Graphviz (or a similar
A file-display option which allows to display the data in an XML format.
The XML format used by your application should be purpose-designed for this
application. This means that you should not use SVG or another existing
XML format, but instead create your own XML format. Your XML format should
have exactly the elements that are needed by your application.
- Some AJAX functionality (similar to the examples provided in
the Week 7 exercises).
- Your application should accept Unicode (utf-8) character input via the
- The following documentation:
- 1) the URL of your application;
- 2) an introduction;
- 3) the DTD for your purpose-designed XML format and a
sample XML file. The sample XML file should be as brief as
possible (i.e. without duplicate elements if possible);
- 4) a brief explanation of the AJAX functionality
and Unicode support of your application (state whether you were able to
implement these and describe briefly how they are implemented);
you should also explain whether or not you are using
either SAX or DOM technology for your XML file processing;
- 5) a security check in form of
a table which lists all the security
issues mentioned in the lecture under "Listing of server-side risks".
For each issue it should be stated whether
it is relevant for your application. If it is relevant, a brief comment should
explain how the issue was resolved.
- 6) a short critical evaluation of how your application uses advanced
web technologies; (I.e. compare how using XML, AJAX and graphics
differs from using just plain Web 1.0 technology.
Explain how these features impact the user experience in a positive or negative
- 7) a references section which lists
any resources for the development of your application other
than the materials from the lecture notes and exercises in the practicals
script code which you may have downloaded from the web.
The writing style of your documentation should be brief, factual and focusing
on the technical details.
The text of your documentation (without the security check table and the
XML file and DTD) should not be more than 3 pages if printed
in 12pt font on A4 paper. Please, print on both sides of the paper if possible.
Staple the documentation in the upper left corner. Please, do
NOT use plastic folders.
Possible topics of your application
You can choose the topic of your application yourself. To give you some idea
of what kinds of topics are feasible, three topics are listed here:
- A social network visualiser. This application lets users enter their name
and the names of some of their friends through a web form. After submitting
the form, a graph of the network formed by friendship is drawn (using Graphviz).
- A tag cloud visualisation application. Users can enter a list of tags and
their weights in a web form. After submitting the form, a layout of the
tag cloud is produced either using SVG or
using Graphviz's spring embedding layout with invisible edges.
- A logo creation application. Users can select several graphical elements
(background colour, circles, squares, some text) from a web form. After
submitting the form, an SVG file is created that combines the elements chosen
by the user into a logo.
Monday in Week 11, 15:00:
Hand the printed documentation in to the School Office.
Please remember to show your matriculation card when you are handing in your
documentation at the School Office.
A zipped file of the source code of your application should be emailed
to firstname.lastname@example.org with the Subject line "SET09103 Coursework".
only the code that you wrote (not any APIs, libraries etc you might have used)
in the file. 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.
Practicals in Week 11 and 12:
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.
The Napier webserver is guaranteed to be extremely slow during a time of
high demand around the deadline. Especially, if you are using the Napier webserver
please, DO NOT leave the coursework to the last minute.
The deadline will not be extended unless
the Napier server is completely down for an extended period.
Safeguarding your work
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
You should make regular backup copies
of your code, for example, by copying the files to your net storage space
or to an external USB device via your I-drive.
If you submit your coursework late (between 1 and 7 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 marks for XML, AJAX, Unicode and Security
will be based both on your implementation and the documentation.
Marks will be given both for functionality (whether it works) and
complexity. The points will be distributed as follows:
|XML ||10 points
|Documentation (parts 1, 2, 6, 7) || 5 points
|Design and Usability||5 points