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 system should include the data for at least 5 items for sale for each registered seller
. These items should include realistic details including photos. 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
:
seller1
seller2
After logging in, the user should see a Sell new item link or button. This takes them to a screen where they can enter the details of an item they want to see. it should request the following pieces of information:
- The item name.
- A photo that will be uploaded.
- A multi-line description that supports markdown formatting.
The database should add the date and time the item was added as well as the username of the person adding it.
To demonstrate this feature and to prove that the form works correctly you will need to show that the data is being persisted correctly, either by running a database query or an API call depending on the platform and technology you are using.
If a user is logged in there should be a second button labelled My items. Clicking on this button should display all the items the user is selling. The following information should be displayed:
- The item name.
- A thumbnail photo.
- The date the item was added (but not the time).
The homepage should display a list of all the items for sale, showing the following information:
- The item name.
- A thumbnail photo.
- The date the item was added (but not the time).
- The username of the person selling the item.
- When a user creates a new account they should be prompted for a phone number and email address
- If a user is logged in there should be a More information link or button next to each item on the homepage. This should take them to a product details page that displays:
- The item name.
- The full-size photo.
- The complete multi-line description.
- The date added.
- The seller's phone number.
- The seller's email address.
- If a user accesses their My items screen there should be a Sold link or button that flags the item as being sold. If this is clicked, the item should not be displayed on the home screen but should still appear in the My Items screen but be clearly labelled as sold and should no longer show the Sold button or link.
This feature requires 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: