Assignment title: Information


COMP1448

(2015/16) Enterprise Web Programming Header ID 227802 Contribution 100% of course Course Leader

Dr Markus Wolf Release Date

Monday 18/01/2016 Deadline Date Sunday 10/04/2016

This coursework should take an average student who is up-to-date with tutorial work approximately 50 hours

Feedback and grades are normally made available within 15 working days of the coursework deadline Learning Outcomes: A, B, C Plagiarism is presenting somebody else's work as your own. It includes: copying information directly from the Web or books without referencing the material; submitting joint coursework as an individual effort; copying another student's coursework; stealing coursework from another student and submitting it as your own work. Suspected plagiarism will be investigated and if found to have occurred will be dealt with according to the procedures set down by the University. Please see your student handbook for further details of what is / isn't plagiarism. Details are also on the Student Intranet.

All material copied or amended from any source (e.g. internet, books) must be referenced correctly according to the reference style you are using. Your work will be submitted for electronic plagiarism checking. Any attempt to bypass our plagiarism detection systems will be treated as a severe Assessment Offence.

Coursework Submission Requirements • An electronic copy of your work for this coursework must be fully uploaded by midnight on the Deadline Date of Sunday 10/04/2016 using the link on the coursework Teachmat page for COMP1448. • For this coursework you must submit a single Acrobat PDF document.

In general, any text in the document must not be an image (ie must not be scanned) and would normally be generated from other documents (eg MS Office using "Save As .. PDF"). More details are on theIT Support pages . An exception to this is hand written mathematical notation, but when scanning do ensure the file size is not excessive.

• For this coursework you must also upload a single ZIP file containing supporting evidence. • There are limits on the file size (current values are on TeachMat and the Student Intranet).

• Make sure that any files you upload are virus-free and not protected by a password or corrupted otherwise they will be treated as null submissions. • Your work will be marked online and comments on your work and a provisional grade will be available from the Coursework page on Teachmat. A news item will be posted when the comments are available, and also when the grade is available in BannerWeb.

• You must NOT submit a paper copy of this coursework, or include the Banner header sheet. • All courseworks must be submitted as above. Under no circumstances can they be accepted by academic staff The University website has details of the current Coursework Regulations, including details of penalties for late submission, procedures for Extenuating Circumstances, and penalties for Assessment Offences. See http://www2.gre.ac.uk/current-students/regs

Coursework Specification This coursework must be completed individually. Please read the entire coursework specification before starting your work.

This assignment consists of two parts: • Part A: an online quiz, which will take place in the lab. The date of the online quiz will be advertised on the course page. • Part B: implementation of an online restaurant advertisement system and accompanying report

Part A (10%) – Online Quiz You are required to complete an online quiz at the day/time advertised on the course page. The quiz is timed and consists of a number of multiple choice questions on material covered on the course.

At the end of the quiz, your result is automatically calculated and displayed on the screen. You MUST print screen the page showing the score, save it and include it in the report for Part A. Part B (90%) - Dance Company Support System You have been approached by a dance company called Two Left Feet which acts as an agent for dance instructors. The company has a number of dance instructors on their books and people interested in dancing can book private dance lessons through Two Left Feet. The company wants to introduce an IT system to support their business.

The company would like to have a custom application developed which will support the instructors - this will be called Lesson Manager. In addition to this they also want a web application that customers can use to book lessons. Finally, the company wants an application that calculates the invoices for customers. The system will be used by three types of users:

• Company administrators • Dance instructors • Customers The system needs to provide the following functionality to each type of user:

• Company administrators o Use the web application to manage dance instructors (add/edit/delete), view a list of all instructors and schedule instructors for lessons o Use the invoice calculator to calculate invoices for customers • Dance instructors

o Use the Lesson Manager to show details of booked lessons, record details of the lesson and synchronise details with the web application • Customers o Register an account o Book a private lesson

The information kept about a dance instructor should include at least the following: name, gender, styles he/she can dance (e.g. Waltz, Jive, Samba), telephone number, hourly rate and availability (the days of the week when the instructor is working).

A customer needs to register an account in order to book a lesson. The system should capture at least the following details during the registration process: first name, surname, email address (also used as username), password, gender, date of birth, phone number and address.

A customer should only be able to book a lesson in the future and needs to specify the dance style he/she would like to learn and the maximum hourly rate they are prepared to pay. When a customer makes a booking, the system should record the date/time, expected duration and dance style. The customer doesn't directly choose the dance instructor, but an instructor matching the dance style and not exceeding the hourly rate is automatically assigned by the system. The system should prevent instructors from being double-booked.

The company wants you to develop the Lesson Manager application which instructors use when they go to lessons. At the beginning of a day, an instructor could load all lessons for that day, during the lessons instructors can log details for a lesson and details would be synched back to the web application. The details that an instructor logs are the actual start time of the lesson, the actual duration in minutes and any notes on the progress of the dance student. The actual duration of the lesson needs to be recorded as sometimes instructors extend the lesson.

Customers are paying for their private lessons at the end of each month. The company wants you to develop a standalone application for calculating invoices. This application is run by the administrators and allows them to calculate the invoice for a particular customer for a particular month. Invoices are then sent by post to the customers. The actual payment of an invoice happens outside of the system, but it should be possible to record the status of an invoice (i.e. created, sent and paid).

There are strict requirements about the technologies and architecture to be implemented. These are detailed in the deliverables section below. Deliverables

Implementation (80%) 1) Database (10%): The database needs to be used for persistent storage of dance instructors, customers, bookings and invoices. For details of what information should be stored in the database, please see the description above. You can use any relational database management system you wish (e.g. SQLServer, MySQL, Oracle, Access, etc.). The database should be normalised and use primary key and foreign key constraints.

2) Web Application for Administrators (10%): The web application should be implemented in ASP.NET using C#. It should allow a company administrator to manage dance instructors. The web application should use the database outlined in requirement 1. It should also enable a user to register a new account, log in and make a booking.

3) Web Application for Customers (10%): Extend the web application created for requirement 2 by adding a section that will be used by customers. It should be possible for a customer to register a new account, log in, search for available dance classes or workshops and make a booking.

4) SOAP Web Service (10%): The company is planning to provide dance instructors with the ability to manage their classes using a dedicated lesson manager. In the long term they want to create multiple interfaces for the lesson manager, including a web application, desktop application and a mobile app. To support this, you need to implement a SOAP web service in C# that provides functionality for loading all lessons for a particular instructor for a particular day, as well as saving details of a particular lesson. The web service should also use the database outlined in requirement 1.

5) Lesson Manager Application for Instructors (10%): Create a web application, windows forms application or mobile app using any programming language/technology you wish to use. The application must connect to the web service created for requirement 4. The application should load a list of lessons for a particular instructor and day. It should be possible to log the actual start time and duration of a lesson and make notes. The application should also provide synchronisation functionality where the changes made to lessons are submitted back to the web service.

6) RESTful Web Service and XML Format (10%): Create a RESTful Web Service that exposes invoice data for a given customer. It should be possible to specify a customer and month/year and the RESTful web service should return a list of all lessons that the customer had during that time. The data must include the day/time of the lesson, duration, instructor and hourly rate of that instructor. There should be an additional method that exposes a list of all customers or allows searching for a customer by name or email address. All information should be exposed in XML format. You should also create a schema that outlines the valid structure of the XML messages returned by the RESTful web service.

7) Invoice Calculator (10%): Create a desktop or web application for processing invoices. This application is used by administrators to create invoices for customers. An administrator should be able to select a customer from a list or search for a particular customer, set the month for which to calculate the invoice and the application should then display an invoice for that customer. The Invoice Calculator should only interact with the RESTful Web Service created for requirement 6. The XML returned by the web service should be checked for well-formedness and validity on receipt.

8) AJAX / JQuery (10%): Add use of AJAX and/or JQuery in your web applications. It is up to you do decide how you apply these technologies to enhance your web applications.

Written Report (10%) The report should provide sufficient evidence that the requirements outlined in the course specification have been met. The report should consist of the following sections: • Section 1 (0%): Provide direct links to the employee and customer web applications deployed on the University's IIS server and login credentials for a customer and an employee account.

• Section 2 (2.5%): Design documentation of the system that you built. You should use graphical notation appropriately (e.g. ERD/UML diagrams).

• Section 3 (2.5%): Screen shots demonstrating each of the features that you have implemented. Give captions or annotations to explain which features are being demonstrated.

• Section 4 (2.5%): An evaluation of the evolution of your application. You should discuss any problems you had during implementation. You should be critical (both positive and negative) of your implementation. Be prepared to suggest alternatives. Discuss how your final implementation could be improved.

• Section 5 (2.5%): The practical asked you to implement SOAP and RESTful Web Services. Critically compare the two technologies. In your discussion you should include references to your own experience with these Web Services.

• Section 6 (0%): You are required to include a screenshot of your online quiz result in the report. The screenshot doesn't carry any marks, but if you fail to include it you may not be awarded the marks for Part A – the online quiz. Demo (0% but see below) Notes on the Implementation You MUST upload a ZIP file containing all of your source code (i.e. the folders containing the Visual Studio projects – the only exception being the packages folder which can be removed to reduce file size). You MUST clearly reference code borrowed from sources other than the lecture notes and tutorial examples, such as examples a book, the web, a fellow student, etc.

You MUST deploy your web application onto the University's IIS server. For more information on this please see: http://labs.cms.gre.ac.uk/web/webprojectsiis.asp Notes on the Report

The report should be submitted separately as a PDF document. Notes on the Demo You will demonstrate to your tutors. If you miss your demo you will automatically fail the coursework, irrespective of the quality of the submission. If you have a legitimate reason for missing a demo then you should wherever possible contact your tutor in advance and arrange an alternative demo slot. It is entirely your responsibility to contact your tutor and arrange a new demo if you miss your demo slot for a legitimate reason.

You are expected to talk knowledgeably and self-critically about your code. If you develop your program at home it is your responsibility to make sure that it runs in the labs. You should allow yourself enough time to do this. If you are unable to answer questions about the product you have developed, you will be submitted for plagiarism. A schedule for coursework demonstrations will be made available on the course website closer to the submission deadline. Grading Criteria The online quiz accounts for 10%, the report for 10% and the implementation for 80%. There are eight implementation requirements, each of which carries a total weight of 10%.

The mark for each implementation requirement is awarded taking into consideration the quality and completeness of the implementation, as well as the assessment criteria specified below. Just because you implemented a particular requirement doesn't mean that you automatically get the full 10%. The full marks are only awarded if the requirement has been implemented to outstanding quality, including software design model, code quality, user interface, error handling, validation, componentisation, etc. A poorly structured, but working implementation of a requirement would attract 5-6%.

To achieve a pass (50%) you must have made a serious attempt to implement at least four requirements. They must show some signs of attempting to focus on the assessment criteria given in this document. A relevant report must also be submitted and you must have attempted the online quiz.

To achieve a merit mark (60% and above) you must have made a serious attempt to implement at least five of the requirements. They must show some signs of attempting to focus on the assessment criteria given in this document. A good report must also be submitted and you must achieve a passing grade in the online quiz.

To achieve a distinction mark (70% and above) you must have made a serious attempt to implement at least six of the requirements. They must show some signs of attempting to focus on the assessment criteria given in this document. A very good report must also be submitted and you must achieve a good grade in the online quiz. To achieve a distinction (above 70%) you must implement all requirements to a very good level, or most to an excellent level, in accordance with the assessment criteria given in this document. Submit an excellent report. Successfully meet the large majority of assessment criteria outlined below. Achieve a very good result in the online quiz.

To achieve a very high mark (90% and above) you must implement all implementation requirements to an outstanding standard in accordance with the assessment criteria given in this document. Submit an outstanding report. Successfully meet all assessment criteria outlined below. Achieve an excellent result in the online quiz.

Assessment Criteria The implementation (80%) The following assessment criteria are used to determine the quality of your implementation and should be addressed in the development process: • It is not necessary to completely implement a whole functionality level in order to implement all or parts of later levels. • If you have incorporated features that were not explicitly asked for but which add value to the application, they may be taken into account if you draw our attention to them. • The application should look pleasant and be easy to use.

• Quality of Design – how flexible is your application? How easy would it be to add in new functionality, or alter the presentation layer, or change the data source? • Robustness of the application. Have you properly handled errors and validated input? Is there evidence of testing? • Quality of code –

o Is the code clear to read, well laid out and easy to understand? o Is the code self documenting? Have you used sensible naming standards? o Is your namespace structure logical?

o Have you commented appropriately?

The report (10%) • The report should be clear, accurate, complete and concise. State any assumptions you have made. The Online Quiz (10%)

• The online quiz is marked automatically and takes into consideration how many questions have been answered correctly. Questions that are partly correct are not awarded any grades (e.g. if you asked to choose two correct answers in the multiple choice question and you only identify one correctly then no partial score is given).

The Demo (0%) • You should be able to demonstrate the implementation level achieved in a clear logical and unambiguous manner without encountering errors. You must be able to show knowledge of your code and design choices. • The demonstration will take place after submission. A timetable with demonstration slots will be published on the course website closer to the date.