{"id":23869490,"url":"https://github.com/fredwu/amaze_hands","last_synced_at":"2025-09-08T19:31:17.406Z","repository":{"id":27177926,"uuid":"30647708","full_name":"fredwu/amaze_hands","owner":"fredwu","description":"Amaze Hands is an amazing tool developed for analysing Kanban board cards.","archived":false,"fork":false,"pushed_at":"2015-12-10T06:01:01.000Z","size":498,"stargazers_count":15,"open_issues_count":0,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-09T05:06:20.025Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fredwu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-02-11T12:56:43.000Z","updated_at":"2023-02-21T06:53:08.000Z","dependencies_parsed_at":"2022-08-17T17:10:29.747Z","dependency_job_id":null,"html_url":"https://github.com/fredwu/amaze_hands","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/fredwu/amaze_hands","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredwu%2Famaze_hands","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredwu%2Famaze_hands/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredwu%2Famaze_hands/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredwu%2Famaze_hands/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fredwu","download_url":"https://codeload.github.com/fredwu/amaze_hands/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fredwu%2Famaze_hands/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274231438,"owners_count":25245585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-08T02:00:09.813Z","response_time":121,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-03T12:35:49.369Z","updated_at":"2025-09-08T19:31:16.967Z","avatar_url":"https://github.com/fredwu.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Amaze Hands [![Code Climate](https://codeclimate.com/github/fredwu/amaze_hands/badges/gpa.svg)](https://codeclimate.com/github/fredwu/amaze_hands) [![Travis CI](https://travis-ci.org/fredwu/amaze_hands.svg?branch=master)](https://travis-ci.org/fredwu/amaze_hands) [![Test Coverage](https://codeclimate.com/github/fredwu/amaze_hands/badges/coverage.svg)](https://codeclimate.com/github/fredwu/amaze_hands)\n\nAmaze Hands is an amazing tool developed for analysing Kanban board cards, in a similar fashion to poker [hands](http://en.wikipedia.org/wiki/Glossary_of_poker_terms#hand) analysis.\n\nDeveloped initially for the amazing Pricing squad in Group Platform at [REA](http://www.rea-group.com/), and now being used by the Pricing and Products squads.\n\n## Why?\n\n_Lorem ipsum spreadsheet amaze._\n\nPreviously, as a [Delivery Lead](https://www.google.com.au/search?tbm=isch\u0026q=spreadsheet+slave) I spent a significant portion of my time manually recording card dates and working out the cycle time and wait time. LeanKit unfortunately does not help much - its reporting tool is very basic and somewhat inaccurate.\n\nBelow is the spreadsheet I used - Excel formulas are helpful, but punching in dates is an extremely tedious process.\n\n![](doc/images/spreadsheet.png)\n\n## Amaze Hands to the Rescue\n\n__The goal of Amaze Hands is to incrementally add intelligence to our agile process.__\n\nBy incrementally adding and/or filtering data points for analysis, we will be able to zero in on the problematic areas of our agile process. The following is a list of potential areas we could perform analysis on:\n\n- cycle time\n- wait time\n- blocked time\n- knocked-back time\n- context switch (between different streams of work)\n- other factors such as meetings, attrition, etc\n\n![](doc/images/web_app.png)\n\n## How?\n\n_Lorem ipsum copy paste amaze._\n\nEven though LeanKit does offer an XML export function for exporting card history, the function is broken therefore Amaze Hands relies on copy-pasted card history text from each card to process the data and generate metrics.\n\nBelow is a high level system architecture diagram that shows how Amaze Hands handles data.\n\n        +---------------------+\n        |        Text         | \u003c- Raw text input.\n        +----------+----------+\n                   |\n    +--------------v--------------+\n    |         Strategies          |\n    +-----------------------------+\n    |   +---------------------+   |\n    |   |    Preprocessor     |   | \u003c- Normalises text input for parsing.\n    |   +----------+----------+   |\n    |              |              |\n    |   +----------v----------+   |\n    |   |       Parser        |   | \u003c- Parses text into an AST.\n    |   +----------+----------+   |\n    |              |              |\n    |   +----------v----------+   |\n    |   |     Transformer     |   | \u003c- Transforms the AST into a common AST.\n    |   +---------------------+   |\n    +--------------+--------------+\n                   |\n        +----------v----------+\n        |       Builder       | \u003c- Builds the dataset from the common AST.\n        +----------+----------+\n                   |\n        +----------v----------+\n        |       Reducer       | \u003c- Filters the dataset.\n        +----------+----------+\n                   |\n        +----------v----------+\n        |      Analyser       | \u003c- Analyses the dataset for metrics.\n        +----------+----------+\n                   |\n        +----------v----------+\n        |      Producer       | \u003c- Produces metrics.\n        +----------+----------+\n                   |\n        +----------v----------+\n        |      Presenter      | \u003c- Presents metrics.\n        +---------------------+\n\n## Supported Kanban Boards\n\nAmaze Hands out of the box has parser and transformer strategies for the following tools:\n\n- [LeanKit](http://leankit.com/)\n- CSV\n\n## Stack\n\nAmaze Hands is proudly built with:\n\n- Ruby 2.1+\n- [Lotus](http://lotusrb.org/)\n- [Parslet](http://kschiess.github.io/parslet/) for [PEG](http://en.wikipedia.org/wiki/Parsing_expression_grammar)\n- [C3.js](http://c3js.org/)\n- [Bootstrap](http://getbootstrap.com/)\n- [RUI](http://rea.to/rui)\n\n## How to Use\n\n### Run Metrics in CLI\n\n```\nbundle install\nlotus c\n```\n\n```ruby\n# in lotus repl\nWorkflow.new(\n  strategy: Strategies::LeanKit,\n  lanes:    Strategies::LeanKit::PricingLanes,\n  files:    Dir[\"#{__dir__}/db/pricing/*.txt\"]\n).metrics\n```\n\n### Run Metrics in Local Web App\n\n```\nbundle install\nlotus s\n```\n\n## Credits\n\n- [Fred Wu](http://fredwu.me/) - author.\n- [REA Group](http://www.rea-group.com/) - where Amaze Hands was built.\n\n## License\n\nLicensed under [MIT](http://fredwu.mit-license.org/)\n\n![](doc/images/wow_amaze_hands.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredwu%2Famaze_hands","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffredwu%2Famaze_hands","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffredwu%2Famaze_hands/lists"}