Workflow | yes / no |
---|---|
Deployed to Heroku | ✔️? |
Before logging in | |
Browse all products, by category, by merchant | ✔️? |
Leave a review | ✔️? |
Verify unable to create a new product | ✔️? |
After logging in | |
Create a category | ✔️? |
Create a product in that category with stock 10 | ✔️? |
Add the product you created to your cart | ✔️? |
Add it again (should update quantity) | ✔️? |
Verify unable to increase quantity beyond stock | ✔️? |
Add another merchant's product | ✔️? |
Check out | ✔️? |
Check that stock was reduced | ✔️? |
Change order-item's status on dashboard | ✔️? |
Verify unable to leave a review for your own product | ✔️? |
Verify unable to edit another merchant's product by manually editing URL | ✔️? |
Verify unable to see another merchant's dashboard by manually editing URL | ✔️? |
Criteria | yes / no |
---|---|
90% reported coverage for all controller and model classes using SimpleCov | ✔️? |
Routes | |
No un-needed routes generated (check reviews ) |
✔️? |
Routes not overly-nested (check products and merchants) | ✔️? |
Merchant dashboard and cart page use a non-parameterized routes (should pull merchant or cart ID from session) | ✔️? |
Controllers | |
Controller-filter to require login is applied to all merchant-specific actions (update/add item, add category, view merchant dashboard, etc.) - filter method is not duplicated across multiple files | ✔️? |
Helper methods or filters to find logged-in user, cart, product, etc | ✔️? |
No excessive business logic | ✔️? |
Business logic that ought to live in the model | |
Add / remove / update product on order | ✔️? |
Checkout -> decrease inventory | ✔️? |
Merchant's total revenue | ✔️? |
Find all orders for this merchant (instance method on Merchant ) |
✔️? |
Selected Model Tests | |
Add item to cart: - Can add a good product - Can't add a product w/o enough stock - Can't add a retired product - Can't add to an order that's not in cart mode - Logic specific to this implementation |
✔️? |
Get orders for this merchant: - Includes all orders from this merchant - Doesn't include orders from another merchant - Orders are not included more than once - Does something reasonable when there are no orders for this merchant |
✔️? |
Selected Controller Tests | |
Add item to cart: - Empty cart (should be created) - Cart already exists (should add to same order) - Product already in cart (should update quantity) - Bad product ID, product is retired, quantity too high, or something like that (error) |
✔️? |
Leave a review: - Works when not logged in - Works when logged in as someone other than the product's merchant - Doesn't work if logged in as this product's merchant - Doesn't work if validations fail |
✔️? |
Was the code particularly impressive in code style for any of these reasons (or more...?)
Quality | Yes? |
---|---|
Perfect Indentation | ✅ |
Elegant/Clever | ✅ |
Descriptive/Readable | ✅ |
Concise | ✅ |
Logical/Organized | ✅ |