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
GD-UltraHack - A Mod Menu for Geometry Dash. Specifically a MegahackV5 clone in Python. Only for Windows

GD UltraHack: The Mod Menu that Nobody asked for. This is a mod menu for the gam

zeo 1 Jan 05, 2022
Sentiment Analysis application created with Python and Dash, hosted at socialsentiment.net

Social Sentiment Dash Application Live-streaming sentiment analysis application created with Python and Dash, hosted at SocialSentiment.net. Dash Tuto

Harrison 456 Dec 25, 2022
Bcc2telegraf: An integration that sends ebpf-based bcc histogram metrics to telegraf daemon

bcc2telegraf bcc2telegraf is an integration that sends ebpf-based bcc histogram

Peter Bobrov 2 Feb 17, 2022
flask extension for integration with the awesome pydantic package

Flask-Pydantic Flask extension for integration of the awesome pydantic package with Flask. Installation python3 -m pip install Flask-Pydantic Basics v

249 Jan 06, 2023
100 Days of Code The Complete Python Pro Bootcamp for 2022

100-Day-With-Python 100 Days of Code - The Complete Python Pro Bootcamp for 2022. In this course, I spend with python language over 100 days, and I up

Rajdip Das 8 Jun 22, 2022
Friday Night Funkin - converts a chart from 4/4 time to 6/8 time, or from regular to swing tempo.

Chart to swing converter As seen in https://twitter.com/i_winxd/status/1462220493558366214 A program written in python that converts a chart from 4/4

5 Dec 23, 2022
Sci palettes for matplotlib/seaborn

sci palettes for matplotlib/seaborn Installation python3 -m pip install sci-palettes Usage import seaborn as sns import matplotlib.pyplot as plt impor

Qingdong Su 2 Jun 07, 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
Data Visualizer Web-Application

Viz-It Data Visualizer Web-Application If I ask you where most of the data wrangler looses their time ? It is Data Overview and EDA. Presenting "Viz-I

Sagnik Roy 17 Nov 20, 2022
An intuitive library to add plotting functionality to scikit-learn objects.

Welcome to Scikit-plot Single line functions for detailed visualizations The quickest and easiest way to go from analysis... ...to this. Scikit-plot i

Reiichiro Nakano 2.3k Dec 31, 2022
CLAHE Contrast Limited Adaptive Histogram Equalization

A simple code to process images using contrast limited adaptive histogram equalization. Image processing is becoming a major part of data processig.

Happy N. Monday 4 May 18, 2022
Automatically visualize your pandas dataframe via a single print! 📊 💡

A Python API for Intelligent Visual Discovery Lux is a Python library that facilitate fast and easy data exploration by automating the visualization a

Lux 4.3k Dec 28, 2022
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
Color scales in Python for humans

colorlover Color scales for humans IPython notebook: https://plot.ly/ipython-notebooks/color-scales/ import colorlover as cl from IPython.display impo

Plotly 146 Sep 25, 2022
Simple spectra visualization tool for astronomers

SpecViewer A simple visualization tool for astronomers. Dependencies Python = 3.7.4 PyQt5 = 5.15.4 pyqtgraph == 0.10.0 numpy = 1.19.4 How to use py

5 Oct 07, 2021
JSNAPY example: Validate NAT policies

JSNAPY example: Validate NAT policies Overview This example will show how to use JSNAPy to make sure the expected NAT policy matches are taking place.

Calvin Remsburg 1 Jan 07, 2022
The plottify package is makes matplotlib plots more legible

plottify The plottify package is makes matplotlib plots more legible. It's a thin wrapper around matplotlib that automatically adjusts font sizes, sca

Andy Jones 97 Nov 04, 2022
Learn Data Science with focus on adding value with the most efficient tech stack.

DataScienceWithPython Get started with Data Science with Python An engaging journey to become a Data Scientist with Python TL;DR Download all Jupyter

Learn Python with Rune 110 Dec 22, 2022
matplotlib: plotting with Python

Matplotlib is a comprehensive library for creating static, animated, and interactive visualizations in Python. Check out our home page for more inform

Matplotlib Developers 16.7k Jan 08, 2023
WebApp served by OAK PoE device to visualize various streams, metadata and AI results

DepthAI PoE WebApp | Bootstrap 4 & Vue.js SPA Dashboard Based on dashmin (https:

Luxonis 6 Apr 09, 2022