-
Notifications
You must be signed in to change notification settings - Fork 0
/
planning.txt
56 lines (37 loc) · 3.29 KB
/
planning.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
Assignment:
You're in the running for a freelance development job, as the developer for Mario's Speciality Food Products (or another fictional company of your choosing, if you'd prefer). He's asked you for an MVP and wants it by 5:00 tonight.
In particular, Mario is concerned about the information in his database being correct; your goal for today is to have the most comprehensive validations and callbacks to ensure information is properly saved and formatted in the database.
Database
The site should have functionality to review products so your database should include a one-to-many relationship between Products and Reviews. All products must have a name, cost and country of origin. All reviews should have author, content_body and rating. (A rating can be a number between 1 and 5.) You can include other fields of your choosing as well.
Landing Page
The landing page should include basic information about the company and should allow users to easily navigate to other areas of the site. This page should also include the three most recently added products and the product with the most reviews. See more information in the Scopes section below.
Products
The site needs to include a products section with a list of the tasty products that Mario sells. Each product should be clickable with a detail view.
Site admins should be able to add, update and delete new products. (Don't worry about user authentication; assume everyone who visits the site is an admin for now).
Users should be able to click an individual product to see its detail page. (You will not be expected to show the product's average rating; that's included in the further exploration section.)
Users should be able to add a review to a product.
Scopes
Your site should use scopes to display the following information on the site:
*The product with the most reviews.
*The three most recently added products.
*All products made in the USA for buyers that want to buy local products.
Validations
Your site should include validations for the following:
*All fields should be filled out, including rating.
*Rating can only be an integer between 1 and 5.
*The review's content_body must be between 50 and 250 characters.
Seeding
Your project should include seed data for 50 products and 250 reviews. Use Faker with a loop to seed the database.
Overall Styling
It should look presentable.
Further Exploration
If you're able to complete the primary objectives with time to spare, consider adding additional features, such as:
*Paginate products so a page of results will only show ten products at a time.
*Allow users to group products by a country of origin of their choice.
*Add a 'featured' boolean so admins can choose which products they'd like to feature.
*Show the average rating for each product.
*Add a scope to retrieve the products with the highest average rating.
*Change the ratings system so stars (or another icon) are used instead of a number.
*Add Images throughout the site, including images for Products. You can use URLs (easiest) or use the Paperclip gem (which we'll be covering next week).
*Jump ahead to next week and add user authentication to your site.
*Choose a site online with a style you like, build a style for this site based on it, and include a link to that site within the README.md file.