Review your teams Jira work log with a python dashboard
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
This project was made as an inhouse improvement for making a publicly viewed dashboard that shows team engagements and what is being curated inside the production environment. It uses Python as the base environment making use of the plotly dash framework for hosting plotly enabled dashboards. The dashboard provides users with acces to donwloading all the tickets or specified tickets from Jira Cloud based on the entered JQL. The dashboards presents with an interactive data table for viewing the results from the JQL, plus a summary of the Estimates and Utilization of the work logged. An overall graphs shows all the users with there estimates and utilization in a bar graph with more graphs and individual person view available from the drop down. A teamwise segregation is also availabe at the end for which there first needs to be an excel present with all the team members name and there department.
This project uses Python, more specifically it uses the Plotly/Dash Framework for making web apps using integrated plotly graphs.
The ReadMe documents provides users with a basic introduction to setting up the requirements and get the project running and how improvements can be added.
Things you need to know and have before executing the project on your local environment.
- Python (This project was made and tested on Python 3.9, theoratically this should work on anything greater than Python 2.*).
- Have a basic understanding of Python's Plotly Dash framework.
- Python Jira library
- Python Pandas library
- Basic level HTML and CSS
- A Jira cloud account with an API token
- Install and setup Python environment
- Setup your Python code with a connection to your organizations Jira cloud. Log in to your Jira account and get a free API Key/token at Atlassian Support
- Install all the dependencies from the reqiurements file provided
pip install -r requirements.txt
The source code is available for adusting to your own need, besides that to use as is remeber to enter your own Atlassian email id and the API key obtained from the Jira cloud account. Replace the holders with your own email and token. After that the JQL needs to be customized to obtained results relevant to one's need. The code itself will analyse the results and prepare the results from the data retrieved. To get a teamwise segregated result an excel needs to be prepared (default name used in the project is Members.xlsx) and kept along with the app.py file which holds the value in the following format:
- Team
- Assignee
- Estimate
- Utilization
- Start Date
- End Date
Where Team is the department of the team member, Assignee holds all the names, Estimate has the default allocation time (initially to be filled with 0), Utilization has the calculated time spent (initially to be filled with 0), and Start and End Date are placeholders for the dataframe to be loaded correctly these can be left or regardless of the initial value these will be ovreridden.
Adjust the sliding date range to your need and the JQL entered will retrieve tickets back to that number of days (default is 2 weeks).
All the tickets retrieved will be displayed in a data table.
A graph underneath the data table will show the data retrived in a bar graph by default, but can be customized from the drop down available and team members names can be individually chosen from another drop down.
Initially the dashboard supports Line graph, bar graph, bubble graph and heatmap.
If the
Members.xlsx
excel file is created then the distributed pie chart
will be dispalyed.
Work log adjustment made the program a lot slower than intended. Ususally 624 tickets were retrieved and processed in under 10 sec with a complexity of O(n),
but since the retrieving a work log brings in the whole time logged rather than just the work that was logged in the data range provided jira.worklog was used to get the worklog list and traverse manually.
This increased the complexity to O(n*m) taking around 264 sec upto 4-5 mins to retrive and process the average of 620 tickets.
The flow of the application can be observed in the flow chart described above. The employee list and leaves are a inhouse dependency can be opted out or adjusted accordingly.
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Thanks for visiting 💚
Distributed under the MIT License. See LICENSE
for more information.