Build a website for an online company selling books.
The system should include the data for at least 10 real books and include the correct details for each. The customer details should also be valid.
You are required to create the following accounts to allow the system to be tested. All accounts should have the password p455w0rd
:
customer1
customer2
admin
(only required for stage 3 functionality).
The core functionality consists of three screens.
A home page that should be visible without logging in. This should display all the books that are for sale. For each book the following should be shown:
- The name of the book
- The name of the author
- A thumbnail image
- A price
Clicking on either the thumbnail or name should load a product details page that shows:
- The name of the book
- A full resolution image
- The price
- A detailed, multi-line, formatted description taken from the endleaf.
- The EAN (barcode) number.
If the customer
is logged in they should also see a link or button to add the item to their shopping cart.
If the customer
is logged in they should see a link or button taking them to their shopping cart.
This should list all the items added to the cart plus a total and a checkout link or button.
There should be a remove link or button next to each item which should remove the item from the cart and recalculate the total.
The intermediate tasks require you to make changes to the functionality:
- The product details page should allow the
customer
to refine their choice by choosing from hardback/paperback and new/used.- The options available will vary with availability.
- As they switch between these options the price should automatically change.
- When the customised item is added to the cart this should list the options selected.
- There should be a Make Payment link or button in the shopping cart which takes the
customer
to a (fake) payment screen. This should include:- Overall weight.
- Shipping cost (based on weight).
- Overall cost including base, vat and total.
- Once the order is complete (the fake payment has been approved), the
customer
should receive a nicely formatted email with their order details.
- There should be one account flagged up as admin. They log in using the same login page but will see additional functionality:
- On the home screen there will be a link or button to add new books, this will take them to a screen where they can add the product information (see the basic task for the fields).
- Next to each of the existing products there should be a link or button to allow the admin to edit the product details.
- For each product, the admin should be able to add and edit options including price for each of the four option combinations.
- The product details page should display multiple images of the product:
- The admin user needs to be able to upload more than one image for each product (no maximum limit).
- the user should see thumbnails of all the images.
- Clicking on an image should display it full-size.
- There should only be one large image displayed at one time on the page.
In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.
In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:
- When a custotomer places an order the system should automatically determine which country they are ordering from and use this to calculate the delivery cost.
- When the customer checks out the order, the address field(s) should be prefilled based on their current location but they should be able to correct this.
- The user should be able to use their device camera (if available) to scan a barcode which either adds the book to the cart or flags it up as invalid.
In the requirements listed above you need to provide the user with the ability to upload photos. For the extra media marks you will need to expand this by:
- Providing the user with the choice of uploading photos, video clips or audio clips.
- Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.
There are lots of online RESTful APIs you can make use of when developing this system. You should consider: