Quality-time is an automated quality system for software development and maintenance. Quality-time collects measurement data from sources such as Gitlab, SonarQube, Jira, Azure DevOps, and OWASP Dependency Check, to provide an overview of the quality of software products and projects. It does so by comparing measurement data with metric targets and informing development teams about the metrics that need improvement actions.
Technically, Quality-time consists of a Mongo database server, an API-server written in Python, a metrics data collector component also written in Python, and a React frontend.
Users can add and configure reports, metrics, and sources (such as SonarQube and Jira) in the frontend. The collector collects metrics data from the configured metric sources. It posts the measurements to the server which in turn stores them in the database. The frontend calls the server to get the reports and the measurements and presents them to the user.
Also see:
Some screenshots to wet your appetite.
Quality-time shows a summary of the projects on its landing page:
For each metric, Quality-time displays the key data:
Users can expand the metrics to see and configure the metric details:
And to manage false positives:
Implemented features so far include:
- Robust data collection (the collector should never fail, even in the face of misconfigured or unavailable sources).
- Measurement history is kept in a database, allowing for time travel.
- Easy report configuration via the UI.
- Multiple reports in one Quality-time instance.
- LDAP-integration.
- Generic false-positive management.
- Metric tags can be used to summarize metrics with the same tag across subjects, e.g. to summarize all security metrics.
- Export of reports to PDF, both via the UI as well as via the API.
We're currently working on:
- Notifications of events, such as metrics turning red, to Microsoft Teams.
- Side-by-side comparison of measurements at different points in time.
For more plans, see the issue tracker.
Quality-time requires Docker and Docker-compose.
Clone this repository:
git clone https://github.com/ICTU/quality-time.git
Build the containers:
docker-compose build
Start the containers:
docker-compose up
The frontend is served at http://localhost. Use username admin
and password admin
to log in.