Skip to content

Conversation

@kristyh32
Copy link

bEtsy

Congratulations! You're submitting your assignment! These comprehension questions should be answered by all members of your team, not by a single teammate.

Comprehension Questions

Question Answer
Each team member: what is one thing you were primarily responsible for that you're proud of? B- I am most proud of the merchant dashboard page. F - CAROUSEL, K - I am very proud of the order and order items back end, L - I am very proud of styling of the main page and troubleshooting tests
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? B- products controller/tests, F- orderitems controller, K- orders, session[order_id], L- testing for users/categories
How did your team break up the work to be done? We started pairing on what we decided were larger features, and then we prioritized and split things as they came up based on who had availability.
How did your team utilize git to collaborate? We made a lot of branches for features and submitted a lot of pull requests for review by teammates.
What did your group do to try to keep your code DRY while many people collaborated on it? We tried not to touch a file until the previous person was completely done with it and we did pair programming when appropriate.
What was a technical challenge that you faced as a group? The cart and orderitems were particularly challenging to set up and took a lot of group discussion to finalize
What was a team/personal challenge that you faced as a group? Having realistic expectations of ourselves/our knowledge and each other.
What was your application's ERD? (include a link) https://www.flickr.com/photos/185143762@N04/shares/3sVg9B
What is your Trello URL? https://trello.com/b/hCRnIUDm/billie
What is the Heroku URL of your deployed application? http://billsie.herokuapp.com/

in-formation and others added 30 commits October 23, 2019 17:55
…ests for categories, reviews, and order items still pending
created homepages#index view page and wrote one controller test
Products controller action and tests
Users show and index pages
Added validations to Category model and validation tests
@tildeee
Copy link

tildeee commented Nov 8, 2019

bEtsy

What We're Looking For

Manual testing

Workflow yes / no
Deployed to Heroku yes
Before logging in
Browse all products, by category, by merchant yes
Leave a review yes
Verify unable to create a new product yes
After logging in logging in didn't seem like it worked on heroku
Create a category no
Create a product in that category with stock 10 yes
Add the product you created to your cart yes
Add it again (should update quantity) yes
Verify unable to increase quantity beyond stock no
Add another merchant's product yes
Check out yes
Check that stock was reduced yes, there are some bugs (stock seems to go down the wrong amount)
Change order-item's status on dashboard yes
Verify unable to leave a review for your own product yes
Verify unable to edit another merchant's product by manually editing URL yes
Verify unable to see another merchant's dashboard by manually editing URL yes

Code Review

Area yes / no
Routes
No un-needed routes generated (check reviews) Probably no need for some routes, like editing/updating/deleting reviews or editing categories, etc
Routes not overly-nested (check products and merchants) yes
Merchant dashboard and cart page use a non-parameterized routes (should pull merchant or cart ID from session) yes
Controllers
Controller-filter to require login by default yes
Helper methods or filters to find logged-in user, cart, product, etc yes
No excessive business logic yes
Business logic that ought to live in the model
Add / remove / update product on order yes
Checkout -> decrease inventory yes
Merchant's total revenue yes
Find all orders for this merchant (instance method on Merchant) yes
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
Only has basic functionality increase_qty in OrderItem model and nominal test, the rest of this functionality is in the OrderItemsController
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
This unit test doesn't test extensively
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)
Just tests about valid and invalid form data for adding to cart, doesn't test if non-obvious parts of the form data were invalid (such as quantity too high)
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
doesn't test for logged-in status (if logged in as this product's merchant)

Overall Feedback

Great work overall! You've built a fully functional web store from top to bottom. This represents a huge amount of work, and you should be proud of yourselves!

I am particularly impressed by the way that you all stuck to best practices. I see really good things, like a lot of helper methods, controller filters, thoughtful names, etc, so great work. Also, relatively, I'd say that the code in your controllers looks clean, well-structured, and readable, so great work with that since it represents a lot of complex logic. All of the sections of code were tested the nominal case, so I'm very happy about that, too!

The biggest area of improvement was thinking about the edge cases and thoroughness of the test coverage. My hope is that your team will read the above rubric and be inspired; those are the level of detail of tests that you'll expect to write in industry, which is exciting! I hope that the expected level of detail of tests for industry sticks in your brain and you all get a chance to think about it in the future.

bEtsy is a huge project on a very short timeline, and this feedback should not at all diminish the magnitude of what you've accomplished. Keep up the hard work!

Only the person who submitted the PR will get an email about this feedback. Please let the rest of your team know about it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants