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

Pledge

This app should allow users to ask for help with problems they are facing and other users to pledge support in different ways.


Testing

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
  4. admin (only needed if attempting feature 4).

Each of these users should have added one cause each and pledged money to one of causes added by one of the other users.


Feature 1

The home screen should be visible to users even if not logged in. If a user is logged in there should be a New cause button or link on the home screen to a screen where users can add new causes, this should include:

  1. The name of the cause.
  2. A detailed, multi-line description of the cause and why others should support it, this should allow markdown formatting.
  3. A slider which allows the user to specify how much money needs to be raised (in £ GBP) between £100 and £10,000.
  4. A high resolution photo to support the cause uploaded from the user's computer.
  5. The deadline for funding chosen using a date picker.

In addition to the data the user enters in the form, the following should be stored in the database (the user should not be required to enter this):

  1. The username of the person setting up the cause.
  2. The date and time when the cause was first created.

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 Homepage should list all the good causes that have been registered. Each cause should show:

  1. The name of the cause,
  2. A thumbnail photo.
  3. The funding target (in £ GBP).
  4. How much has been pledged (in £ GBP).
  5. The deadline for funding (formatted as DD/MM/YYYY).

Feature 3

There should be a Details link or button for each cause on the homepage. If a user clicks this they should be taken to a page that details the cause, this should display:

  1. The name of the cause.
  2. The description with any markdown formatting replaced with html.
  3. How much money needs to be raised (in £ GBP).
  4. A high resolution photo to support the cause uploaded from the user's computer.
  5. The deadline for funding.
  6. The username of the person who set it up.
  7. The date the cause was first created (but not the time).

Feature 4

If a user selects a cause that they did not create they should see the following at the end of the details screen:

  1. A slider where they can choose how much to pledge (max £500).
  2. Space for a multiline message of support (should allow for markdown formatting.

When this data is added to the database it should also record:

  1. The id of the pledge it was for.
  2. The username of the person pledging this amount.
  3. The date and time the pledge was made.

The pledge details screen should now include the following:

  1. The total amount asked for.
  2. How much is remaining.
  3. The usernames and amounts of those who have pledged.
  4. The messages of support.

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 user is prompted for a photo they should be provided access to the device camera (if available).
  2. When a cause is added it should capture the device geo-location (if available).
  3. The homescreen should list the causes based on the distance from the person viewing the page.

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