Skip to content
This repository has been archived by the owner on Jun 10, 2023. It is now read-only.

F. Scippacercola e E. Battista #2

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

scippacercola
Copy link

Issue #314

Anpr-github-metrics is a JS client-side application that shows metrics on Issue Trackers, using a processing microservice in the backed.

  • GUI Extensibility The JS application is based on Vue and is easily extensible for adding new plots and reports to the users.
  • Virtualized environment The application communicates with a backend microservice (Dockerized on-the-go), to guarantee a stable and easy-to-set environment.
  • Standard communication The communication uses a standard REST interface based on Swagger (See Swagger YAML Specification), to allow the system maintanability.
  • Powerful frameworks The microservice runs in a Java SE Virtual Machine (it is not required a Java EE!) and exploites the services of Spring and Spring Boot.
  • Maintainability and Extensibility The microservice adopts a compile-time plugin architecture:
    1. Currently implements analysis on GitHub, but can be extended to other issue tracker (e.g. BugZilla) in moments!.
    2. New plugins for computing new metrics can be easily added at compile-time and registered to the microservice.
  • Designed with performance in mind The microservice uses a high-concurrent local time-cache (by using Google Guava Cache and Striped Locks) to improve the LRU queries. The caching is completely transparent to the plugins! (See how transparent caching has been implemented)
  • Testability by design The application exploits strategies and design pattern to improve testability (unit and integration) preferring Inversion Of Control, Builders, Fluent APIs, and :over all: Readable code!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant