Sprint planner considering JIRA issues and google calendar meetings schedule.

Overview

Sprint planner

Sprint planner is a Python script for planning your Jira tasks based on your calendar availability.

Installation

Use the package manager pip to install requirements.

python3 -m venv .venv
python3 -m pip install -r requirements.txt

For Google Calendar integration:

  1. Create Google Cloud Platform project with the Google Calendar API enabled. To create a project and enable an API, refer to Create a project and enable the API
  2. Create authorization credentials for a desktop application. To learn how to create credentials for a desktop application, refer to Create credentials.
  3. Save file with credentials as credentials.json in main project folder.

For Jira integration:

Set JIRA_TOKEN, JIRA_SERVER , JIRA_USER with proper values. See Environment variables section for more details.

Usage

Plan sprint work based on JIRA tickets and available calendar time

It generates sprint plan based on your calendar and JIRA tickets.

python3 plan_sprint.py $env_file

$env_file is optional parameter to be used if there is another path to env file than default .env

Optimise focus time based on your calendar

It generates optimised list of workload you can do, without being distracted by any meeting during an issue work.

python3 optimise_focus_time.py $env_file

$env_file is optional parameter to be used if there is another path to env file than default .env

Known issues

  • problems with GCal events which lasts more than one day
  • problems might occurs if Google Calendar events starts before work hours or end after work hours

Environment variables

Jira

  • JIRA_TOKEN - User authorization token, can be generated here.
  • JIRA_SERVER - Your Jira server name i.e. https://organization.atlassian.net/.
  • JIRA_USER - Your user email.
  • JIRA_PROJECT - Project ID to fill default JQL query and to get start/end dates from current sprint.
  • JIRA_ESTIMATE_FIELD - Name of the field with estimation points, default value: timeoriginalestimate.
  • JIRA_ISSUES_JQL - Custom JQL query for fetching issues from Jira.
  • JIRA_PRIORITY_ORDER - Set to DESC if your most important tasks has greater priority id than less important ones.

Google

  • GOOGLE_CALENDAR_ID - ID of Google Calendar you want to use, default set to primary
  • GOOGLE_ATTENDEE_EMAIL - Email address of user to check if event is accepted for them. Default value None which means that all events will be loaded.

Calendar parameters

  • WORKING_HOURS_FROM - Your start work hour, default value 9.
  • WORKING_HOURS_TO - Your end work hour, default value 17.
  • WORKING_DAYS_START_WEEKDAY - First day of working week, default value 0 which means Monday.
  • WORKING_DAYS_END_WEEKDAY - Last day of working week, default value 5 which means Friday.
  • WITH_BREAK - Include break timeslot each day. Default value True
  • BREAK_TIME - Length of break in minutes. Default value 30
  • BREAK_AFTER - Minimum hour in day for the break. Default value 13

Algorithm parameters

  • TIME_PER_ESTIMATION_POINT - How long it should take to do one estimation point. Default value None which means that value will be counted proportionally to free time.
  • ALGORITHM - Possible values: NAIVE_GREEDY, NAIVE_GREEDY_WITH_SPLIT, Default value: NAIVE_GREEDY_WITH_SPLIT
  • MIN_CONSIDERABLE_SLOT_TIME - Dont plan work for slots less than MIN_CONSIDERABLE_SLOT_TIME minutes. Defaults to 0

Focus optimisation parameters

  • FOCUS_TIME_CALENDAR_START - Start date for focus optimisation in %Y-%m-%dT%H:%M:%S.%fZ format (i.e. 2021-12-10T00:00:00.000Z)
  • FOCUS_TIME_CALENDAR_END - End date for focus optimisation in %Y-%m-%dT%H:%M:%S.%fZ format (i.e. 2021-12-10T00:00:00.000Z)
  • FOCUS_TIME_STORY_POINTS_CAPACITY - Total Story Points to use in range

Future improvements

  • Introduce more complex algorithms to plan the sprint
  • Support for planning multiple developers (whole team) at once
  • Consider time cost for regaining focus after each meeting

License

MIT

Owner
Apptension
We are a fellow custom software development company for Startups, Investors and Agencies.
Apptension
A research of IT labor market based especially on hh.ru. Salaries, rate of technologies and etc.

hh_ru_research Проект реализован в учебных целях анализа рынка труда, в особенности по hh.ru Input data В качестве входных данных используются сериали

3 Sep 07, 2022
This plugin plots the time you spent on a tag as a histogram.

This plugin plots the time you spent on a tag as a histogram.

Tom Dörr 7 Sep 09, 2022
`charts.css.py` brings `charts.css` to Python. Online documentation and samples is available at the link below.

charts.css.py charts.css.py provides a python API to convert your 2-dimension data lists into html snippet, which will be rendered into charts by CSS,

Ray Luo 3 Sep 23, 2021
JupyterHub extension for ContainDS Dashboards

ContainDS Dashboards for JupyterHub A Dashboard publishing solution for Data Science teams to share results with decision makers. Run a private on-pre

Ideonate 179 Nov 29, 2022
This is a Boids Simulation, written in Python with Pygame.

PyNBoids A Python Boids Simulation This is a Boids simulation, written in Python3, with Pygame2 and NumPy. To use: Save the pynboids_sp.py file (and n

Nik 17 Dec 18, 2022
Automatic data visualization in atom with the nteract data-explorer

Data Explorer Interactively explore your data directly in atom with hydrogen! The nteract data-explorer provides automatic data visualization, so you

Ben Russert 65 Dec 01, 2022
A library for bridging Python and HTML/Javascript (via Svelte) for creating interactive visualizations

A library for bridging Python and HTML/Javascript (via Svelte) for creating interactive visualizations

Anthropic 98 Dec 27, 2022
Here are my graphs for hw_02

Let's Have A Look At Some Graphs! Graph 1: State Mentions in Congressperson's Tweets on 10/01/2017 The graph below uses this data set to demonstrate h

7 Sep 02, 2022
Rick and Morty Data Visualization with python

Rick and Morty Data Visualization For this project I looked at data for the TV show Rick and Morty Number of Episodes at a Certain Location Here is th

7 Aug 29, 2022
web application for flight log analysis & review

Flight Review This is a web application for flight log analysis. It allows users to upload ULog flight logs, and analyze them through the browser. It

PX4 Drone Autopilot 145 Dec 20, 2022
Learn Basic to advanced level Data visualisation techniques from this Repository

Data visualisation Hey, You can learn Basic to advanced level Data visualisation techniques from this Repository. Data visualization is the graphic re

Shashank dwivedi 16 Jan 03, 2023
A program that analyzes data from inertia measurement units installed in aircraft and generates g-exceedance curves.

A program that analyzes data from inertia measurement units installed in aircraft and generates g-exceedance curves.

Pooya 1 Dec 02, 2021
Scientific Visualization: Python + Matplotlib

An open access book on scientific visualization using python and matplotlib

Nicolas P. Rougier 8.6k Dec 31, 2022
This is a super simple visualization toolbox (script) for transformer attention visualization ✌

Trans_attention_vis This is a super simple visualization toolbox (script) for transformer attention visualization ✌ 1. How to prepare your attention m

Mingyu Wang 3 Jul 09, 2022
The Metabolomics Integrator (MINT) is a post-processing tool for liquid chromatography-mass spectrometry (LCMS) based metabolomics.

MINT (Metabolomics Integrator) The Metabolomics Integrator (MINT) is a post-processing tool for liquid chromatography-mass spectrometry (LCMS) based m

Sören Wacker 0 May 04, 2022
ipyvizzu - Jupyter notebook integration of Vizzu

ipyvizzu - Jupyter notebook integration of Vizzu. Tutorial · Examples · Repository About The Project ipyvizzu is the Jupyter Notebook integration of V

Vizzu 729 Jan 08, 2023
Leyna's Visualizing Data With Python

Leyna's Visualizing Data Below is information on the number of bilingual students in three school districts in Massachusetts. You will also find infor

11 Oct 28, 2021
Backend app for visualizing CANedge log files in Grafana (directly from local disk or S3)

CANedge Grafana Backend - Visualize CAN/LIN Data in Dashboards This project enables easy dashboard visualization of log files from the CANedge CAN/LIN

13 Dec 15, 2022
NumPy and Pandas interface to Big Data

Blaze translates a subset of modified NumPy and Pandas-like syntax to databases and other computing systems. Blaze allows Python users a familiar inte

Blaze 3.1k Jan 01, 2023
Python scripts for plotting audiograms and related data from Interacoustics Equinox audiometer and Otoaccess software.

audiometry Python scripts for plotting audiograms and related data from Interacoustics Equinox 2.0 audiometer and Otoaccess software. Maybe similar sc

Hamilton Lab at UT Austin 2 Jun 15, 2022