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

ports - Elle, Cloudy, Sav, Margaret #67

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

Conversation

qqdipps
Copy link

@qqdipps qqdipps commented May 10, 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? Margaret: products controller and the merchant dashboard view. Cloudy: Awesome model tests, climbing Mt Everest would be easier! Elle: I was responsible for implementing OAuth and for styling the Products Index and Show pages. Sav: Super excited about cart logic and custom models for dashboard.
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? Margaret: Product controller tests, Cloudy: Relationships for model testing. Elle: I would like feedback on OAuth testing, including the custom method model test (self.build_from_github). Sav: Cart logic and testing Tests:
How did your team break up the work to be done? trello... We started by making a complete ERD. Tasks were arranged by priority and folks could choose what they wanted to work on. Super flexible.
How did your team utilize git to collaborate? We made it so we had to use a PR to merge to working branch. We took turns reviewing PRs which helped us have a better understanding of the project as a whole and helped reduced bugs.
What did your group do to try to keep your code DRY while many people collaborated on it? Looking at PRs, listening during standups and standdowns, using trello diligently, and marking the cards we were working on. We did a final walk through of the controllers and DRY'ed up code with controller filters.
What was a technical challenge that you faced as a group? Pictures, Heroku (initial deployment), Money(MVC), Design for ERD, General CSS
What was a team/personal challenge that you faced as a group? Having interview week during Betsy. The consensus for overall design (we came to an understanding but used words that were interpreted differently so we reconvened to reevaluate and consolidate ideas.)
What was your application's ERD? (include a link) https://docs.google.com/document/d/1ZxTxnbwQ7cIvWmy0frY3nZE_IIrgnMW315HggSOzG1s/edit?usp=sharing
What is your Trello URL? https://trello.com/b/A38BQTVC/intangibelles
What is the Heroku URL of your deployed application? https://intangibly-mesc.herokuapp.com/

qqdipps and others added 30 commits May 6, 2019 00:21
…lo/betsy into submaster

checking out Margaret's new features for pull request
…ibly' on home page view and updated products route to destroy instead of delete.
qqdipps and others added 28 commits May 10, 2019 12:02
Merchant- and Category-Specific pages styled
added pink hover to categories and merchants
@CheezItMan
Copy link

bEtsy

What We're Looking For

Manual testing

Workflow yes / no
Deployed to Heroku
Before logging in
Browse all products, by category, by merchant Yes
Leave a review Yes
Verify unable to create a new product OOPS, as an guest user I can create a product
After logging in Login works!
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, well done!
Verify unable to increase quantity beyond stock Yes, well done
Add another merchant's product Yes
Check out Yes
Check that stock was reduced Yes
Change order-item's status on dashboard Yes, but no way to cancel order
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 get to the edit screen, but not submit. Good'nuff
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) Mostly
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 Yes, not require_login, but find_merchant, instead. You should have a filter that requires login to see some actions.
Helper methods or filters to find logged-in user, cart, product, etc Yes
No excessive business logic Yes
Business logic that ought to live in the model
Add / remove / update product on order Yes
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
Yes
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)
No test to make sure the Order is in the correct state.
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
Check

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 styled it, I like the responsive menu. You also did a great job of catching details. This is by far the most through and complete project I've graded this cohort. You should be proud.

I do see some room for improvement around some small edge cases in testing like ensuring a product is pending before allowing an item to be updated or added to it. You can also have used more controller filters in a few places. Really there's not much to find fault 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.


resources :products, except: [:destroy] do
resources :reviews, only: [:create]
resources :items, only: [:create, :update]

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You probably don't need to nest update.

<h1>Intangibly</h1>
<p id="tagline" class= "magic roll-in-blurred-left "><%= image_tag "intangible.png", alt: "logo", class: "img" %>find your magic</p>
<% if session[:merchant_id] %>
<% merchant = Merchant.find_by(id: session[:merchant_id]) %>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The find_by here should be done in the controller.

</a>
</div>
<% if session[:merchant_id] %>
<% merchant = Merchant.find_by(id: session[:merchant_id]) %>

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The find_by here should be done in the controller. No business logic in the view.

before_action :find_cart_order, only: [:create]

def create
# find product and order

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There's a lot of business logic in this method. I feel that this should be a model method.

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