Giter Site home page Giter Site logo

super-customizable-cfd's Introduction

Super Customizable Cumulative Flow Diagram

A super-customizable cumulative flow diagram, aka a CFD, for Rally.

Note: This cannot be used in on-premises installations.

Installation and Settings

The app is installed as a Custom HTML App (see help documentation) Once the app is installed, use the gear menu on the app panel and select "Edit App Settings".

Artifact Type

Pick the type of data to include in the chart- Defect for example.

Group By

Pick the attribute on the previously selected type which will be used for generating the summary data for the chart.

Measure

Pick how the summary should be performed- for example, a simple count, or a sum of the Plan Estimates.

Start Date

Choose the starting date for the chart. If the app is used on a timebox (iteration/release) scoped custom page you can choose to automatically use that timebox's start date. You may also choose a specific date.

End Date

Choose the ending date for the chart. If the app is used on a timebox (iteration/release/milestone) scoped custom page you can choose to automatically use that timebox's end date. You may also choose 'Today' or a specific date.

Query

In addition to the advanced filtering component in the app, you can write your own complex filter queries. Extensive documentation is available. This might be useful if you want to always limit the chart to certain complex criteria.

Development Notes

Jan 2018

  • Update to sdk 2.1
  • Move to using rally app builder rather than grunt
  • Add export
  • Add advanced filtering
  • Add support for timebox scoped pages
  • Add support for end date of today

10 August 2014 - This is a complete rewrite. The most significant changes are:

  • Settings are now accessed from the gear menu
  • The chart now uses the Luminize calculator to analyze snapshots
  • Grouping on fields with allowed values that include booleans or no selection now display series correctly
  • App uses rc3 SDK

TODO

  • Perhaps an additional filter for the lookback itself (that is, apply the limits every day instead of (in addition to?) at the end and retconning)
  • Add query math for date keywords

Development

Use Rally App Builder to develop/build/run this app.

Testing

Use grunt to test this app.

If you've just downloaded this from github and you want to do development, you're going to need to have these installed:

  • git
  • node.js
  • grunt-cli
  • grunt-init

If you have those three installed, just type this in the root directory here to get set up to develop:

npm install

Structure

  • src/javascript: All the JS files saved here will be compiled into the target html file
  • src/style: All of the stylesheets saved here will be compiled into the target html file
  • test/fast: Fast jasmine tests go here. There should also be a helper file that is loaded first for creating mocks and doing other shortcuts (fastHelper.js) Tests should be in a file named -spec.js
  • test/slow: Slow jasmine tests go here. There should also be a helper file that is loaded first for creating mocks and doing other shortcuts (slowHelper.js) Tests should be in a file named -spec.js
  • templates: This is where templates that are used to create the production and debug html files live. The advantage of using these templates is that you can configure the behavior of the html around the JS.
  • config.json: This file contains the configuration settings necessary to create the debug and production html files. Server is only used for debug, name, className and sdk are used for both.
  • package.json: This file lists the dependencies for grunt
  • auth.json: This file should NOT be checked in. Create this to run the slow test specs. It should look like: { "username":"[email protected]", "password":"secret" }

Usage of the grunt file

Tasks

grunt debug

Use grunt debug to create the debug html file. You only need to run this when you have added new files to the src directories.

grunt build

Use grunt build to create the production html file. We still have to copy the html file to a panel to test.

grunt test-fast

Use grunt test-fast to run the Jasmine tests in the fast directory. Typically, the tests in the fast directory are more pure unit tests and do not need to connect to Rally.

grunt test-slow

Use grunt test-slow to run the Jasmine tests in the slow directory. Typically, the tests in the slow directory are more like integration tests in that they require connecting to Rally and interacting with data.

super-customizable-cfd's People

Contributors

jmartin-rally avatar krmorse avatar wrackzone avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

super-customizable-cfd's Issues

Plotting and displaying incorrect Values on the graph

I could see that the graph is plotting on wrong values.How can we get the values used to plot the graph.Also one more question here is when we have a release we have the start and end date of a release,why we need to get it from settings

Your help on this would be much appreciated.

Thanks
Arun

Is it possible to Group By Calculated?

Is there a way to group by Report State based on the following conditions? (Currently I'm counting the number of User Stories per Report State based on the below condition table in Excel)

image

For a cumulative flow for something like this (excluding group-by: epic):

image

Poor Search Results For This App in GitHub

If you search "Rally cfd" or "Rally Cumulative Flow Diagram" you don't show up in any search results. I would guess that is what 90% of users would search for, so you may want to try to tweak this to rank better in search results. Just an idea!

npm install issue

I get the below error when trying to run npm install. Was able to get the task to run by manually installing the latest version of grunt-webdriver-jasmine-runner via "npm install grunt-webdriver-jasmine-runner --save-dev". I also get the bottom error when trying to run tests.

npm_install_issue

error_running_tests

Add "severity" as a "group by" option in Defects

@krmorse We really like this app and are using it for defect tracking by state. But it doesn't allow for tracking by "severity".
I saw that the "group by" option has some standard fields and a couple custom fields but not all the fields.

Is it possible to add all the fields in the defects here? It will help us a lot and this would remain a one stop shop for all kinds of tracking!

Graphs Don't Include Values of "None" or Blank

As a user, I can see the total number of units that have a Kanban State of "None" (or blank or not selected) since this state has meaning to me.

Right now the CFD doesn't appear to include entries that have no value set for the Group By Field. In our case, we are using a column called "Kanban State" and the starting state for any story is "None" (or not set). In this case, we can't see all of the points that are in this category.

Please let me know if you need more information. Thanks again for putting this out there. Pretty cool.

Ability to specify 'Today' as an end date

Currently the user specifies a date as an end date. This means that the user has to go in pretty consistently to update the end date. If we can give an option that simply says 'Today', then the user doesn't have to update the end date.

Keep Getting: "Your request requires access to a workspace or project for which you do not have permission. Contact your subscription administrator to request permission." most of the time

Want to thank you for writing this app! this does what I exactly need.

The problem I have been having is, I keep getting this error:
Your request requires access to a workspace or project for which you do not have permission. Contact your subscription administrator to request permission.

most of the time, 3/10 tries work and I can see the area graph.

I am a workspace admin. So there shouldn't be any permission issues.

Setting End Date Should Extend The Graph To That End Date

As a user, when I set an End Date in the future I can have the graph extend all the way to that End Date (with no data showing for the future dates) so I can get a feel for whether the project is on track relative to the deadline.

I noticed with the new CFD that if you set the end date into the future (say, December 1st), the graph only extends to today's date. I can imagine scenarios where this is desired but for a fixed deadline project, seeing a visual representation of how much time is left can give you a good feel for whether you are on track or not.

A separate idea may be to be able to add a trend line to one of the bands (e.g. Completed or Production) to see if you trend line lands above or below the total units at the End Date.

Thanks again for building this. It is sweeeeeeet!

Wrong state for imported artifacts

Hi,

The CFD seems to have a problem managing artifacts that have been imported, using, e.g., the Rally Excel Plug-in.

Example
I use the CFD to show how many features there are in each specific state. Features that have been imported, hence, does not have a state change in the revision history, are incorrectly managed. I would assume that the app iterates through the revision history to create the graph. However, if no revision history related to a state change is found, it should map that feature to it's current state and with the start date from when is was created.

As we have imported most of our artifacts, and I also believe this is how many others do when the start using Rally, I see this as a major problem spread all over our organization and perhaps also others.

Best Regards,
Johan Björkdhal

Horizontal and Veritical Scrollbars in Chrome

Per the attached screenshot, there are vertical and horizontal scrollbars in Chrome. As I'm sure you realize, this is a little rough given that the dashboards in Rally already have vertical scrollbars.

horizontal_and_vertical_scrollbars_in_chrome

Ability To Set y-Axis Start Point

As a user with a long running project, I can set a y-axis start point so that as the number of completed points over time gets large I can still make sense of the smaller bands (like In Progress or In Testing).

See attached image for an example of where this would be useful. Over time, one of the bands has a tendency to get very large and squeeze out all of the other bands. If we could adjust the graph to start at 500 points (in this example) instead of 0 then we could see the details of the other bands more easily.

cumulative_flow_y_axis

Thanks again, I love your tool!

Instructions for how to copy/paste the app

Hi John, for the average user, they are just going to want to come here and find => copy => paste the HTML for the app into a custom HTML widget in Rally. Maybe you could put a 1-liner at the top of the readme to tell people to go to /deploy/App.txt and copy/paste those contents. This way you won't lose anyone who is super lazy (as most people are). Thanks again and I'm looking forward to checking out the updated version!

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.