{"id":14955707,"url":"https://github.com/philou/planning-poker","last_synced_at":"2025-10-01T01:31:20.814Z","repository":{"id":9078573,"uuid":"60747933","full_name":"philou/planning-poker","owner":"philou","description":"Effective Planning Poker sessions for remote teams","archived":false,"fork":false,"pushed_at":"2023-03-08T19:42:30.000Z","size":422,"stargazers_count":32,"open_issues_count":36,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-14T11:46:00.179Z","etag":null,"topics":["heroku","poker-planning","rails","rails-application","ruby"],"latest_commit_sha":null,"homepage":"https://philou.github.io/planning-poker/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/philou.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-06-09T03:51:09.000Z","updated_at":"2023-05-04T12:24:17.000Z","dependencies_parsed_at":"2024-09-24T13:24:04.007Z","dependency_job_id":null,"html_url":"https://github.com/philou/planning-poker","commit_stats":{"total_commits":213,"total_committers":2,"mean_commits":106.5,"dds":"0.0046948356807511304","last_synced_commit":"023c4e1bca4e40c7501f7c1b6402b8286072151b"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philou%2Fplanning-poker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philou%2Fplanning-poker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philou%2Fplanning-poker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/philou%2Fplanning-poker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/philou","download_url":"https://codeload.github.com/philou/planning-poker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234808945,"owners_count":18890088,"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","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":["heroku","poker-planning","rails","rails-application","ruby"],"created_at":"2024-09-24T13:11:35.785Z","updated_at":"2025-10-01T01:31:20.251Z","avatar_url":"https://github.com/philou.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"‼ 2022/08/31 Since Heroku is stoping its free DBs, this app is no longer available online.\n\n# Planning-Poker\n\n[![CI Build Status Badge](https://api.travis-ci.org/philou/planning-poker.svg?branch=master)](https://travis-ci.org/philou/planning-poker)\n[![Code Climate](https://codeclimate.com/github/philou/planning-poker/badges/gpa.svg)](https://codeclimate.com/github/philou/planning-poker)\n[![Test Coverage](https://codeclimate.com/github/philou/planning-poker/badges/coverage.svg)](https://codeclimate.com/github/philou/planning-poker/coverage)\n[![Issue Count](https://codeclimate.com/github/philou/planning-poker/badges/issue_count.svg)](https://codeclimate.com/github/philou/planning-poker)\n[![Heroku App Status](http://heroku-shields.herokuapp.com/philous-planning-poker)](https://philous-planning-poker.herokuapp.com)\n\nAn app to enable agile teams to do effective remote [Planning Poker](https://en.wikipedia.org/wiki/Planning_poker) estimations.\n\n[![Screenshot of the tool](screenshot.jpg)](https://philous-planning-poker.herokuapp.com/)\n\n## Why\n\nDuring my career as a software engineer, I am more and more working in teams that span over many places. At the same time, I am a great proponent of the agile way which favor co-located teams.\n\nI am convinced that teams can be both remote *and* agile. Provided they have the correct tools.\n\nThis app enables remote teams to run effective [poker planning](https://en.wikipedia.org/wiki/Planning_poker) sessions. Without it, they would use a video conference to share their estimates through the camera. With this app, a phone call is enough.\n\nIn the long run, it could improve the estimation experience for both remote and co-located teams :\n\n* It could warn of a \"risky\" or \"unlikely\" estimations, by analyzing the distribution\n* It help to do \"Risk\" estimations, which have 2 axes (likelihood and criticality)\n\n## How to use it\n\n### Tutorial\n\nTo do a remote planning poker session, you'll all need 3 things :\n\n* an internet connection\n* be together in a voice teleconference\n* know what [poker estimation technique](https://en.wikipedia.org/wiki/Planning_poker)\n\nOnce this is ready, you should all go to [https://philous-planning-poker.herokuapp.com/](https://philous-planning-poker.herokuapp.com/).\n\n1. Type in your team name and pseudo, and enter your team space. The first to enter becomes the animator for the team.\n2. Discuss together about what you are going to estimate.\n3. The animator starts a vote.\n4. Everyone estimates the task in [story points](https://www.mountaingoatsoftware.com/blog/what-are-story-points).\n5. At the end of the vote, you should all see the distribution of the estimates.\n6. Discuss the results.\n7. At any moment, the animator can start a new vote.\n\nHere is a video demonstrating how the different contributors interact :\n\n[![Demo video on Youtube](video.jpg)](https://www.youtube.com/watch?v=yUTpabukwxE)\n\n### FAQ\n\n\u003e What if no one is the animator ?\n\nYou must have entered a team space that is already used and which already has an animator. Pick another team name to fix that.\n\n\u003e I entered my team name and pseudo, but it seems I am alone !\n\nYou must have used a different team name. The tool is case sensitive, be sure to use exactly the same team name.\n\n### Limitations\n\nHere are the main current limitations of the tool :\n\n* The animator is the first person in the team to log in, once someone is animator for a team, he cannot back out of this role\n* Each vote lasts for 30 seconds, even if everyone has voted\n* The only form of authentication are the team and persons names, this can lead to conflicts\n* The tool is not built to scale, new teams and contributors pill up in a Postgres DB but are not garbage collected.\n* The main instance runs on a free [Heroku](https://www.heroku.com/) app\n\nAnyone could fix these if needed.\n\n### Feedback is welcome\n\nI'd appreciate your feedback about this tool. Whether\n\n* to tell me what you think of it\n* to explain what you'd need before to start using it\n* to ask any question\n\nContact me or create a [Github issue](https://github.com/philou/planning-poker/issues).\n\n## Open Source\n\nThe tool is open source, under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). Among other things, this means that :\n\n* you can install it on your own server and run your own instance\n* you can contribute improvement to it\n\nCheck the [source code on Github](https://github.com/philou/planning-poker) to learn how to do this.\n\n## How to run it\n\n### Heroku\n\nThe app is continuously deployed to [Heroku](https://www.heroku.com) at https://philous-planning-poker.herokuapp.com/.\n\nDeploying to your own Heroku app is straightforward. It only requires an SQL DB and a Redis server. Here is the way to go :\n\n```bash\n# install the Heroku command line\nbrew install heroku\n\n# clone the repo\ngit clone git@github.com:philou/planning-poker.git\ncd planning-poker\n\n# create an Heroku app\nheroku apps:create\n\n# add a Postgres DB\nheroku addons:create heroku-postgresql:hobby-dev\n\n# add Redis\nheroku addons:create heroku-redis:hobby-dev\n\n# deploy\ngit push heroku master\n\n# migrate your database\nheroku run rake db:migrate\n```\n\nYour app should be running in the cloud !\n\n### Local machine\n\nDeploying on a local machine or server is pretty simple too. \n\n#### Pre-requisite\n\nYou need to have a few things installed first :\n\n* [Ruby](https://www.ruby-lang.org), I use [rbenv](https://github.com/rbenv/rbenv) for that\n* [Docker](https://www.docker.com/)\n* [PhantomJS](http://phantomjs.org/) if you want to run the tests\n\n#### Sources\n\nThen, clone the repo :\n\n```\ngit clone https://github.com/philou/planning-poker.git\ncd planning-poker\n```\n\n#### Dependencies\n\nThey are managed with bundler. Just run the following :\n\n```\nbundle install\n```\n\nbundle might complain that some dependencies are missing on your OS, in this case follow its advices and install them.\n\n#### Database\n\nThere is a docker compose configuration to start services dependencies. You can either use docker, or start these services yourself. Here is the docker way.\n\nYou'll need to have docker and docker compose installed :\n\n* https://docs.docker.com/engine/installation/\n* https://docs.docker.com/compose/install/\n\nThen, run the following to create the database :\n\n```\ndocker-compose up\nbundle exec rake db:create\nbundle exec rake db:migrate\n```\n\n#### Local run\n\nThe db should be started from previous step. Start the rails server the typical way\n\n```\nbundle exec bin/rails server\n```\n\nCheck that it's running at http://localhost:3000\n\n## How to contribute\n\n### Issues\n\nIssues and user stories are maintained in the [github issues](https://github.com/philou/planning-poker/issues) of this repo. [ZenHub](https://www.zenhub.com/) is a nice addition to visualize and prioritize the tasks to work on.\n\n### Continuous Delivery Chain\n\nThere is a [TravisCI Job](https://travis-ci.org/philou/planning-poker) continuously building any change on the github repo. When the build passes, the app is automatically deployed to [Heroku](https://philous-planning-poker.herokuapp.com/).\n\nThe repo is also linked to a [Code Climate project](https://codeclimate.com/github/philou/planning-poker) which performs static code analysis and monitors code issues.\n\n### Coding Conventions\n\nHere are the few guidelines I followed when building the initial version of this app\n\n* Stick to the standards : Code Climate is very good at pointing out any infringement to this rule\n* Do the simplest thing that could work. I did not build complex stuff when more down to earth solutions work perfectly in the current setting\n* Update the dependencies as often as possible. As the whole code is automatically tested, it's a lot easier to stay on the latest versions.\n* Test Driven Development is key in allowing Continuous Delivery\n* As few mocks as possible. Mocks are brittle, difficult to maintain and provide a false sense of security\n* I tracked technical debt (the things I decided not to do now) using #TODO comments, which appear in Code Climate\n\n## Authors\n\n* [Philippe Bourgau](http://philippe.bourgau.net)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilou%2Fplanning-poker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilou%2Fplanning-poker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilou%2Fplanning-poker/lists"}