You are on page 1of 4

Applications: Architectures and Frameworks

Java Web Application


Chris Bates and David Love

Introduction
This assignment lets you demonstrate that you can use Java technologies to build reasonably complex
applications. In solving this problem you will use several popular frameworks (hibernate, servlets, Java
Server Pages and, if you wish to, Struts) which have become standards in the IT industry.

The Task
We (David and Chris, that is) like to assess programming modules at walkthroughs during which students
present their code to us and we ask challenging questions of them. Walkthroughs are arranged by tutors in
computer laboratories typically outside normal timetabled classes. The tutor books the lab for a block of
one, two or three hours which is divided into slots. Each student, or group of students, chooses a convenient
slot and attends at that time, demonstrates their code and receives verbal feedback, and sometimes a
provisional mark. Some modules require more than one session and each of those sessions may be in a
separate room.
The problem we have is that students choose their slots by filling in sheets which are taped to our office
door. This seems such a nineteenth century idea that we would like to replace it with a twenty-first century
alternative. Your task is to build that system using a mixture of HTML, JavaScript, Servlets, JSPs, POJOs
and a simple database.
Your system must demonstrate the following functionality:
• A database, which should be able to hold module details (name, id, study level, courses on which the
module is taught, academic year), walkthrough sessions (module, room ID, date and time), slots,
students and groups of students. You should enter details of walkthroughs etc. directly into your
database.
• Students should be attached to each module ( Again, this can be added directly in the database you
don't need to provide a data-entry screen for that)
• Sessions and slots should be displayed to students with full and empty slots clearly identified
• Students should be able to sign up for empty slots by entering their names
• Students should be able to query the system to see walkthroughs for which they have signed up.
• The above student functionality should be made available via a web-client.
• The explicit use, within your code, of architecture and design patterns such as Factory, Façade,
Filter. The implementation of patterns by the frameworks which you use does not count!
• Students must not be able to see each other's details or slots.
• No student should be able to sign up for the same module twice or for concurrent walkthroughs on
more than one module.
• The system should be able to validate student details to ensure that they are really studying the
module.
We recommend that for this exercise you use the JavaDB database which is distributed as a standard part of
Java 6 and which has been covered in some of the tutorial work. Instructions for using it with Netbeans can
be found within the Netbeans tutorials and documentation.

Submission
You must submit an archive containing your group's source code and a database creation script in SQL to the
AAF Blackboard site by 9:00am on 23rd August, 2010. Blackboard only permits uploads up to two Mbytes.
If yours is likely to be larger than this make sure that you are not including libraries, compiled code, images
etc.

Your work will be examined at walkthroughs during the week starting 23 rd August, 2010.

Learning Outcomes
This assignment partially covers the following learning outcomes from the module:
 Use different levels of pattern successfully in the design of software and systems
 Implement software applications using a number of different frameworks.
Marking Scheme

You will be marked on


• the structure of your database (10 marks)
• Range of functionality provided for students (40 marks)
• Quality of application (including issues of look & feel, usability & robustness) (20 marks)
• The use of appropriate architectures and patterns (20 marks)
• Structure of your code (10 marks)

Marks for each of these points will be awarded across a Likert-like scale. For example:

0-40% 40-50% 50 – 60% 60 – 70% > 70%

Very weak, Just passable. Solid – a good Very good work - Excellent work,
missing or no range of a wide range of approaching a
real attempt. Some knowledge functionality functionality professional/commercial
and understanding, presented presented standard.
The best way to or ability is covering most of covering the main
improve is to demonstrated, but the main requirements. There is a full range of
start again… there are many requirements. functionality and the
severe Things are application is robust and
limitations/and or Things are working well, well-engineered.
bugs. working to some with some
extent but there limitations to what
The basic skeleton Explanations are clear,
are many obvious has been
is there, concise and demonstrate
limitations in what achieved.
approaching a full understanding of
has been
success with some the issue being
achieved. Explanations
parts of the addressed.
show that whilst
required
Explanations attention has
functionality, but Elements which
show that largely been
there is significantly and
attention has been restricted to the
considerable scope appropriately extend the
restricted to the course material, it
for further course material have
course material, is clear that an
development and been researched and
with little attempt attempt to bring in
improvement. assimilated fully within
to go beyond that. other elements has
the application.
been made with
A solid skeleton is some success.
Suggestions for
there, but there are
improvements are minor.
several areas for The application is
further good, with
development and potential for it to
improvement. be excellent, but
there are also
some areas where
further
development and
improvement is
clearly possible.