This week's project is a clone of Yelp. The goal is to introduce you to Rails, focusing especially on:
- Creating Rails applications
- The structure of Rails apps (MVC, the router, helpers)
- TDD in Rails, with RSpec & Capybara
- Associations
- Validations
- AJAX in Rails
- Clone the repository
- Run
rspec
to see the tests and test coverage - Run
bin/rails server
- Visit
http://localhost:3000
V1 Specification
- Visitors can create new restaurants using a form, specifying a name and description
As a restaurateur
So I can tell prospective customers about my restaurant
I want to submit my restaurant's name and description to the list
- Restaurants can be edited and deleted
As a restaurateur
So I can keep potential customers informed
I need to be able to edit a restaurant listing
As a restaurateur
So I can keep potential customers informed
I need to be able to delete a restaurant listing
- Visitors can leave reviews for restaurants, providing a numerical score (1-5) and a comment about their experience
As a visitor
So I can rate a restaurant
I want to be able to leave a rating
As a visitor
So I talk about my experience
I want to be able to leave a comment
- The restaurants listings page should display all the reviews, along with the average rating of each restaurant
As a customer
So I can find a good restaurant
I need to be able to see a list of restaurants
As a customer
So I can compare restaurants
I need to be able to read the reviews of restaurants
As a customer
So I can compare restaurants quickly
I need to be able to see the average star rating for each restaurant
- Validations should be in place for the restaurant and review forms - restaurants must be given a name and rating, reviews must be given a rating from 1-5 (comment is optional)
As a restaurateur
So that my restaurants page is correct
I want to validate the information I have entered is correct before I submit
As a restaurateur
So that I know the reviews my customers give are useful
I want the review to be validated before it is submitted
- Chris Dunham
- Ed Lowther
- Oliver Pople
- Alex Scott-Tonge