Skip to content

Conversation

@RebeccaRoach
Copy link

Assignment Submission: bEtsy

Congratulations! You're submitting your assignment. Please reflect on the assignment with these questions. These should be answered by all members of your team, not by a single teammate.

Reflection

Prompt Response
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? Becca - Merchant model methods
Denisse - Keeping us going and order methods
Diana - Styling and data design of products
Lola - Merchants controller, Github login to pass
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? Becca: orderitem controller/ tests
Denisse: overall database design
Diana: model and custom route methods for retire a product and marking as shipped
Lola: merchants controller/ tests
How did your team break up the work to be done? As a team we seeded the DB and made our ERD board; then we each chose a model and their respective controllers to each work on. On the Monday board, we added tasks by waves and worked on them by priority. After designing our wire frame, we started focusing our efforts especially with products and orderitems before moving onto more advanced logic with orders/merchant fulfillment. Throughout the project, we used Monday and standup checkins as guidance on who needs to collaborate with whom or if we needed to have a collaboration session with all of us.
How did your team utilize git to collaborate? The team used git branches for each major feature. During stand-up each morning, we did code review so that we were able to present our code, then merged with the master.
What did your group do to try to keep your code DRY while many people collaborated on it? For code, we dried up controller actions using before_action filters to find orders from params or session, as well as work together while merging. For process, we avoided overlap by communicating to each other about what part we were doing that day, utilizing the Monday board, and we collaborated writing code using VSCode LiveShare, Slack, and Zoom calls.
What was a technical challenge that you faced as a group? Getting the cart, orderitems, and orders to work together when an order was made. We collaborated and worked through it and got tests to pass.
What was a team/personal challenge that you faced as a group? The strained timeline in which to complete the project made it harder to know when we’d be able to achieve a good momentum as our various branches developed. If we were able to have an extended timeline to pace out our work, we would have tried to take a more methodical approach during standard working hours, though in the end, we accomplished more than we expected and are grateful for the learning opportunity.
What was your application's ERD? (upload this to Google Drive, change the share settings to viewable by everyone with a link, and include a link) https://drive.google.com/file/d/1PX2-j-aKh2ElkVYfBOQDJP3Z4NfGKq7Z/view?usp=sharing
What is your Trello URL? https://gretchen-granola-girls.monday.com/boards/599780324/
What is the Heroku URL of your deployed application? https://outdoorsy-app.herokuapp.com/

ubeninja77 and others added 30 commits June 15, 2020 14:24
…roller set_current_order method, added view changes.
@RebeccaRoach RebeccaRoach changed the title Becca, Denisse, Diana, Lola Becca, Denisse, Diana, Lola - Gretchen's Granola Girls - Outdoorsy Jun 19, 2020
@tildeee
Copy link

tildeee commented Jun 30, 2020

bEtsy

Functional Requirements: Manual Testing

Workflow yes / no
Deployed to Heroku ✔️
Before logging in
Browse all products, by category, by merchant ✔️. Small bug: When viewing RebeccaRoach's shop, it says that there is 1 product, but no products are listed. It's possible that this merchant has a retired product? :)
Leave a review ✔️
Verify unable to create a new product ✔️
After logging in Logging in on the deployed site did not work; switched to grading this locally. However, even locally, logging in didn't work for me; you have a validation that username cannot be blank. My GitHub auth_hash does not have username, so I am unable to log into your site. :( I changed the Merchant validations to proceed with grading the rest of your project Note: Your .env file was not hidden by git! I have access to your keys.
Create a category Creating a category did not work for me; it said that there was already an existing category with ID 1. Your database was trying to create a new category from my form with the ID 1, and then found out that it already had a category with the ID 1. This is likely caused because you manually inserted the categories into your database seeds with a specific ID. Your database doesn't work very well with that; in the future, you should ideally not be setting primary keys through database seeds, so your database can automatically assign them.
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 ✔️

Major Learning Goals/Code Review

Criteria yes / no
90% reported coverage for all controller and model classes using SimpleCov 73.85%
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) Cart uses a parameterized route
Controllers
Controller-filter to require login by default ✔️
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 All of the logic of editing the shopping cart is inside of the OrderItemsController. It seems like not a lot of logic, but consider refactoring this into a model method-- you'll be surprised at how much cleaner it can get if you refactor this.
Checkout -> decrease inventory ✔️ Well done!
Merchant's total revenue ✔️, I would encourage refactoring the model methods on Merchant to use Enumerable methods like map, reduce, sum, etc.
Find all orders for this merchant (instance method on Merchant) ✔️, I would encourage refactoring the model methods on Merchant to use Enumerable methods like map, reduce, sum, etc.
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
Missing cases like if logged in as merchant

Code Style Bonus Awards

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

Overall Feedback

Great work on this project, Granola Girls!!!

Overall, you all did an amazing job on this project. The app works extremely well and looks very professional. Overall, the logic in the code looks amazing! Your tests are consistent and cover all of the main nominal cases.

There were a number of bugs that I encountered-- I tried to document them above. Also, there are a couple of places that I would recommend refactoring, such as some of the model methods. A lot of these refactorings are optional but interesting, so let me know if you have questions!!!

To me, it's clear that some of these bugs would have been fixed if there had been more testing (manual testing or automated unit testing). Also, it's clear that some of these bugs would have been fixed if you all more time!

That being said, overall, y'alls project hits all the high notes for me. I think overall you all had a code style that was pretty terse, logical, and readable; all of your code was very easy to digest for me! :) Similarly, you all made really good decisions on routes and user flows; I think that the Merchant userflow is brilliant (the merchant page, going to the order fulfillment page, etc.

Last but not least... Y'ALL. <3 <3 <3 GRETCHEN FEELS THE LOOOOOOOOOOVE. <3 <3 <3 <3
ALSO!!!! Y'ALL MADE TWITTER AND IG ACCOUNTS!!!!!!! OMGGGGGG I'm dying laughing THANK YOU FOR THIS BLESSING

Seriously well done y'all!

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