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

Sockets - HaCKSy Team: Hana, Chantal, Kirsten, Shubha #60

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

Conversation

hanalways
Copy link

@hanalways hanalways commented May 9, 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? Kirsten: We all worked together on the logic of the checkout process, but I was primarily responsible for coding the shopping cart processes, and it was really rewarding to get that working. Hana: We all worked on aspects of the dashboard, but I was primarily responsible for all aspects of the Merchant and understanding the relationship between Github and our application. Shubha: I implemented reviews, both on the front end, and in the database. I'm particularly proud of the CSS for our duckie rating scale.Chantal: I was responsible for the products section, i felt proud to see all pieces of the products come together on the final product.
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? Hana: I would love to get feedback on my tests that were implemented on merchant dashboard, specifically the fulfilled/unfulfilled orders. Also the logic in the controller for fulfilled/unfulfilled product orders. Shubha: I would like feedback on the authorization/authentication tests and the tests we wrote that involved session. Kirsten: I would like feedback on the shopping cart checkout action and tests. Chantal: I would like feedback on the bootstrap and css.
How did your team break up the work to be done? At the beginning we split it up by controller/class, with Shubha and Chantal working on product (the biggest class), Hana on merchant, and Kirsten on orders. From there we split up primarily into front end (Shubha and Chantal) and back end (Kirsten and Hana) with a lot of bleeding between the two. We all came together at the end to fill in any gaps with coverage, views, and general bugs.
How did your team utilize git to collaborate? By communicating our git standards and hygiene up first, we ended up preventing quite a few merge conflicts. At the beginning we all agreed to create a Product branch, and then branched off to create Merchant, Orders, and eventually OrderProducts and Categories. We pushed and pulled until all models and controllers were generated onto Products, before merging everything into Master. From there we would branch from Master with additional features and merge it once they were completed.
What did your group do to try to keep your code DRY while many people collaborated on it? Each of us were responsible for DRYing up our own code, and then at the very end we used our test coverage to double check that there was no repetitive or unnecessary code.
What was a technical challenge that you faced as a group? Because we had delegated our tasks initially through splitting up the controller/classes, we felt a little in the weeds on how it would all come together harmoniously. We all felt a little unsure on what everyone else's code looked like in relation to our own. To address this, we held a "routes meeting", where we looked over the project requirements and determined which routes were necessary (and thus which could be excluded), and used those to orient us as a group.
What was a team/personal challenge that you faced as a group? We couldn't decide which snacks to buy during our QA meeting. We all felt like we weren't doing enough individually and were individually impacted by imposter syndrome. However, we were all very good at validating each other and making sure each team member knew how important their contributions were.
What was your application's ERD? (include a link) https://i.imgur.com/K6yn7YY.jpg
What is your Trello URL? https://trello.com/b/2Gep6TMT/betsy-team-hacks
What is the Heroku URL of your deployed application? http://hacksy.herokuapp.com

@dHelmgren
Copy link

bEtsy

What We're Looking For

Manual testing

--- | ---
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 | Login was not working.
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 | yes
Verify unable to see another merchant's dashboard by manually editing URL | yes

Code Review

--- | ---
Routes |
No un-needed routes generated (check reviews) | yes
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 | no
Helper methods or filters to find logged-in user, cart, product, etc | yes
No excessive business logic | no, you do a lot of the checkout logic in the order controller
Business logic that ought to live in the model |
Add / remove / update product on order | no
Checkout -> decrease inventory | no
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 | missing some/present in controller instead
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 | some missing
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) | missing 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 | missing some

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 organized your routes and gave the site good navigational tools. I also appreciated you good messaging when something went wrong. Great work making sure I couldn't mess up someone else's site/cart.

I do see some room for improvement around keeping business logic out of controllers. Particularly, a lot of work for your Orders and carts makes more sense to do as model logic. Take a look over the list of tests above, as there are quite a few. It's tough to get all of them. Finally, make sure you spot check your site early, as I had trouble logging in!

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