Skip to content

Conversation

@angethuy
Copy link

@angethuy angethuy 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?
Nikki Creating the functional to filter by multiple categories/merchants.
Suely I was mainly in charge of the Order and OrderItem models/controller. I am proud of all the tests I wrote for them.
Haben I was responsible for making the Review model and controller along with the tests. I’m proud of the way the Reviews show based on the average rating along with the stars.
Angela I was responsible for the merchant dashboard landing. I'm proud of my experiments with Bootstrap's responsive grid layouts.
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on?
Nikki Product model logic for selecting categories and merchants. Each one had to be accessed in different ways and I’m not sure why? EX: category.product.where vs Product.where

Suely I would like target feedback for the tests I wrote for Order Model, Order Controller, OrderItem model and OrderItem controller.
Haben I implemented OAuth & Reviews and wrote tests for Oauth and Reviews. I'd like feedback on whether my test cases covered enough of the ordinal and nominal cases.
Angela I wrote the filters require_login and require_ownership to protect controller actions that needed authentication and authorization. The code feels really repetitive. I'd like feedback on how I could DRY up authentication and authorization in controllers.
How did your team break up the work to be done? At first we split into smaller pairs: Nikki and Suely handled setup for guest browsing and shopping, Haben and Angela setup the merchant functions. However as the project progressed, we realized there were a lot of overlaps and collaboration requirements between all the models so every day during standup, we talked about which features we'd specifically work on. We also used Trello to track who was working on which parts.
How did your team utilize git to collaborate? We created different git branches and merged them into master when we felt happy with our code. We tried to push regularly. We also set up our Slack team channel to automatically notify us when someone pushed to master; this let us pull when needed and stay updated.
What did your group do to try to keep your code DRY while many people collaborated on it? If someone wrote code that they felt could be used in other tasks, they brought it up during stand up and explained what it did and how to use it.
What was a technical challenge that you faced as a group? Deploying to Heroku was a group party that took longer than expected!
What was a team/personal challenge that you faced as a group? We had all heard through the grapevine that Betsy was an extremely challenging and potentially stressful/difficult experience with regards to collaborating in a group. We all had similar feelings of worry and dread going into the project. However, we discovered that we have amazing capacity for really strong and positive teamwork so our fears were quickly resolved. We tried really hard to think of a team/personal challenge but with full honesty, we all enjoyed the project and have no non-technical challenges to report.
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/1nxyom8e72i_3hVQ-CY4V3fgB-VRvU8N2/view?usp=sharing
What is your Trello URL? https://trello.com/b/MZmt5uUV/agasalho
What is the Heroku URL of your deployed application? https://agasalho.herokuapp.com

SuelyBarreto and others added 30 commits June 15, 2020 07:56
@jmaddox19
Copy link

bEtsy

Functional Requirements: Manual Testing

Workflow yes / no
Deployed to Heroku ✔️
Before logging in
Browse all products, by category, by merchant ✔️ Yes! And with the ability to check multiple boxes! This was all totally above and beyond! I do want to name that it seems like the merchant filter is being ignored when the category filter is applied as well. When I filter by Joe and drinks, I see lots of drink sweaters. When I filter by Joe I see 4 items.
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) ✔️ The + and - for quantity is fun and unique :)
Verify unable to increase quantity beyond stock ✔️
Add another merchant's product ✔️
Check out ✔️
Check that stock was reduced I don't know what went wrong. When I checked out with my new product and a Tito's sweather, the Tito's sweater stock was reduced but my new product's stock was not. I checked out with all 10 and the stock still shows 10 after checkout.
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) True for cart but not for dashboard
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
✔️

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

Holy crappp! Great work y'all! Be so proud of what y'all did together! Y'all's code looks great and your tests are so thorough! Such a reliable application you've built!

You built this whole dang thing and you did it while working in a group for the first time. So much coordinating and delegating and communicating! All remotely! 👏👏👏

The sudden switch to the sweater theme was so much fun for me! It looks so good and on-theme! I don't know how y'all did that so fast.

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