An auction site where users can upload details of items they no longer want and bid for things they want. All the items for sale need to be stored in a database.
The core functionality consists of three screens:
- The home page should display all the items that other users want to sell. Each should have:
- The name of the item
- A thumbnail image
- A status (for sale, under offer, sold)
- The name and phone number of the seller
- There should be a link on this page to the user's selling page which should list all the items the logged-in user has for sale. This should include:
- The name of the item
- A thumbnail image
- The status (see above) with the option for the user to change the status.
- The option to delete items.
- There should be a link or button on this page to add new items to the list. This page should ask for:
- The item name
- A photo
- A detailed, multi-line, formatted description.
- When a user views the product details screen they can see multiple photos of the item in the auction.
- There should be a Contact the Seller link or button. Clicking on this takes the user to a form where they can ask a question about the item for sale.
- All questions get displayed on the product details page.
- The seller should receive an email containing the question and a link to the product details page where all the questions are shown.
- Any unanswered questions should have a multiline answer box where the seller can leave a detailed answer to the question.
- All answers should be displayed next to the appropriate question.
The advanced tasks require you to make changes to the functionality by implementing an online auction process.
- There should be no contact details shared with other users, instead you need to implement a bidding system:
- All auction have the same duration
- On the details page there should be a Place Bid link or button that takes the user to a screen where they are asked for the maximum bid they want to make
- If this is the only bid, this is the current bid but if there are multiple bids the current bid is 10p higher than the amount bid by the second highest bidder
- The current bid should be displayed on both the home and product details page
- Users should not need to log in to see the list of items but unless they do they won't be able to make any bids
- A user should receive an email if:
- They are outbid, this should include a summary of the problem and a link to the product page.
- They win an auction, the email should include a summary and a link to the payment page (you can create a fake payments screen for this purpose)
In some assignment briefs you are given marks for the appropriate use of media and using sensors built into the user's device.
Most connected, electronic devices come with a range of different sensors which should be used to implement the following features:
- When a user adds a new item to their list the current geo location should be stored alongside the rest of the data.
- When the user views items being sold by other users they should see the location of the item either on a map or as an address.
- They should be able to see the items for sale either as a list or on a map. Clicking on a map pin should show more information and take the user to the product details page.
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: