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

Unicorns-'R-US (Brandi, Melissa, Emily, Jessica) #36

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

Conversation

jchung722
Copy link

@jchung722 jchung722 commented Oct 28, 2016

@CheezItMan
unicorns-r-us.herokuapp.com

eabrash and others added 30 commits October 19, 2016 17:30
Creating new merchant/redirecting authenticated merchants
Now able to grab Merchant username
improved check in sessions_controller for failed login
@BrandiPhillips
Copy link

Group dynamics:
-Trello helped us keep on track for sure and lots of team check-ins and communication. My team was always very thoughtful about being on the same page throughout the project.

  • I think we could have spent a bit more time in the beginning thinking about and deciding on where different parts of the site would live in controllers and views.
    -One piece of advise - Pick a theme that brings you joy while your working.

Technical:

  • Once I figured out where to start and where to put things in relation to where others were putting their code I was able to run with creating merchant capabilities and making the authorization to view certain aspects of the site. Authorization restrictions was the fun part for me.
    -the most challenging piece for me was the styling. I think it was a challenge for the group during merging because we all had our hands in the styling aspect. But trying to make foundation do what we wanted was a challenge. Working with the concept of join tables was a bit challenging for me too. Now I understand the .where method and how handy it is when working with content associated with join tables. Figuring out what was going on and where to put things in such a large file base was very difficult in the beginning.

Overall I am proud of the work we did. There were aspects that we wanted to implement and ran out of time. But we enjoyed working on the project and it was a pleasant team experience. Go Team Rainbows!!

@olenellina
Copy link

Reflection

Group Dynamics

How did the team work together:

  1. We made good use of our Trello board and kept in constant communication (we also sat next to each other, which helped a ton).
  2. I should have added more comments to my code. Also, I was super concerned about disrupting code from teammates and in retrospect, I think we would have worked through that just fine (because we did have merge conflicts and they were not difficult to get through).
  3. Be nice to each other. I think the point of the exercise isn't so much the product but working well in a team. We made conscious choices to pair on certain things and give people space that they needed (myself included) to figure stuff out. Everyone was very kind and considerate.

Technical

  1. I think the team did a great job at dividing up areas of the project to focus on and figuring out who and how to work through changes that spanned multiple areas. We didn't encounter anything that we weren't able to work through with help from each other and TAs.
  2. I'm really happy with the technical side of the project but feel like towards the end, we all got excited about last minute changes and I think felt rushed to get it all working. These were mostly "nice to haves," as we ensured our base cases and functionality was working well ahead of time. I think next time we probably would set a "all changes in" time which would give us sufficient time to work through any issues that arise.

Overall:
I'm very happy with the way the project turned out.

@jchung722
Copy link
Author

jchung722 commented Oct 28, 2016

How did your team work together?
-I think the Trello board and constant communications(mini discussions/stand-ups!) helped us stay organized and working together. Knowing what part of the app we were working on helped minimize merge conflicts.
-I think it would have been helpful to merge more often and in smaller pieces. Sometimes if a branch got too big before merging, this could create more cascading conflicts in the rest of the code. This was difficult to do, of course, because everyone wanted their part of the code to be working perfectly before merging. But it was helpful to merge more often and fix bugs a little at a time instead of all at once. I think it also might have been helpful to start styling earlier on instead of relying so heavily on backend throughout.
-C7: Communicate and merge often! Don't be afraid to ask for help from your teammates. It is easy to be blind to bugs when you are looking at your own code for hours at a time. Also styling can be much more difficult and time consuming than you think, so keep a good chunk of time reserved for that.

Technical:
-I think the backend portion of the site functioned well--we got most of the functions to work logically and reasonably well.
-I think it was the most challenging to work through connecting model objects via relationships, especially when there were so many in play. Sometimes I felt like my solutions were way to convoluted (there must be a more efficient way of doing this!). I think there could be much more refactoring done when it comes to sorting through all the relationships to get to the object I want to display. I'm also still working on becoming friends with OAuth :). I did not have to deal too much with that for this project (thanks team!). Looking through the overall code helped me learn, but I know I'll need more personal practice!

Overall, I think I can say that I am pretty comfortable at making my vision a reality when it comes to backend, but this is much more painful when it comes to frontend. I think I need to work on being comfortable with HTML & CSS tools so that I can be more efficient with making my vision a reality for design and work through the pain with patience...

Overall Part 2: I'm proud of what we accomplished together as a team! It's amazing what you can accomplish in a short amount of time when you're working with so many people, especially those who make it a comfortable working environment, and whose work you trust (in the end I stopped paying too much attention to the file changes pre-merge because I could trust that everyone did good work, and any conflicts we could resolve together).

@eabrash
Copy link

eabrash commented Oct 28, 2016

Emily's reflection on Betsy/Unicorns-R-Us

Group dynamics

Overall, I felt like our team had a pretty easy time working together. Everyone was very interested in being collaborative and contributing. The only time I felt like it got really stressful was at the very end (when Brandi had her individual meeting during the 15 minutes when we were planning to do our final merge before presentations). Scrambling to do the merge and having some issues with it meant that we were a little off-balance for our presentation. Other than that, from my standpoint, I we didn't encounter any major problems or stress points, and I really enjoyed working with all the members of my team.

What helped you stay organized and working together?

  • Trello was very helpful in coordinating who was working on what and which tasks still needed to be accomplished. Color-coding and tagging tasks with individual users was also beneficial.
  • Although we didn't always do formal stand-up or task assignment via a leader, we took time at least once a day to talk about who was working on what, whether any tasks were getting skipped, etc.
  • The more frequently we did pull requests, generally the better. Our biggest problems came when one or more people had been working on divergent branches for a long period of time.

What should you have been doing differently?

  • I think we could have done a better job of allocating time to different aspects of the project. For instance, we left most of the styling till the very end, and it ended up being more stressful and less satisfying because of that. I think I should have traded some of the time I spent making very detailed controller tests for styling, and that would have resulted in a better final product.
  • I think we could have done a better job of ensuring there was relatively equal ownership of discrete project chunks among group members. Some people ended up "owning" large, identifiable project chunks (cart, merchant products and profile, etc.), while others worked equally hard but did more scattered, diffuse tasks. I don't think this was necessarily a problem, but it was probably something we should have considered more to ensure everyone felt good about their section of focus.

What would you recommend to C7?

  • Be kind! Remember that the end goal is for everyone to learn, practice, and contribute. To me at least, this project was at least as much about learning to work well in a group and keep everyone on the team feeling positive as it was about being able to build a site.

Technical

What went well?

I was really happy with being able to come up with the cart on my own. It was not a perfect cart by any stretch of the imagination, though it underwent some improvements after our class conversation to get slightly closer. But it was a technical problem I actually had to think about and write out, which I appreciated and found very satisfying to solve. Overall, I spent the most time working on the cart (user-facing order system), and I feel like it's solid - most of the ways it could break have been addressed, and I think I came up with coherent systems for things like managing stock, dealing with additions, deletions, and updates, etc.

What was most challenging?

Personally, the thing I found most frustrating was the styling. I definitely didn't leave/allocate enough time for styling, which was likely the root of the problem, but I just have a hard time thinking logically about CSS. When I'm working in Rails or Ruby, I feel like I have all sorts of powers at my fingertips to crack whatever tough nut of a code problem is in front of me. When I'm working in CSS, I feel like these powers disappear, and all I'm doing is making uneducated guesses and hoping something changes. I've improved somewhat in working with basic CSS, but am really not where I should be with Foundation yet.

How do you feel about your project overall?

I am really proud of my team and what we accomplished. I think the best thing about this project was how well we were able to work together. That said, focusing just on the end product, I think there are some areas of the site that could still be strengthened, built out, or polished. There were a few user stories that just didn't quite make it into the final version, and that would be desirable for a "real" Unicorns 'R' Us site. Also, some parts of the existing site are more thoroughly tested and error-proofed than others.

In addition, having seen some of the creative features that classmates came up with for their sites, I think there are a lot of ways Unicorns 'R' Us could be improved and made more polished and professional. I think we decided on a solid but not super ambitious feature set to aim for, and we were able to deliver on that pretty well. However, if I were continuing to work on this project, I would definitely want to add elements such as a database of users (buyers, not just merchants), search, and more polished and advanced CSS styling.

@BrandiPhillips
Copy link

Copy link

@CheezItMan CheezItMan left a comment

Choose a reason for hiding this comment

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

@BrandiPhillips @jchung722 @eabrash @olenellina

I've gone ahead and added in-code comments to the bEtsy project. Sorry for taking so long to get back to you on it.

Overall, very very well done. You had good coding style, seemed to gel well as a team and came out with a cute product.


class CategoryTest < ActiveSupport::TestCase

test "Categories must have a name" do

Choose a reason for hiding this comment

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

Probably a better name for this test would be, "Categories can be assigned a name."

assert categories(:apparel).products.include?(products(:shoes))
end

end

Choose a reason for hiding this comment

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

There should probably be some validations for Categories, like the name must exist.

You should probably also test that once a product is added to a category it can be found in the .products list.


validates :orderitems,
presence: true

Choose a reason for hiding this comment

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

nice use of the has_scope gem to create filters.

presence: true,
uniqueness: true

def orders (list)

Choose a reason for hiding this comment

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

Should a merchant have many orders through products.

So you could let Rails do the work for you in this case. Very nice work with the loops however.

validates :cvv, presence: true, numericality: true, length: {minimum: 3, maximum: 4}, if: :buyer_info_needed?
validates :billing_zip, presence: true, numericality: true, length: {minimum: 5, maximum: 5}, if: :buyer_info_needed?
validates :placed_at, presence: true, if: :buyer_info_needed?

Choose a reason for hiding this comment

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

Very nice use of a custom validator.

# test "should not get index and instead redirect if user is not a merchant" do
# session[:user_id] = nil
# get :index
# assert_response :success

Choose a reason for hiding this comment

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

I think that should have been assert_response :redirect

assert_equal flash[:notice], "Sorry, that product could not be found. Please continue shopping our other awesome products."
end

# test "should get new" do

Choose a reason for hiding this comment

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

What about tests for new products and creating new products?

def final_total(array)
total = 0

array.each do |item|

Choose a reason for hiding this comment

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

This belongs in the model as it's doing business logic. View helpers are concerned with display. Minor issue however.

@@ -0,0 +1,9 @@
module ProductsHelper

Choose a reason for hiding this comment

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

I'm not sure what this gets you.

@@ -0,0 +1,60 @@

Choose a reason for hiding this comment

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

Just a suggestion, but I might add an if to only show the flash notice paragraph tags if they're there. Also if you're using the row for the grid, it's nicer to also include an inside div that specifies the columns, just to deal with possible side effects.

<% if flash[:notice] %>
   <div class="row">
      <div class="column small-12">
        <p> <%= flash[:notice] %></p>
      </div>
    </div>
<% end %>

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants