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

Local News

Build a local news site where users can log in, post and read about local news and events:

Stage 1

The core functionality consists of three screens:

  1. A home page that displays summaries of all the news articles, each should include:
    1. The title
    2. A thumbnail photo
    3. The date added (with the most recent at the top)
  2. There should be an add news link or button on the homepage that takes the user to a page where they can add more news, this should include:
    1. The title
    2. A photo
    3. A detailed, multi-line, formatted news article.
  3. If a user clicks on a photo or title on the home page they should be taken to a news item page where they will be able to read the article in full, including:
    1. The title
    2. The full-sized photo
    3. The name of the author
    4. The date added
    5. The multi-paragraph, formatted news article

Stage 2

The intermediate tasks require you to make changes to the functionality:

  1. All new articles should be marked as pending and hidden from the public's view until an admin person logs in, checks the content and flags it as released.
  2. Users can edit existing articles but this will reflag them as pending.
  3. When the article is released, the person who posted the article should receive an email telling them the article is live, including the article title and with a link to the details page.
  4. The user should be prompted if they try to add or edit an article with missing fields.

Stage 3

  1. Users can provide feedback on articles:
    1. Users who view an article are given the option to rate it on a scale of 1-5 stars.
    2. They can also supply a formatted, multiline feedback comment.
  2. To encourage people to get involved you will implement some gamification by awarding points for positive behaviours:
    1. Users who post an article get 10 points per article rising to 25 points when the article gets approved by admin.
    2. They get the star rating for each piece of feedback added as points.
    3. The home screen should display the top 10 users with the highest scores.
  3. users can subscribe to a daily news digest which gets sent out each morning and contains the following information for all news articles approved over the last 24 hours:
    1. The title, summary and date/time.
    2. A link to the online article summary page.

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 news article is added it should be provided with a geo-location based on the location of the person adding the article.
  2. When the user views an article it should show the location.
  3. When the user is prompted to upload a photo they should be given the option of using the device camera (if available).
  4. The home screen should display a map showing the locations of each news item:
    1. Clicking on a pin should show a summary bubble showing the brief title and the person who wrote it.
    2. Clicking on this should send the viewer to the news item 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. News API
  2. LocationIQ