https://github.com/btbytes/silkhomeassignment
Silk Home Assignment
https://github.com/btbytes/silkhomeassignment
Last synced: 9 months ago
JSON representation
Silk Home Assignment
- Host: GitHub
- URL: https://github.com/btbytes/silkhomeassignment
- Owner: btbytes
- Created: 2023-05-17T21:32:54.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2023-05-25T02:36:00.000Z (almost 3 years ago)
- Last Synced: 2025-03-25T03:53:36.747Z (about 1 year ago)
- Language: Python
- Size: 172 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Silk Home Assignment
## Setup
This application uses [python-poetry](https://python-poetry.org) for packaging, and dependency management.
Make sure you have it installed.
To install the application dependencies, run `poetry install` in the root of this project.
To activate the python environment with all the dependencies installed, run `poetry shell`.
All subsequent commands are assumed to be run inside that environment.
Dependencies are captured in the `pyproject.toml` file. Some interesting ones are:
* Python 3.11 - this is the version I use on my dev laptop.
* `atlassian-python-api` for interacting with Jira.
* `lorem` for generating random strings.
* `toml` for configuration format.
* `tinydb` for storing json as a db, since it claims to have API compatibility with Mongo, and for this small exercise, it is good enough.
* `pandas` and `matplotlib` for data manipulation and plotting.
## Running
All the programs have sensible defaults, and you have to set only the configuration. Copy `config.toml.sample`
to `config.toml` and set the values. The `project` key corresponds to the Jira Project.
The three functionalities are provided as three script entry points:
* [x] `poetry run gentickets` -- to create the the random tickets
* [x] `poetry run populatedb` -- to download the high priority tickets
* [x] `poetry run plottickets` -- to generate plot of high priority tickets/min
## Output
See [output/issues.json](output/issues.json) for a dump of the Jira issues my program created.
Plotted output
