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
# Gallery
Build a website for up and coming artists/photographers to advertise their products.
---
## Testing
The system should include at least five items for sale from each of the artist accounts listed below.
You are required to create the following accounts to allow the system to be tested. All accounts should have the password `p455w0rd`:
1. `artist1`
2. `artist2`
3. `buyer1`
4. `buyer2`
---
## Feature 1
The homepage should be visible whether logged in or not. If a user is logged in they should see a **Selling** link or button which takes then to a _New item_ page where they can add items to sell. This page should ask for:
1. The item name.
2. A photo.
3. A detailed, multi-line description that supports _markdown_ formatting.
4. A slider allowing them to set the asking price (max £250).
In addition to this information the database should also store the following without requiring the user to input it:
1. The username of the person adding the item.
2. The date and time the item was added.
3. The status which should be set to _for sale_.
> 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.
## Feature 2
The home page should display **all** the items that are for sale want to sell arranged with the most recently added at the top. Each should have:
1. The name of the item
2. A thumbnail image
3. The price the seller is asking for
## Feature 3
If a user is logged in, there should be a link on the home page that takes the user to a _Details_ page which displays all the details on the specified item. This should include:
1. The name of the item.
2. The photo.
3. The asking price.
4. The username of the user selling the item.
5. The date (but not the time) the item was added.
## Feature 4
This feature requires you to make changes to the functionality:
1. When a user creates their account it should ask for their phone number and email address.
2. If a user views the details page for an item that is _not their own_ they should see a slider where they can enter their offer. The max value of the slider should be the original asking price. After selecting their offer price they can submit the offer.
3. A logged in user should see the current offers on their home page. Clicking an offer takes them to the iten details page with the offer described at the bottom of the page. There should be an **Accept offer** button. Clicking this:
1. displays the email and phone number of the person making the offer.
2. Sets the item status to **under offer**.
3. reveals a **Sold** button that changes the status of the item to sold.
4. Any items under offer should have this information displayed against the item on the homepage.
5. Any items flagged as sold should not be displayed on the homepage but should not be deleted from the database.
----
## 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 adding a new item to the gallery, the user should be given the option to capture the image using the device camera (if available).
2. When the buyer's details are displayed, this should include their location (country and region only).
3. When the buyer makes a purchase, the delivery address fields should be pre-filled with information from their current location, with the buyer able to change this. The changed details should be stored and then used to pre-fill the form in future.
### 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. [LocationIQ](https://locationiq.com)