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
Mattia Ficarelli 2 Mar 29, 2022
Implementation of SOMs (Self-Organizing Maps) with neighborhood-based map topologies.

py-self-organizing-maps Simple implementation of self-organizing maps (SOMs) A SOM is an unsupervised method for learning a mapping from a discrete ne

Jonas Grebe 6 Nov 22, 2022
Resources for teaching & learning practical data visualization with python.

Practical Data Visualization with Python Overview All views expressed on this site are my own and do not represent the opinions of any entity with whi

Paul Jeffries 98 Sep 24, 2022
a python function to plot a geopandas dataframe

Pretty GeoDataFrame A minimum python function (~60 lines) to draw pretty geodataframe. Based on matplotlib, shapely, descartes. Installation just use

haoming 27 Dec 05, 2022
Fast 1D and 2D histogram functions in Python

About Sometimes you just want to compute simple 1D or 2D histograms with regular bins. Fast. No nonsense. Numpy's histogram functions are versatile, a

Thomas Robitaille 237 Dec 18, 2022
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
A command line tool for visualizing CSV/spreadsheet-like data

PerfPlotter Read data from CSV files using pandas and generate interactive plots using bokeh, which can then be embedded into HTML pages and served by

Gino Mempin 0 Jun 25, 2022
FairLens is an open source Python library for automatically discovering bias and measuring fairness in data

FairLens FairLens is an open source Python library for automatically discovering bias and measuring fairness in data. The package can be used to quick

Synthesized 69 Dec 15, 2022
nptsne is a numpy compatible python binary package that offers a number of APIs for fast tSNE calculation.

nptsne nptsne is a numpy compatible python binary package that offers a number of APIs for fast tSNE calculation and HSNE modelling. For more detail s

Biomedical Visual Analytics Unit LUMC - TU Delft 29 Jul 05, 2022
Easily convert matplotlib plots from Python into interactive Leaflet web maps.

mplleaflet mplleaflet is a Python library that converts a matplotlib plot into a webpage containing a pannable, zoomable Leaflet map. It can also embe

Jacob Wasserman 502 Dec 28, 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
Kglab - an abstraction layer in Python for building knowledge graphs

Graph Data Science: an abstraction layer in Python for building knowledge graphs, integrated with popular graph libraries – atop Pandas, RDFlib, pySHACL, RAPIDS, NetworkX, iGraph, PyVis, pslpython, p

derwen.ai 466 Jan 09, 2023
Simple and lightweight Spotify Overlay written in Python.

Simple Spotify Overlay This is a simple yet powerful Spotify Overlay. About I have been looking for something like this ever since I got Spotify. I th

27 Sep 03, 2022
Comparing USD and GBP Exchange Rates

Currency Data Visualization Comparing USD and GBP Exchange Rates This is a bar graph comparing GBP and USD exchange rates. I chose blue for the UK bec

5 Oct 28, 2021
Python package for hypergraph analysis and visualization.

The HyperNetX library provides classes and methods for the analysis and visualization of complex network data. HyperNetX uses data structures designed to represent set systems containing nested data

Pacific Northwest National Laboratory 304 Dec 27, 2022
Decision Border Visualizer for Classification Algorithms

dbv Decision Border Visualizer for Classification Algorithms Project description A python package for Machine Learning Engineers who want to visualize

Sven Eschlbeck 1 Nov 01, 2021
DataVisualization - The evolution of my arduino and python journey. New level of competence achieved

DataVisualization - The evolution of my arduino and python journey. New level of competence achieved

1 Jan 03, 2022
Statistics and Visualization of acceptance rate, main keyword of CVPR 2021 accepted papers for the main Computer Vision conference (CVPR)

Statistics and Visualization of acceptance rate, main keyword of CVPR 2021 accepted papers for the main Computer Vision conference (CVPR)

Hoseong Lee 78 Aug 23, 2022
Some examples with MatPlotLib library in Python

MatPlotLib Example Some examples with MatPlotLib library in Python Point: Run files only in project's directory About me Full name: Matin Ardestani Ag

Matin Ardestani 4 Mar 29, 2022
ICS-Visualizer is an interactive Industrial Control Systems (ICS) network graph that contains up-to-date ICS metadata

ICS-Visualizer is an interactive Industrial Control Systems (ICS) network graph that contains up-to-date ICS metadata (Name, company, port, user manua

QeeqBox 2 Dec 13, 2021