Overview
In this project, each student is required to design, develop and test a web application utilizing Web Services technology for the Fitzroy Catholic Bookshop. The Bookshop has a catalogue of their products, which are categorized as follows:
- Books
- Audio Books
- Videos
- Music
The Bookshop sells products from the following Publishers:
- Harper Collins
- Penguins
- St Pauls Publication
- Franciscan Media
- Orbis
The following information is stored for each item:
- ISBN (which is a number that uniquely identifies a product)
- Title
- Category
- Author(s) / Artist(s)
- Publisher
- Price
- Quantity-on-hand
- Image
Product information can be entered via the Web site and stored in a MySql database table using Hibernate ORM layer.
You will need to use Java, Hibernate as an ORM layer to the database and RESTful web service technologies. You will also need to apply the design and programming concepts and techniques you have learnt in ISYS618 in order to implement a successful web application.
The project is to be developed in two stages:
Stage 1 - Design Report for a Web Service Project
The aim of Stage 1 is to write a report on the how the various technologies mentioned above are used to implement the project as a web service application in java. Your report should be broken down in terms of HTML pages required for the project. For each page the report should contain (i) a diagram for the RESTful architectural components assuming Hibernate ORM layer is used for database table access(ii) A block of English statements explaining how RESTful web services are used within each component of the architecture for servicing the page.
Required Web Pages
The following pages must be implemented as a minimum:
Home Page
This is the main page of the site. It must contain at least a picture that represents the company or the company logo, some explanation of the website, what services or functionalities it provides and briefly how to use them.
Site Map Page
This page must show a list of all pages on the web site, as well as links to these pages. You do not need to include the Catalogue Search Result Page in your site map. (It will be generated dynamically in Stage 2).
Catalogue Search Page
This is the form where user can search for products in the catalogue based on category, or publisher, or within a price range, or a combination of any of these criteria. For instance, the user can choose to view all Videos, or they can choose to view all Videos under $30, or they can choose to view all Videos published by Franciscan Media between $20 and $30. The user can also choose to view products in all categories, and/or by any publisher, and/or at any price.
In Stage 1, you need to design the page layout and UI elements required to allow for these functionalities. You may hard code the categories and publishers in your HTML code.
Catalogue Search Result Page
This is the page that will display the search result from the Catalogue Search Page. It will be generated dynamically as the search is carried out (which you will implement in Stage 2).
In Stage 1, you need to design the page layout and UI elements to:
- Display 5 product records. All details of each product (as listed in the Overview section) must be shown
- Highlight the products with quantity-on-hand less than 5
- Display the total number of products that satisfy the search criteria
Catalogue Maintenance Page
This is the form where user can enter product details that are listed in the Overview section. In Stage 1, you need to design the UI elements required to allow for this functionality, as well as the layout of the page.
Required Web Page Elements
The following page elements must be included in all web pages:
Company title and logo
The Company title is “Fitzroy Catholic Bookshop”. The logo can be any reasonable thing you create.
Navigation bar
The navigation bar must include links to the following pages.
- Home
- Site map
- Catalogue Search
- Catalogue Maintenance
There must be a way to know which page is currently active. One way of doing it is by using breadcrumbs, for instance, Home -gt; Catalogue Display indicates that you are currently viewing Catalogue Display page, which is under the Home page. You may choose to use this or another suitable way.
Main area
This is the main space of each page in which the UI elements required to carry out the functionalities of the page are placed, or the result of carrying out these functionalities are returned and displayed.
Submission
Create a Word file as with the necessary details and submit via Turnitin.
Stage 2 (Assessed, See Unit Outline for Details)
The aim of Stage 2 is to develop the application using the specified RESTful architecture.
Functional requirements
You are required to modify and make the following pages fully functional:
Catalogue Maintenance Page
Submitting the form will write product data in the form into a file, which can be retrieved and used by the Catalogue Search Page.
You should provide server-side or client side form validation. For instance, input fields should not be empty, price must be a positive number If input data is not valid, return the user to the Catalogue Maintenance Page and print appropriate error messages. You may hard code categories and publisher and allow user to choose only from them.
Catalogue Search Page
Submitting the form will actually carry out the search that:
- Returns all details (as listed in the Overview section) of the products that satisfy the search criteria.
- Highlights the products with quantity-on-hand under 5.
- Calculates and displays the number of products that satisfy the search criteria.
Technical and Design Requirements
You should write your web pages in XHTML. It should validate with http://validator.w3.org. Your web pages should be valid to the XHTML 1.0 Strict DTD.
You should use CSS to separate structure from presentation on your web pages. The CSS file should be in a separate file. The CSS file should be validated at http://jigsaw.w3.org/css-validator/
The actual presentation of the web site is up to you but you should layout the web pages to achieve the following:
- To appear as neat and professional as possible.
- To have a consistent “look and feel”.
- To make navigation as simple as possible.
The images that are needed for the project can be downloaded via the Internet
Submission
You should demonstrate the project on your laptop in the specified week in the tutorial session. See the Unit Outline for further details.
You will also upload a zip file containing all the resources of the web application, on LEO.