AgileVentures / projectscope

MVP dashboard for ProjectScope, using new gems architecture developed by AV folks
2 stars 14 forks source link

Feature/preference based projects and metrics monitoring #56

Closed junyu-w closed 7 years ago

junyu-w commented 7 years ago

PT user story: https://www.pivotaltracker.com/story/show/133292341

Feature:

  1. added preference setting page
  2. user can select projects and metrics to monitor
tansaku commented 7 years ago

looking good so far @DrakeW - nice small PR

junyu-w commented 7 years ago

@tansaku this PR is good for a detailed review :) thanks!

tansaku commented 7 years ago

@DrakeW this is looking pretty good - couple of comments in there - are you deploying stuff somewhere, I feel like I should get a develop server up ...

junyu-w commented 7 years ago

@tansaku made changes according to the comments 👍

tansaku commented 7 years ago

big improvement @DrakeW - I think there's a further step where we introduce a ProjectCollection model on which we make updates ... and ProjectCollections are associated with users, but perhaps that's something for a future refactoring ...

Does the idea of a ProjectCollection model make any sense?

junyu-w commented 7 years ago

@tansaku so do you mean using ProjectCollection as a middle table that manages preference between uses and projects? Or there's other kind of updates that you were thinking about?

Also the relationship between ProjectCollection and Projects are also going to be many-to-many, then we still need a middle table between them. So I wonder if there are some benefits of doing this?

and yea I think we can do that as a future refactoring if needed :)

tansaku commented 7 years ago

yes, and it's defo a refactoring ticket - the advantage of this is that we maintain a RESTful interface for things and it means splitting out an API that is machine rather than user facing is easier in the future.

And in general if you reveal domain objects and treat them as resources it makes everything more manageable in the long run, i.e. if users have a ProjectCollection and we think about operations on that collection, e.g. edit, update, create, it means that all our controllers have the same structure, there's more predictability and everything is easier to manage :-)