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
Geospatial Data Visualization using PyGMT

Example script to visualize topographic data, earthquake data, and tomographic data on a map

Utpal Kumar 2 Jul 30, 2022
A deceptively simple plotting library for Streamlit

🍅 Plost A deceptively simple plotting library for Streamlit. Because you've been writing plots wrong all this time. Getting started pip install plost

Thiago Teixeira 192 Dec 29, 2022
Shaded 😎 quantile plots

shadyquant 😎 This python package allows you to quantile and plot lines where you have multiple samples, typically for visualizing uncertainty. Your d

Mehrad Ansari 13 Sep 29, 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
Pretty Confusion Matrix

Pretty Confusion Matrix Why pretty confusion matrix? We can make confusion matrix by using matplotlib. However it is not so pretty. I want to make con

Junseo Ko 5 Nov 22, 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
Define fortify and autoplot functions to allow ggplot2 to handle some popular R packages.

ggfortify This package offers fortify and autoplot functions to allow automatic ggplot2 to visualize statistical result of popular R packages. Check o

Sinhrks 504 Dec 23, 2022
A grammar of graphics for Python

plotnine Latest Release License DOI Build Status Coverage Documentation plotnine is an implementation of a grammar of graphics in Python, it is based

Hassan Kibirige 3.3k Jan 01, 2023
This project is created to visualize the system statistics such as memory usage, CPU usage, memory accessible by process and much more using Kibana Dashboard with Elasticsearch.

System Stats Visualizer This project is created to visualize the system statistics such as memory usage, CPU usage, memory accessible by process and m

Vishal Teotia 5 Feb 06, 2022
✅ Today I Learn

Today I Learn EDA numpy_100ex numpy_0~10 airline_satisfaction_prediction BERT_naver_movie_classification NLP_prepare NLP_Tweet_Emotion_Recognition tex

Yeonghoo_Ahn 3 Dec 15, 2022
Generate a 3D Skyline in STL format and a OpenSCAD file from Gitlab contributions

Your Gitlab's contributions in a 3D Skyline gitlab-skyline is a Python command to generate a skyline figure from Gitlab contributions as Github did at

Félix Gómez 70 Dec 22, 2022
Visualization Data Drug in thailand during 2014 to 2020

Visualization Data Drug in thailand during 2014 to 2020 Data sorce from ข้อมูลเปิดภาครัฐ สำนักงาน ป.ป.ส Inttroducing program Using tkinter module for

Narongkorn 1 Jan 05, 2022
Piglet-shaders - PoC of custom shaders for Piglet

Piglet custom shader PoC This is a PoC for compiling Piglet fragment shaders usi

6 Mar 10, 2022
Fastest Gephi's ForceAtlas2 graph layout algorithm implemented for Python and NetworkX

ForceAtlas2 for Python A port of Gephi's Force Atlas 2 layout algorithm to Python 2 and Python 3 (with a wrapper for NetworkX and igraph). This is the

Bhargav Chippada 227 Jan 05, 2023
Scientific measurement library for instruments, experiments, and live-plotting

PyMeasure scientific package PyMeasure makes scientific measurements easy to set up and run. The package contains a repository of instrument classes a

PyMeasure 445 Jan 04, 2023
Joyplots in Python with matplotlib & pandas :chart_with_upwards_trend:

JoyPy JoyPy is a one-function Python package based on matplotlib + pandas with a single purpose: drawing joyplots (a.k.a. ridgeline plots). The code f

Leonardo Taccari 462 Jan 02, 2023
Massively parallel self-organizing maps: accelerate training on multicore CPUs, GPUs, and clusters

Somoclu Somoclu is a massively parallel implementation of self-organizing maps. It exploits multicore CPUs, it is able to rely on MPI for distributing

Peter Wittek 239 Nov 10, 2022
A GUI for Pandas DataFrames

About Demo Installation Usage Features More Info About PandasGUI is a GUI for viewing, plotting and analyzing Pandas DataFrames. Demo Installation Ins

Adam Rose 2.8k Dec 24, 2022
Displaying plot of death rates from past years in Poland. Data source from these years is in readme

Average-Death-Rate Displaying plot of death rates from past years in Poland The goal collect the data from a CSV file count the ADR (Average Death Rat

Oliwier Szymański 0 Sep 12, 2021
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