Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ulivz/jira
Daily ticket state dashboard for JIRA
https://github.com/ulivz/jira
jira
Last synced: about 2 months ago
JSON representation
Daily ticket state dashboard for JIRA
- Host: GitHub
- URL: https://github.com/ulivz/jira
- Owner: ulivz
- Created: 2018-07-20T06:53:37.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2021-05-27T17:28:16.000Z (over 3 years ago)
- Last Synced: 2024-07-11T02:04:13.861Z (2 months ago)
- Topics: jira
- Language: JavaScript
- Homepage: https://jira.ulivz.com
- Size: 2.43 MB
- Stars: 11
- Watchers: 3
- Forks: 2
- Open Issues: 19
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome - ulivz/jira - Daily ticket state dashboard for JIRA (JavaScript)
README
* [Introduction](#introduction)
* [Features](#features)
* [Architecture](#architecture)
* [API](#api)
* [Test Account](#test-account)
* [Build Setup](#build-setup)
+ [FE only mode](#fe-only-mode)
+ [Full Mode](#full-mode)
+ [Test](#test)
+ [Release](#release)
* [Policy](#policy)## Introduction
[JIRA](https://www.atlassian.com/software/jira) Software is the project management tool for agile teams.
JIRA itself provides a lot of valuable functions,e.g. **Scrum boards**, **Kanban boards**, **Agile reporting** etc. Surely, this project wasn't a duplicated wheel, It implements a small function that JIRA hasn't implemented at present, which I called `State Report`。
`State Report` stems from the needs of international team cooperation. Suppose there are the following scenes: you are the lead of a multinational technical team. You and your technician are in City A, and your demand side (usually a PM or PD) is in City B, which is 8 time zones away from City A. then you will face a problem —— **How to tell the distant colleagues about the latest ticket's state change every day?**. If you use JIRA, you will find that JIRA does not have a page and records a state of ticket at different time points. And then, it's time for the project to come out.
## Features
- Daily ticket's state report based on sprint
- Responsive UI
- Support multiple teams
- Login Integration
- Built-in filters and sorters
- Extensible filters
- Extensible sorters## Architecture
This project follow the standard **separation-of-front-and-backup-end** structure, and uses `Node.js` as the middle layer(BFF).
- FE: `Vue.js`, `vuex`, `iview`
- BFF: `Express`
- API Cache:`LRU-Cache`
- CI: `pm2`## API
This project depends on following JIRA's API, which are configured in [config.json](https://github.com/ulivz/jira/blob/master/api/config/config.json).
API Name | API URL
---|---
login | `auth/1/session`
issue | `api/2/issue/{id}`
issueWithChangelog | `api/2/issue/{id}?expand=changelog`
user | `api/2/user?username={name}`
backlogUrl | `greenhopper/1.0/xboard/plan/backlog/data.json`
sprintList | `greenhopper/1.0/sprintquery/{teamId}`
sprintIssues | `greenhopper/1.0/rapid/charts/scopechangeburndownchart.json`
sprintReport | `greenhopper/1.0/rapid/charts/sprintreport?rapidViewId={teamId}&sprintId={sprintId}`## Test Account
Test accounts are configured in [accounts.json](https://github.com/ulivz/jira/blob/master/api/mock/accounts.json).
Uername | Password
---|---
vue | 123456
username | 123456## Build Setup
It's recommended to use [yarn](https://github.com/yarnpkg/yarn) to manage this project.
### Install Dependencies
```bash
yarn
```### FE only mode
> This mode is specially opened for the convenience of the demo.
```bash
# serve with hot reload at http://localhost:8081
yarn feonly:dev# build for production with minification
yarn feonly:build
```### Full Mode
```bash
# api server at http://localhost:3000
# serve FE with hot reload at http://localhost:8081
yarn dev # equivalent to "yarn dev:fe" & "yarn dev:api"# build for production with minification
yarn build# build for production and view the bundle analyzer report
yarn build --report
```### Test
```bash
# run unit tests
yarn unit# run e2e tests
yarn e2e# run all tests
yarn test
```### Release
> FYI, this is the most primitive CI way, it's recommended to use k8s/docker for continuous integration.
```bash
yarn release # Release first time
yarn ci # Follow-up release
```## Policy
The demo data of this project are all from the real production environment, but all data has been confused in order not to violate the policy.
- All avatars are crawled from the latest [Github Trending](https://github.com/trending).
- All tickets are crawled from [mongodb's JIRA](https://jira.mongodb.org/secure/Dashboard.jspa).
- All names are randomized.