Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Planetsy: Kate, Nara, Niv, & Rosalyn #72

Open
wants to merge 170 commits into
base: master
Choose a base branch
from
Open

Conversation

bonara
Copy link

@bonara bonara commented May 10, 2019

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? Niv: I was proud of completing the leaving review feature (paired with Kate) and listing/retiring feature. Nara: I was responsible for github login and creating a merchant. I am proud of deploying to Heroku without any issues. Kate: I was proud of getting the confirmation page to work. Rosalyn: OrderItem and Order_controllers (paired with Nara).
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? Niv: I would like feedback on merchant model custom method tests. Nara: I would like a feedback on the model testing for products, orders and order items. Kate: I would like feedback on the review routes and review controller tests. Rosalyn: Feedback on Order and Order Item controller testing for creating Order/Order_Items.
How did your team break up the work to be done? We played rock paper scissors to divide up project features. We referred to the Trello board to break up tasks, used verbal communication, had frequent check-ins.
How did your team utilize git to collaborate? We used a combination of pull requests and merge. When we started together each morning, we would merge work and go from there.
What did your group do to try to keep your code DRY while many people collaborated on it? We began with breaking up features on the Trello board, and then checking in together around 4pm each day to confirm our work. Frequent check-ins and clear communication helped to keep code DRY while all of us were working on it. We also used controller helpers and fixtures to keep the code DRY.
What was a technical challenge that you faced as a group? We had an issue with github authorization that took a long time to debug. We realized it was because of the switch between using merchant and user in the initializer and that not everyone has a full name associated with their github account and used username instead.
What was a team/personal challenge that you faced as a group? We had a combination of health and computer issues, unrelated to the project. Niv is missing the last two days and we worked with accommodating everyone’s constraints.
What was your application's ERD? (include a link) Planetsy Application ERD
What is your Trello URL? https://trello.com/b/rHwFv5kp/betsy
What is the Heroku URL of your deployed application? https://planetsy.herokuapp.com/

@droberts-sea
Copy link

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
Create a category yes
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 yes
Add another merchant's product yes
Check out yes
Check that stock was reduced yes
Change order-item's status on dashboard I do not see a way to do this
Verify unable to edit another merchant's product I was able to do this by manually editing the URL
Verify unable to see another merchant's dashboard I was able to do this by manually editing the URL - you should probably take the parameter out of the route and pull this information from the session instead
Verify unable to leave a review for your own product yes

Code Review

Area yes / no
Routes
No un-needed routes generated (check reviews) there are maybe a couple extra, but in general this is very clean
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) no
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 OrdersController has some logic that might be extracted to models
Business logic that ought to live in the model
Add / remove / update product on order no - this mostly lives in the OrdersController
Checkout -> decrease inventory no
Merchant's total revenue yes
Find all orders for this merchant (instance method on Merchant) no - this lives in the view, which means it's hard to find, hard to reuse, and hard to test
Find all items from this order that are sold by this merchant (instance method on Order) no
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
N/A
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
N/A
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)
some
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
some

Overall Feedback

Great work overall! You've built a fully functional web store from top to bottom, everything short of payment processing. This represents a huge amount of work, and you should be proud of yourselves! There are definitely places where there's room for improvement, particularly around moving business logic to the model and testing it. However 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