Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

Book Shop

Build a website for an online company selling books.


Testing

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:

  1. customer1
  2. customer2
  3. admin.

Stage 1

The core functionality consists of three screens.

Part 1

If the user is logged in with the admin account they should see a Stock levels button on the home page. This should take them to a Stock Levels screen which should have an Add stock button. Clicking this should take them to an Add Stock screen which contains a form where they can add new books to the system. This should request the following information:

  1. The name of the book.
  2. The author of the book.
  3. A data picker allowing the pubication date to be set.
  4. The ISBN-13 number.
  5. The multiline book description.
  6. A picture of the front cover.
  7. A slider allowing the trade price to be set (max £100).
  8. A slider allowing the retail price to be set (max £100).
  9. A slider allowing the quantity of books to be set (max 20).

The ISBN-13 number should be considered the primary key. If stock is added for a book that is already in the system it should update the existing record rather than adding a new one.

Part 2

The Stock Levels screen should display the books that have been added to stock using the form from the part 1 task. This page should display:

  1. A thumbnail picture of the front cover.
  2. The book title.
  3. The ISBN-13 number.
  4. The quantity in stock.

Part 3

Each book on the Stock levels screen should have a Details link or button. This should take the admin user to a Book Details screen that displays all the information about the book including cover image, description, prices and the number in stock.

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:

  1. The name of the book
  2. The name of the author
  3. A thumbnail image
  4. A price

Stage 2

  1. The following information about all the books in stock should be visible on the homepage without needed to log in:
    1. The name of the book
    2. The name of the author
    3. A thumbnail image
    4. A price
  2. If a user is logged in there should be an Add to cart button next to each book. Clicking this adds the book to a shopping cart and displays the cart page. The cart should have a Continue shopping link or button to take the user back to the homepage.
  3. The cart should handle adding the same book twice by changing the quantity and should display the total costs of all the items in the cart.

Stage 3

  1. If the quantity of any book drops to zero it should not be possible to add the item to the cart and it should be flagged as out of stock until the admin increases the stock level.
  2. The shopping cart should enable the user to adjust quantities of each item and remove items with the correct total always being displayed.
  3. There should be a checkout link or button on the shopping cart page. This takes the user through the checkout process, prompting for an address if none can be found and storing this in the user profile for future orders.
  4. There should be an Order history button for the admin user which lists all the orders placed on the system together with their details and value.

Extras

In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.

Sensors

In some assignment briefs you are given marks for the appropriate use of sensors and sensor data. You should be implementing:

  1. 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.
  2. 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.
  3. 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.

Media

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:

  1. Providing the user with the choice of uploading photos, video clips or audio clips.
  2. Giving users the option to directly capture images, audio and video clips using the built-in camera and/or microphone if available.

Data

There are lots of online RESTful APIs you can make use of when developing this system. You should consider:

  1. The Google Books API
  2. LocationIQ