Git Product home page Git Product logo

i-got-issues's Introduction

Teams, Buckets, Issues

I'm archiving this repository as GitHub Projects do almost everything this project set out to do.

I Got Issues provides a few simple building blocks for organization and then gets out of the way so you can do your work.

Core Concepts

football

I Got Issues is team specific and repository agnostic so you can import issues from any number of repositories into your team's buckets.

I Got Issues improves the signal to noise ratio for your team by not showing every issue in every repository that you work in. Import issues that need your team's attention and ignore everything else.

I Got Issues does not force a specific workflow but it was developed with a particular workflow in mind.

Our Workflow

Buckets

My team at work prioritizes our issues into three buckets, In Progress, Up Next, and Icebox.

buckets

Prioritization Meeting

Approximately once a week we have a meeting where we work together to prioritize what is up next. Everyone on the team has ownership in the process and decisions made.

prioritizing

Importing

We only import issues that we need to talk about and possibly work on.

importing

Working An Issue

When I start working on an issue I move it from Up Next to In Progress and assign it to myself.

start working

Completing An Issue

I can close the issue by simply checking the box once I have completed the work.

completing

Shipping

At our next prioritization meeting we discuss and then ship the completed issues which are automatically rolled up into a Markdown ship list that we can post somewhere for the rest of the company to see.

shipping

Auditing

Finally we can audit the history of decisions we made.

auditing

Prerequisites

  • postgres or whatever database you want to use (update database.yml accordingly)

I install postgres using homebrew:

brew install postgres

And then I start the postgres server with:

postgres -D /usr/local/var/postgres

Setup

Clone the repo.

git clone https://github.com/jonmagic/i-got-issues.git
cd i-got-issues
bundle

Now go to https://github.com/settings/applications and register a new application. You'll need the Client ID and Client Secret, if you run the server locally the Authorization callback URL is http://localhost:3000/auth/github/callback.

Create a .env file in the root of the project and enter the following details filling in with the values you just copied after registering a new application:

GITHUB_KEY=client_id_from_the_app_you_just_registered
GITHUB_SECRET=client_secret_from_the_app_you_just_registered

Now setup the database and start the server.

rake db:setup
rails server

Open your browser to http://localhost:3000 and choose a team :) Enjoy!

Development

Run the tests with rake.

Deploying

I setup the app on Heroku in a matter of minutes. You shouldn't have any problems.

  1. Create the Heroku app and add the remote to your local git repository
  2. Register app on GitHub https://github.com/settings/applications
  3. Set the two environment variables GITHUB_KEY and GITHUB_SECRET using heroku config:add
  4. Deploy the app to Heroku with git push heroku
  5. Run database migrations with heroku run rake db:migrate

Fire it up in your browser and see if it worked.

Contributing

Read the guide to contributing.

Contributors

License

See LICENSE.

i-got-issues's People

Contributors

jankeesvw avatar jonmagic avatar julia7662 avatar muan avatar spraints avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

i-got-issues's Issues

Add archive feature

At the beginning of a prioritization meeting we usually talk over what was completed and then "archive" those issues so they don't cloud our future view.

It would be awesome to have an Archive button that takes closed issues (PrioritizedIssue) and sets the archived_at to a timestamp. Ideally we would use the same exact timestamp for all of them so you could go back and look at them together by their archive timestamp.

Time to refactor

I buggered things up pretty good in #28 so it's time to do a full refactor pass. There are integration tests in place now for access control so that should help during refactoring. Should probably move authorization code down into a model so that it can be easily unit tested.

Add archive log

Have a view of all the archived issues for a given timestamp. Eg, a "ship list" or "ship report" for each sprint.

Audit log for every action

Audit everything. Use ActiveSupport::Notifications? Take advantage of hstore on postgres?

PrioritizedIssue actions

  • jonmagic imported Refactor Controllers into Current
  • jonmagic moved Refactor Controllers from the 10th in Current to the 3rd in the Backlog
  • jonmagic prioritized Refactor Controllers from 3rd to 4th in Backlog
  • jonmagic removed Refactor Controllers from this team

Bucket actions

  • jonmagic created the Current bucket
  • jonmagic renamed the Current bucket to Backlog
  • jonmagic removed the Backlog bucket and reassigned all issues to Current
  • jonmagic moved Current to the 2nd column

URL changes

I think team buckets should live under /teams/:id for faster switching between teams.

We'll need to periodically check that the user has permission to view the team they whose buckets they are looking at.

UI improvements

General UI improvements. Feel free to add more here.

  • Show assignee and 'remove issue' on the top level of the panels instead of opening panels to see this info.
  • Show the team name on the team buckets index.
  • Move the bucket-specific nav links (new bucket, issue import) out of the general nav? Or perhaps make it more visually distinctive from the rest of the nav so it's clearer what is top level and what is team specific.
  • Highlight drop areas.

Sorting inside a bucket isn't working right

Noticed this morning on master that moving an issue in a bucket is showing some weird behavior. The only thing that I think could have changed it was the upgrade to Rails 4.1.4 so need to dig in and see why ranked-model isn't doing what it's supposed to do.

Add an API

@achiu suggested we add a cli (or hubot interface). Time for an API :)

Handle issue assignment for teams larger than api record limit

Currently when you visit the /buckets page it does a single API request to your team to get the team members and then uses that in all of the issue assignment select boxes. If the team is larger than the GitHub API record limit you only get the first batch of team members.

Redirect back after auth

If I'm using a browser extension to import issues I want it to still work even if I have to go through the authentication redirects. Need to add session[:redirect_to] or something similar that stores the url you were trying to access before authenticating and then logic to redirect back to that url.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.