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

Implement API backlog #518

Closed
12 tasks done
bajiat opened this issue Oct 8, 2015 · 27 comments
Closed
12 tasks done

Implement API backlog #518

bajiat opened this issue Oct 8, 2015 · 27 comments
Assignees
Milestone

Comments

@bajiat
Copy link
Contributor

bajiat commented Oct 8, 2015

Related to #482

wireframe

Note: even though the wireframe contains labels / tags for backlog items, they are not in the scope of this task. That will be a continuation task.

Definition of done

  • API backlog items are stored in collection.
  • API backlog collection has a schema.
    • Schema contains 'foreign key' field 'apiBackendId`
    • apiBackendId field contains unique ID of any given API Backend
    • apiBackendId field uses regEx: SimpleSchema.RegEx.Id for validation
  • API backlog schema contains all relevant fields included in UI wireframe.
  • API backlog input form exists.
  • API Backlog is associated with each API Backend
    • Backlog has defined route (e.g. /api/{{ _id }}/backlog
  • API managers can submit backlog items for their managed API Backends.
  • API managers can update backlog items for their managed API Backends.
  • API managers can delete backlog items for their managed API Backends.
@bajiat bajiat added the MVP2 label Oct 8, 2015
@bajiat bajiat added the planning label Nov 5, 2015
@bajiat bajiat added this to the Sprint 16 milestone Nov 9, 2015
@bajiat bajiat added ready and removed planning labels Nov 9, 2015
@brylie
Copy link
Contributor

brylie commented Nov 12, 2015

@baijat, should we move this issue back to Backlog?

@brylie brylie removed this from the Sprint 16 milestone Nov 12, 2015
@bajiat bajiat added this to the Sprint 18 milestone Dec 7, 2015
@bajiat bajiat added ready and removed planning labels Dec 7, 2015
@bajiat bajiat added planning and removed ready labels Dec 21, 2015
@bajiat
Copy link
Contributor Author

bajiat commented Dec 21, 2015

@frenchbread Would you be interested in this task? Brylie's rough estimate was 5-8 hours.

@frenchbread frenchbread self-assigned this Dec 22, 2015
@frenchbread
Copy link
Contributor

Self-assigned.

@bajiat bajiat modified the milestones: Sprint 19, Sprint 18 Dec 22, 2015
@bajiat bajiat added ready and removed planning labels Dec 22, 2015
@frenchbread
Copy link
Contributor

Did some good progress so far:

  • Created layout for backlog items
  • Added form for adding new backlog items
  • Priority label for each backlog item
  • Remove backlog item functionality
  • Sorting by priority & date added

Screenshot of backlog items list:
screen shot 2016-01-08 at 00 54 55

Screenshot of backlog form (stays in modal window):
screen shot 2016-01-08 at 00 55 10

ToDo:

  • Deal with AutoForm with FlashMessages integration (was not able to set it up on go..). Would be cool to have some help from @elnzv since he worked with in when coding API Feedback feature.
  • Replace privileges (insert, update, remove) from admin to managers.

Working branch: feature/api-backlog.

Also, if i'm misunderstanding, @brylie, should each backlog item be attached to specific API Backend?

@bajiat
Copy link
Contributor Author

bajiat commented Jan 8, 2016

@frenchbread Good work!

The entire backlog should be for one API backend. And consequently each item in that backlog for that particular API backend.

The purpose is to communicate what changes are planned to that particular API and the backlog is managed by the API manager.

(Did this answer your question?)

@brylie
Copy link
Contributor

brylie commented Jan 8, 2016

@frenchbread yes, each API Backend has its own backlog. I have updated the definition of done do include specific details about how to link the API Backlog and API Backend, as well as details about routing. My apologies for the omissions.

@brylie
Copy link
Contributor

brylie commented Jan 8, 2016

Also note, the API Managers can only manage (add, update, delete) items in API Backlogs for their own API Backends. This can be done by comparing the apiBackend.managersId array to make sure it contains the API Manager user ID.

@brylie
Copy link
Contributor

brylie commented Jan 8, 2016

Here is an example helper function you can use:

    // Get user ID
    var userId = Meteor.user()._id;

    // Get API Backend ID
    var backendId = // you will need to determine how to get the API Backend ID
    // Depending on the context, this could come from the router, template, or database operation (e.g. `allow.update`).

    // Get API Backend (only managerIds field is necessary)
    var backend = ApiBackends.findOne(backendId, {fields: {managerIds: 1}});

    // Get the backend manager IDs
    var managerIds = backend.managerIds;

    // Check if user ID is in manager IDs
    var userCanEdit = _.contains(managerIds, userId);

@frenchbread
Copy link
Contributor

@brylie @bajiat Thanks for info & updated def. of done. Now it's more clear.

@bajiat
Copy link
Contributor Author

bajiat commented Jan 11, 2016

@frenchbread Any updates on this task?

@frenchbread
Copy link
Contributor

@bajiat Almost finished this one. Just need to add inline comments describing the code.

@frenchbread
Copy link
Contributor

Created PR #757. This is quite heavy one so I would suggest that couple of @apinf/developers review it.

For testing & playing with it, navigate to view-api-backend page. There should be a "Backlog" button.

Design implementation was not a part of this issue, so probably would need to create another one which is going to relate to #643.

@bajiat
Copy link
Contributor Author

bajiat commented Jan 14, 2016

@frenchbread Hi, have you had a chance to look at Brylie's feedback on the PR?

@frenchbread
Copy link
Contributor

@bajiat I am on it. After some refactoring & renaming was not able to run a project. Figuring out why stuff does not work..

@brylie
Copy link
Contributor

brylie commented Jan 15, 2016

@frenchbread are you getting any errors? I am available for pair programming here.

@brylie
Copy link
Contributor

brylie commented Jan 15, 2016

Try the basic stuff first, start with the foundation and work up to higher level things. E.g.

  1. reset Meteor
  2. rename the collection
  3. refactor the template
  4. try the collection helper
  5. refactor template helpers to use collection helper

@frenchbread
Copy link
Contributor

@brylie Did not get any errors, backlog items were not able to load. Seems to be an issue with subscription/publication namings.

@brylie
Copy link
Contributor

brylie commented Jan 15, 2016

OK, what are you naming the publication?

@frenchbread
Copy link
Contributor

@brylie It's ApiBacklogItems.

@brylie
Copy link
Contributor

brylie commented Jan 15, 2016

@frenchbread is the branch working now? I can present at the review meeting.

@frenchbread
Copy link
Contributor

@brylie yes, it works.

@brylie
Copy link
Contributor

brylie commented Jan 20, 2016

@frenchbread please focus on finalizing this branch today. The testing task is lower priority.

jykae pushed a commit that referenced this issue Jan 21, 2016
@jykae jykae removed the in progress label Jan 21, 2016
@frenchbread frenchbread modified the milestones: Sprint 21, Sprint 20 Jan 29, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants