Skip to content

Conversation

@codesrobertson
Copy link

@codesrobertson codesrobertson commented Jun 19, 2020

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're proud of? Alex: I was in charge of making the merchant dashboard with functionality to edit, create, and update products, as well as order fulfillment. Alicia: I did about half of the products controller and all of the reviews controller, as well as some css for most of my views.Cathy: I was in charge of setting up OAuth, orders fulfillment dashboard to filter orders, and model methods and tests.Yieni: The cart/ checkout functionality and all model methods, controllers, views, and tests associated with those actions.

Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? | Alex: The products show view, please. Alicia: My tests! I’m not confident that I test enough/correctly.Cathy: My model methods and order filters(string query).Yieni: The use of sessions for cart and transaction to create orders and order-items

How did your team break up the work to be done? | We began our collaborative process by making an ERD, and going through the user stories and grading criteria. We split the user stories up into cards on our Trello board. We then set about doing the initial steps together, until we felt we were at a point we could break up into smaller task-forces/solo work.

How did your team utilize git to collaborate? | We had branches for different features, but also did coordinated push-pulls while on video chats.
What did your group do to try to keep your code DRY while many people collaborated on it? | Deleted unnecessary comments and TODOs, monitored each other’s work for duplicate code, add partials for views, use model method

What was a technical challenge that you faced as a group? | Merge conflicts!!!

What was a team/personal challenge that you faced as a group? | Merge conflicts!!!

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://tinyurl.com/y72otllo
What is your Trello URL? | https://trello.com/b/mEvRMTgc
What is the Heroku URL of your deployed application? | https://cartmageddon.herokuapp.com/

aecombs and others added 30 commits June 15, 2020 20:17
View my merchant dashboard page showing my order fulfillment
Add orders#show MVC: a merchant can view an individual order. Resolve merge conflicts.
@dHelmgren
Copy link

bEtsy

Functional Requirements: Manual Testing

Workflow yes / no
Deployed to Heroku ✔️
Before logging in
Browse all products, by category, by merchant ✔️
Leave a review ✔️
Verify unable to create a new product ✔️
After logging in
Create a category ✔️
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 ✔️
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) ✔️
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 ✔️
Checkout -> decrease inventory ✔️
Merchant's total revenue ✔️
Find all orders for this merchant (instance method on Merchant) ✔️
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
✔️

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 made this project feel like a very complete product! Visually this project is just so dang sharp! I also appreciate how well your code is organized. It's easy to find tests by the way you chose to group them together!

I do see some room for improvement around UX design! There are a number of places where you leave buttons in an "active" state after they have been clicked by a user! Our job as programmers is more than just making sure the code works, but it's also about anticipating the needs of our users and our non-programmer team mates. :)

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