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
# Gift List Service
It is customary for events such as weddings for those tying the knot to make a list of the gifts they would like. Guests can then pick from the list to make sure they are buying something that is useful. All the gift list data and selections should be stored in a database.
---
## Testing
The system should include the data for at least 5 valid events and each event should already have two items pledged from from valid user accounts (see below).
You are required to create the following accounts to allow the system to be tested. All accounts should have the password `p455w0rd`:
1. `user1`
2. `user2`
3. `user3`
---
## Feature 1
The homepage should be visible whether the user is logged in or not. If a `user` is logged in there should be an **Add event** button or link on the homepage to allow them to create a new event. The following information should be requested:
1. The event title
2. A full-size image to represent the event, uploaded from their computer.
3. The date and time when the event is taking place selected from a date/time picker.
4. A detailed, multi-line, formatted description of the event that supports _markdown_ formatting.
In addition to the data requested in the form you should also be storing the following information for each event (you should not need to ask the user for this):
1. The username of the person adding the event.
2. The date and time that the event was added.
> 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 screen should be viewable whether the `user` is logged in or not and should display a summary of all the event have been created, including:
1. A brief title
2. A thumbnail image
3. The date of the event (but not the time)
## Feature 3
Each event on the _Homepage_ should include a **Details** button or link that takes the user to a page where the event information is shown. This should display:
1. The event title
2. The image.
3. The date of the event (without the time)
4. The time the event starts (just the hour and whether am or pm.
4. The event description with any _markdown_ formatting converted into html.
## Feature 4
This feature requires you to make changes to the functionality:
1. The user adding the event should be able to list up to 5 items they are asking people to pledge.
2. If a user views an event they didn't add they should be able to see the items that have not already been pledged.
3. Each item to be pledged includes a **Pledge item** link or button. If a user clicks on this they are asked to confirm the pledge and if this is confirmed, their username is logged against the item and, instead of seeing the pledge list they see the item they have agreed to pledge.
4. If a use clicks on one of their own events they see a list of the usernames of people who have pledged items and what they have pledged. They also see which items have yet to be pledged.
----
## 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 asked to upload an image users should be given the option of using the camera integrated into their device (if available).
2. When a user pledges an item it should be flagged with the location (country and region) of the person when they make the pledge.
3. For each event there should be a map showing where the pledges are coming from. When a user clicks on a pin it should show a summary bubble the name of the person making the pledge along with the name of the item they are pledging. Clicking the bubble should take you to the details of the item pledged.
### 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. [Axesso](http://api-doc.axesso.de)
2. [LocationIQ](https://locationiq.com)