{"id":27301050,"url":"https://github.com/sebaherrera07/jira-project-estimator","last_synced_at":"2025-04-12T01:33:37.630Z","repository":{"id":45498469,"uuid":"513364606","full_name":"sebaherrera07/jira-project-estimator","owner":"sebaherrera07","description":"Monitor your team's progress and get estimated finish dates automatically. You just need to estimate your Jira tickets and the tool will do the rest.","archived":false,"fork":false,"pushed_at":"2025-01-15T15:04:54.000Z","size":1708,"stargazers_count":28,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"development","last_synced_at":"2025-04-11T20:24:44.712Z","etag":null,"topics":["atlassian-jira","estimation","jira","rails","ruby"],"latest_commit_sha":null,"homepage":"","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sebaherrera07.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":"2022-07-13T03:14:59.000Z","updated_at":"2025-01-15T15:04:54.000Z","dependencies_parsed_at":"2024-04-11T20:40:51.778Z","dependency_job_id":"2c89cb6c-4a7e-47eb-ae3c-c2d7dbb8db34","html_url":"https://github.com/sebaherrera07/jira-project-estimator","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebaherrera07%2Fjira-project-estimator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebaherrera07%2Fjira-project-estimator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebaherrera07%2Fjira-project-estimator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sebaherrera07%2Fjira-project-estimator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sebaherrera07","download_url":"https://codeload.github.com/sebaherrera07/jira-project-estimator/tar.gz/refs/heads/development","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248504423,"owners_count":21115158,"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":["atlassian-jira","estimation","jira","rails","ruby"],"created_at":"2025-04-12T01:33:35.560Z","updated_at":"2025-04-12T01:33:37.623Z","avatar_url":"https://github.com/sebaherrera07.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ![Jira Project Estimator](public/ms-icon-28x44.png) Jira Project Estimator \n\nEvery software team at some point will be asked: **\"When will X be finished?\"**\n\nAnd then you can either:\n* A) Estimate the remaining work with any technique you like. _(E.g. a spreadsheet, compare with similar past experiences, rule of thumb, velocity, etc.)_\n* B) Just say the date your client wants to listen. _(Please never do this)_\n\nWe know giving estimates is hard in software.\n\nWe know that sometimes estimates are considered as compromises by clients, and we can be prisoners of our own words.\n\nWe know that it's better to know that we are not going to meet the deadline as early as possible, so we can plan for the future and act accordingly.\n\nSo the purpose of this tool is to help you monitor your team's progress and automatically get estimated finish dates, and to make it something quick and easy to use. **You just need to estimate your Jira tickets and the tool will do the rest!**\n\n\n## :camera: Screens\nTo see some of the main screens, please check the [screens](docs/SCREENS.md) page.\n\n\n## :thought_balloon: Considerations\n1. The tool tracks progress and generates estimates for the **Epic**, based on its Issues points and status (To Do, In Progress, Done, ...).\n\n2. The tool considers all types of Issues (Story, Task, Bug, ...).\n\n3. The tool does not track progress or generate estimates for Issues without Epic.\n\n4. The tool does not consider Sub-Tasks.\n\n5. For calculating average velocity and generating estimates is **the unit of time is the week**. This is to avoid having to consider if the team uses sprints, and eventually the sprint length which could be different for each team. Also, estimates in number of weeks should be fine for everyone.\n\n6. By default there are 2 estimations which are calculated based on the average velocity since: (1) the implementation start week; (2) the last 3 weeks. You can also ask for a 3rd estimation based on the average velocity you expect to achieve by using the `Expected average` filter.\n\n7. The tool considers that weeks start on Monday and end on Sunday. Why do I mention this? Because if you started the implementation of a project on a Friday, the tool will consider that the implementation started on the previous Monday, and therefore your average velocity will be lower than expected. In this case you can either live with this difference, or set the Epic start date in Jira and say implementation started the following Monday. If you need to use another custom field for the start date, you should set the `JIRA_START_DATE_FIELD_CODES` environment variable, which allows comma separated values (e.g. `customfield_10015,customfield_10034`)\n\n8. If you want to estimate just a subset of an Epic, you can make use of Jira labels to filter the Issues you want to consider. First label your Issues in Jira, and then use the `Label` filter.\n\n9. The tool allows you to consider a level of uncertainty when calculating an estimation, with 5 possible values: Empty, Low, Medium, High, Very High. For each value you can set a percentage associated to it, by setting the `LOW_UNCERTAINTY_PERCENTAGE, MEDIUM_UNCERTAINTY_PERCENTAGE, HIGH_UNCERTAINTY_PERCENTAGE, VERY_HIGH_UNCERTAINTY_PERCENTAGE` environment variables. What this will do is, for example, if right now you have 20 points remaining, and you set the `MEDIUM_UNCERTAINTY_PERCENTAGE` to 20% and select `Uncertainty level` filter to Medium, the tool will consider that you have 24 points remaining and calculate the number of weeks remaining based on that.\n\n10. The calculations are more accurate when you estimate **ALL** the Issues and after multiple weeks of work (the first few weeks is expected to see unaccurate estimates).\n\n11. The tool works for Scrum, Kanban, or any other Jira board type. By default it might just work with Scrum boards by using the existing points field, and if you need to use another custom field, you should set the `JIRA_STORY_POINTS_FIELD_CODES` environment variable, which allows comma separated values (e.g. `customfield_10016,customfield_10034`)\n\n12. The tool allows you to define your own set of ticket statuses. By default it uses `To Do` for \"not started\", `Done` for \"finished\", and every other status for \"in progress\". If you need to use a different set of statuses, should set the `TO_DO_STATUSES` and `DONE_STATUSES` environment variables, which allows comma separated values and is case insensitive (e.g. `TO_DO_STATUSES=To do,Open,pending review` and `DONE_STATUSES=done,resolved,Closed`)\n\n## :electric_plug: Connecting to your Jira instance\n\n### Create an API token\nExtracted from: [Manage API tokens for your Atlassian account](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/)\n\n\u003e You can use an API token to authenticate a script or other process with an Atlassian cloud product. You generate the token from your Atlassian account, then copy and paste it to the script.\n\u003e\n\u003e Steps:\n\u003e 1. Log in to https://id.atlassian.com/manage-profile/security/api-tokens\n\u003e 2. Click Create API token.\n\u003e 3. From the dialog that appears, enter a memorable and concise Label for your token and click Create.\n\u003e 4. Click Copy to clipboard, then paste the token to your script, or elsewhere to save:\n\u003e\n\u003e Notes:\n\u003e * For security reasons it isn't possible to view the token after closing the creation dialog; if necessary, create a new token.\n\u003e * You should store the token securely, just as for any password.\n\n### Set the necessary ENV vars\n```\nJIRA_API_TOKEN=\u003cyour-api-token\u003e\nJIRA_SITE_URL=https://your-domain.atlassian.net\nJIRA_USERNAME=user_email@example.com\n```\n\n\n## :busts_in_silhouette: Managing users\nThere are no web pages for creating or deleting users.\n\nYou can create users with the following command in the `rails console`:\n\n```ruby\nUser.create(first_name: 'First', last_name: 'Last', email: 'admin@example.com', password: 's3cur3_P4ssw0rd#!')\n```\n\nYou can delete users with the following command in the `rails console`:\n\n```ruby\nUser.find_by(email: 'admin@example.com').destroy!\n```\n\n\n## :computer: Development\n### Ruby version\n```\n3.4.1\n```\n\n### Database creation\nYou need to have PostgreSQL installed. You can install it with `brew`, `Postgres.app`, `asdf`, or any other way that works for you.\n\nThen run:\n\n```\nrails db:create\nrails db:migrate\n```\n\n### How to run the test suite\n```\nbundle exec rspec\n```\n\n### How to run the linters\n```\nbundle exec rubocop\nbundle exec brakeman\nbundle exec bundler-audit\n```\n\n\n## :raising_hand: Contributing\nBug reports and pull requests are welcome on GitHub at https://github.com/sebaherrera07/jira-project-estimator.\n\n\n## :ledger: License\nThis software is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebaherrera07%2Fjira-project-estimator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsebaherrera07%2Fjira-project-estimator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsebaherrera07%2Fjira-project-estimator/lists"}