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

Branches - MEME Team Extreme/Bandits #98

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

Conversation

mdove92
Copy link

@mdove92 mdove92 commented Nov 2, 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? Macaria: I worked on initial Oauth, and that was really cool.
Michaela: I worked on a lot of the controller tests and the model business logic/testing, and I'm proud of all the bugs we caught with our tests!
Erika: I did a lot of Bootstrap/CSS work and I think that looks good, but pair programming the Product controller and tests was super cool because I don't feel as strong in that area.
Eve: I worked adding items to cart and placing order logic. The logic is still a little messy but it works the way we wanted it to and I'm happy about it.
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? Macaria: I still need helping drying up review Controller tests.
Michaela: We worked a lot on calling model methods in the controller before sending them to the view and I would like feedback on if we did that correctly.
Erika: What Michaela said. We called some methods in some places that I am suspicious was some spaghetti getting slapped around. Specifically, the subtotal method in the order item model being called in the view felt like we were sneaking around the correct way.
Eve: We came up with the design of adding item to cart - placing order that works but I'd like to hear feedback on it.
How did your team break up the work to be done? Trello and pair programming - We didn't split into individual tasks as much as we did pair programming or collaborated. We spent a lot of time designing together which helped us all understand the whole project.
How did your team utilize git to collaborate? We did a lot of good separation of work on branches Kaida also helped us with a setting to make sure we could never push to master without a pull request.
What did your group do to try to keep your code DRY while many people collaborated on it? Macaria implemented many model helper methods to keep our code DRY. We also used test fixtures for tests. We locked master branch (credit to Kaida) to prevent team from making changes directly on master, we created PR for each change, and review each other's code before merging into remote master
What was a technical challenge that you faced as a group? Flaky tests! Some of our tests randomly fail occasionally which was weird to get used to. Another technical challenge was learning about https vs http! It affected our product image validations as well as our final login using OAuth on Heroku.
What was a team/personal challenge that you faced as a group? We slipped on doing standups regularly the second week and that made it a bit harder to stay communicating and checked in as a group. The first week we were much better at communicating intentionally, and that was very helpful! In retrospect we would do more of that.
What was your application's ERD? (include a link) https://imgur.com/a/SUEenDQ
What is your Trello URL? https://trello.com/b/yCsMeB92/betsy
What is the Heroku URL of your deployed application? https://black-market-bandit.herokuapp.com/ OR bandit.dev Make sure that you use https when you go to the site or else OAuth won't work correctly!

tofuandeve and others added 30 commits October 22, 2019 14:48
Generated model and controller for Merchant class. Added Route resour…
Created merchant fixture file
Added nav bar to application view layout
Added homepages#index action and view
Created merchant show action, edited route, merchant show tests are passing
Current method added to merchant controller
mdove92 and others added 29 commits November 1, 2019 10:51
Validations and Relationships Testing
Created sub-total and total revenue for merchant dashboard
Added products#retire action, order_items#mark_shipped action, orders…
Added validation for CC length
Added route for product retire method and created tests
Created buyer_info page, adjusted settings for top-margins
Fixed minor display information on checkout view
Changed show and edit pages (formatting only)
@tildeee
Copy link

tildeee commented Nov 13, 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
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 yes
Verify unable to leave a review for your own product yes
Verify unable to edit another merchant's product by manually editing URL I can edit another merchant's product
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) yes
Routes not overly-nested (check products and merchants) yes; definitely at first glance looks like a lot, but I think the routes are well used. Take caution!
Merchant dashboard and cart page use a non-parameterized routes (should pull merchant or cart ID from session) dashboard does not, cart does
Controllers
Controller-filter to require login by default Uses merchant_nil?
Helper methods or filters to find logged-in user, cart, product, etc yes
No excessive business logic yes, you all did a great job on this overall, but the OrderItemsController has a lot of business logic in it
Business logic that ought to live in the model
Add / remove / update product on order no
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
Overall your model tests are thorough, I think that if you all had refactored OrderItemsController to shift to the model you would get this
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
yes
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)
yes!!
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
yes!

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!

In general, I think that this is a fantastic project submission.

You all specifically were incredible on:

  • Edge case testing
  • Making helper methods for both controllers and models that were valuable and useful
  • Having elegant controller, model, and test code style and overall elegant code style
  • Thorough user experience
  • Teamwork, pairing, and cohesion

The biggest piece of improvement on the code at this moment would be:

  • Refactoring the OrderItemsController
  • Refactoring the front page because I spent 3 minutes trying to click on the images that wouldn't go anywhere XD

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