Last active
December 21, 2015 14:58
-
-
Save jpospychala/6323186 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"description": "JKE Banking (Change Management)", | |
"name": "JKE Banking (Change Management)", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
{"description": "", | |
"name": "Main Development", | |
"label": "Main Development", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
{"description": "", | |
"name": "Release 1.0", | |
"label": "Release 1.0", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
{"description": "", | |
"name": "Sprint 1", | |
"label": "Sprint 1", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
{"name": "Allocate Dividends by Percentage", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:01.294", | |
"description": "", | |
"name": "Implement - Allocate Dividends by Percentage", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Donors Can Choose to Support an Organization", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:05.115", | |
"description": "", | |
"name": "Implement - Donors Can Choose to Support an Organization", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Donors Chooses an Organization", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:06.474", | |
"description": "", | |
"name": "Implement - Donors Chooses an Organization", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Donors will receive confirmation and receipt", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:07.129", | |
"description": "", | |
"name": "Implement - Donors will receive confirmation and receipt", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Dividend Allocation by Percentage", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:09.19", | |
"description": "", | |
"name": "Implement - Dividend Allocation by Percentage", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Support Dividend Processing via Mobile Devices", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-21 21:58:31.999", | |
"description": "Establish the base JKE Mobile prototype, including the Worklight project with the JKE Mobile app and necessary adapters.", | |
"name": "Implement – Support Dividend Processing via Mobile Devices", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Borrowers Can View Total Cost of Loan", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-07-22 21:58:36.167", | |
"description": "", | |
"name": "Implement - Borrowers Can View Total Cost of Loan", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]} ]}, | |
{"description": "", | |
"name": "Sprint 2", | |
"label": "Sprint 2", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
{"description": "", | |
"name": "development", | |
"label": "development", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
]}, | |
{"description": "", | |
"name": "stabilization", | |
"label": "stabilization", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
]}, | |
{"name": "Frequency of dividend transfer", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-11 21:58:00.63", | |
"description": "", | |
"name": "Implement - Frequency of dividend transfer", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Requests sent in form of email", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-11 21:58:02.324", | |
"description": "", | |
"name": "Implement - Requests sent in form of email", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Organization must identify how much money is desired", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:04.22", | |
"description": "", | |
"name": "Implement - Organization must identify how much money is desired", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Organizations may apply with an initial request", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:04.62", | |
"description": "", | |
"name": "Implement - Organizations may apply with an initial request", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Customers can Nominate an Organization", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:06.169", | |
"description": "", | |
"name": "Implement - Customers can Nominate an Organization", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Organization must provide justification for why funds are needed", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:06.925", | |
"description": "", | |
"name": "Implement - Organization must provide justification for why funds are needed", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Organizations can Apply", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:07.934", | |
"description": "", | |
"name": "Implement - Organizations can Apply", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Donor Dividend Allocation Criteria", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-11 21:58:08.239", | |
"description": "", | |
"name": "Implement - Donor Dividend Allocation Criteria", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "JKE Charity Coordinator will respond to request in the website triggering", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:08.892", | |
"description": "", | |
"name": "Implement - JKE Charity Coordinator will respond to request in the website triggering", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Validate Loan Term and Amount", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-11 21:58:35.313", | |
"description": "", | |
"name": "Implement - Validate Loan Term and Amount", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]}, | |
{"name": "Allocate Dividends with Web Service", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-01 21:58:42.293", | |
"description": "Create high-level design for planning purposes.", | |
"name": "Design - Allocate Dividends with Web Service", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]}, | |
{"starts": "2013-08-01 21:58:43.393", | |
"description": "Complete the implementation and unit test the service.", | |
"name": "Implement - Allocate Dividends with Web Service", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]}, | |
{"starts": "2013-08-01 21:58:43.08", | |
"description": "Create the service design and generate initial implementation code.", | |
"name": "Detail Design - Allocate Dividends with Web Service", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]} ]}, | |
{"description": "", | |
"name": "Sprint 3", | |
"label": "Sprint 3", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
]}, | |
{"name": "Donors Deposit Money Into a Pooled Assistance Fund", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-23 19:22:01.279", | |
"description": "", | |
"name": "subitem1", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "defect", | |
"children" : [ | |
]} ]}, | |
{"name": "Requests sent in form of hard copy mail", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
]}, | |
{"name": "Allocate dividends by amount and frequency", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
]}, | |
{"name": "Donation by amount", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
]}, | |
{"name": "Allocate Dividends to Nearby Charities", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
{"starts": "2013-08-21 21:58:48.158", | |
"description": "Please create the test cases, test scripts, and test execution records that will be used to validate the parent story.", | |
"name": "Create test assets for Allocate Dividends to Nearby Charities", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]}, | |
{"starts": "2013-08-21 21:58:49.567", | |
"description": "Please create requirements that elaborate on what is needed for this story.", | |
"name": "Elaborate requirements for Allocate Dividends to Nearby Charities", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "task", | |
"children" : [ | |
]} ]} ]}, | |
{"description": "", | |
"name": "Product Backlog", | |
"label": "Product Backlog", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
{"name": "Multiplatform change due to invalid customer model loans", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"type": "com.ibm.team.apt.workItemType.story", | |
"children" : [ | |
]} ]} ]}, | |
{"description": "", | |
"name": "Maintenance", | |
"label": "Maintenance", | |
"uuid": "_zcQAsgqbEeOoOJObZSBBwg", | |
"children" : [ | |
]}]} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"> | |
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js?1.27.2"></script> | |
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.layout.js?1.27.2"></script> | |
<style type="text/css"> | |
.node rect { | |
cursor: pointer; | |
fill: #fff; | |
fill-opacity: .5; | |
stroke: #3182bd; | |
stroke-width: 1.5px; | |
} | |
.node text { | |
font: 10px sans-serif; | |
pointer-events: none; | |
} | |
path.link { | |
fill: none; | |
stroke: #9ecae1; | |
stroke-width: 1.5px; | |
} | |
</style> | |
</head> | |
<body> | |
<div id="chart"></div> | |
<script type="text/javascript"> | |
var w = 960, | |
h = 800, | |
i = 0, | |
barHeight = 20, | |
barWidth = w * .8, | |
duration = 400, | |
root; | |
var tree = d3.layout.tree() | |
.size([h, 100]); | |
var diagonal = d3.svg.diagonal() | |
.projection(function(d) { return [d.y, d.x]; }); | |
var vis = d3.select("#chart").append("svg:svg") | |
.attr("width", w) | |
.attr("height", h) | |
.append("svg:g") | |
.attr("transform", "translate(20,30)"); | |
d3.json("data.json", function(json) { | |
json.x0 = 0; | |
json.y0 = 0; | |
update(root = json); | |
}); | |
function update(source) { | |
// Compute the flattened node list. TODO use d3.layout.hierarchy. | |
var nodes = tree.nodes(root); | |
// Compute the "layout". | |
nodes.forEach(function(n, i) { | |
n.x = i * barHeight; | |
}); | |
// Update the nodes… | |
var node = vis.selectAll("g.node") | |
.data(nodes, function(d) { return d.id || (d.id = ++i); }); | |
var nodeEnter = node.enter().append("svg:g") | |
.attr("class", "node") | |
.attr("transform", function(d) { return "translate(" + source.y0 + "," + source.x0 + ")"; }) | |
.style("opacity", 1e-6); | |
// Enter any new nodes at the parent's previous position. | |
nodeEnter.append("svg:rect") | |
.attr("y", -barHeight / 2) | |
.attr("height", barHeight) | |
.attr("width", barWidth) | |
.style("fill", color) | |
.on("click", click); | |
nodeEnter.append("svg:text") | |
.attr("dy", 3.5) | |
.attr("dx", 5.5) | |
.text(function(d) { return d.name; }); | |
// Transition nodes to their new position. | |
nodeEnter.transition() | |
.duration(duration) | |
.attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; }) | |
.style("opacity", 1); | |
node.transition() | |
.duration(duration) | |
.attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; }) | |
.style("opacity", 1) | |
.select("rect") | |
.style("fill", color); | |
// Transition exiting nodes to the parent's new position. | |
node.exit().transition() | |
.duration(duration) | |
.attr("transform", function(d) { return "translate(" + source.y + "," + source.x + ")"; }) | |
.style("opacity", 1e-6) | |
.remove(); | |
// Update the links… | |
var link = vis.selectAll("path.link") | |
.data(tree.links(nodes), function(d) { return d.target.id; }); | |
// Enter any new links at the parent's previous position. | |
link.enter().insert("svg:path", "g") | |
.attr("class", "link") | |
.attr("d", function(d) { | |
var o = {x: source.x0, y: source.y0}; | |
return diagonal({source: o, target: o}); | |
}) | |
.transition() | |
.duration(duration) | |
.attr("d", diagonal); | |
// Transition links to their new position. | |
link.transition() | |
.duration(duration) | |
.attr("d", diagonal); | |
// Transition exiting nodes to the parent's new position. | |
link.exit().transition() | |
.duration(duration) | |
.attr("d", function(d) { | |
var o = {x: source.x, y: source.y}; | |
return diagonal({source: o, target: o}); | |
}) | |
.remove(); | |
// Stash the old positions for transition. | |
nodes.forEach(function(d) { | |
d.x0 = d.x; | |
d.y0 = d.y; | |
}); | |
} | |
// Toggle children on click. | |
function click(d) { | |
if (d.children) { | |
d._children = d.children; | |
d.children = null; | |
} else { | |
d.children = d._children; | |
d._children = null; | |
} | |
update(d); | |
} | |
function color(d) { | |
return d._children ? "#3182bd" : d.children ? "#c6dbef" : "#fd8d3c"; | |
} | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment