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

Restaurant Reviews

Build a website which allows customers to review local restaurants. All restaurant details and reviews must be stored in a database.


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 required if attempting the stage 2 functionality).

There should be at least 6 restaurants on the system and each user should have placed at least four reviews. Every restaurant should have at least 2 reviews.


Stage 1

The core functionality consists of three screens that allow users to add reviews of restaurants.

Part 1

The home screen should be visible even if a user is not logged in. It should display a grid of restaurants. The following should be displayed for each restaurant:

  1. The name of the restaurant.
  2. A thumbnail photo showing the outside.
  3. its address correctly formatted over multiple lines.

Part 2

If a user is logged in they should see a My Restaurant link or button. Clicking on this takes the user to a page where they can add or edit the details of their own restaurant. They should provide the following:

  1. The name of the restaurant.
  2. A large photo of the restaurant exterior uploaded from their computer.
  3. The address entered as a formatted multi-line block of text.
  4. The phone number.
  5. A valid restaurant email address.
  6. A formatted, multi-line description of the venue.

If they have already added this, clicking on the button should display the same form but pre-populated with the data they entered last time.

Part 3

If a user clicks on a restaurant on the home screen that is not owned by them they should see a Restaurant Details page that displays all the information entered by the owner from the previous step.

If the user is logged in, is not looking at their own restaurant and has not yet left a review they should see:

  1. A box where they can enter a formatted, multi-line review.
  2. An option to rate the restaurant on a scale of 1-5 stars (they should be able to pick this and not have to enter a number).

Stage 2

When a user adds their own restaurant they can still add and edit but its status should be set to in review and not visible to any other users.

When the admin user logs in they should see a list of any new restaurants that have been added but are still in review.

Clicking on one of these displays the restaurant details page (see part 3 above). There should be a button labelled Approve and clicking this sets the restaurant status to Approved and removes it from the list of restaurants waiting to be approved.


Stage 3

  1. In addition, the restaurants should be displayed in rating order with the best rated at the top.
  2. All reviews should be marked as pending until the site admin releases them.
  3. Pending reviews should not be publicly visible.
  4. The site should implement full-text searching.
  5. Logged in users can add comments to other people's reviews.
  6. Restaurants can be assigned to the owner's account who can update their own restaurant details (one owner might be assigned several restaurants).

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 restaurant, the address should be stored as a geo-location.
  2. 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 retaurant name and the thumbnail image.
    2. Clicking on this should send the viewer to the retaurant details page.
  3. When prompted for a photo, the user should be given access to the device camera (if available).

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. Zomato
  2. LocationIQ