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

SPELLBOUND Code Witches: Antonia, Kate, Olga, Lee #33

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

Conversation

peachmakkoli
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're proud of? Olga: I'm proud of the homepage styling, worked on categories, reviews, seeds from the beginning till end. Lee: I'm proud of the shopping cart! The logic was really tricky to nail down, but pseudocoding and talking it out with my teammates helped a lot. Kate: I'm proud of the merchant dashboard methods, styling. Antonia: I'm also proud of some of the styling I worked on, the format of the merchants index page I did was adopted in other areas, and I worked on the logging in features.
Each team member: what is one thing you were primarily responsible for that you would like targeted feedback on? Olga: categories, reviews, seeds. Lee: The Order controller actions, and the Products controller #add_to_cart action. Kate: merchant dashboard revenue methods, product creation. Antonia: We did a lot of our own testing, but that's an area I'm working to get stronger at. Since I did several order validations, I encountered several small changes I had to make in tests and controller methods as I was going along.
How did your team break up the work to be done? All work was split by features that turned to cards In Trello. We tried to find something that each team member is excited about. After a card was finished, another team member reviewed the code. We discussed how things worked as we went, particularly the more complex features, with the goal of sharing knowledge.
How did your team utilize git to collaborate? Each of us created a branch for a new card/feature following the pattern: wave_number-name-feature, e.g. 01-olga-categories. After a feature is ready to be merged, we created a PR, another team member reviewed code, approved or suggested changes. After that, a branch could be merged into master branch.
What did your group do to try to keep your code DRY while many people collaborated on it? We reviewed each other's code, used methods that we knew were created previously.
What was a technical challenge that you faced as a group? Filtering orders by status made us think and experiment a lot. We used a form_tag and created a custom method find_orders_by_status to implement this feature.
What was a team/personal challenge that you faced as a group? Working all day long, including nights, turned out to be a personal challenge for each of us.
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/100mpFsWNrCMHZ4_-yP4kk0VLau8Zg8JU/view?usp=sharing
What is your Trello URL? https://trello.com/b/4hG5bM7z/spellbound
What is the Heroku URL of your deployed application? https://spellboundshop.herokuapp.com/

peachmakkoli and others added 30 commits June 12, 2020 20:58
@peachmakkoli peachmakkoli changed the title Time && Space: Antonia, Kate, Olga, Lee Time && Space: Antonia, Kate, Olga, Lee - SPELLBOUND Code Witches Jun 19, 2020
@peachmakkoli peachmakkoli changed the title Time && Space: Antonia, Kate, Olga, Lee - SPELLBOUND Code Witches SPELLBOUND Code Witches: Antonia, Kate, Olga, Lee Jun 19, 2020
@tildeee
Copy link

tildeee commented Jun 26, 2020

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 I can edit another merchant's project
Verify unable to see another merchant's dashboard by manually editing URL ✔️ I get a 404

Major Learning Goals/Code Review

Criteria yes / no
90% reported coverage for all controller and model classes using SimpleCov ✔️ Well done!
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) Ther merchant dashboard uses a parameterized route (/merchants/:id)
Controllers
Controller-filter to require login by default ✔️
Helper methods or filters to find logged-in user, cart, product, etc ✔️ Yes! find_order is for cart
No excessive business logic ✔️
Business logic that ought to live in the model
Add / remove / update product on order The logic in ProductsController#add_to_cart has room to be refactored and turned into model logic. Not necessary-- the code is pretty okay, but it's a good suggestion to think about!
Checkout -> decrease inventory ✔️ Well done!
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
These tests don't necessarily test these cases
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
Does not check between logged-in status as the merchant (product owner) or not

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

MAGICIANS! Great work on this project! You all created a huge fully-functional web app. You all did an amazing job on it.

There are a few small things in the user experience that were a little strange (I can edit all products by changing the URL! Also, going to another merchant's dashboard gives me just a 404 header, where maybe I would expect it to redirect). You'll notice that I mentioned that adding to cart could be refactored-- honestly the code looks reasonable at the moment, but if you pushed it to have more helper methods than you think you need, you may see that it can get surprisingly clean.

That being said, the project looks great! The code looks great overall; it's pretty logical and was easy for me to follow, find everything, and read everything. Your controller logic and testing style was very consistent throughout the whole project. The tests were comprehensive and logical and organized. Also, the site and theme is beautiful and looks great! The user experience overall was fantastic.

Overall, you all did so so so well on this project. Well done!

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