The Innometrics application focuses on the collection of various process-related metrics in software development. Metrics such as tasks performed by the user, and the time and number of resources used to perform the activity used in a project, all metrics are stored locally. The main principles of the project are scalability, fault tolerance and adaptability to new requirements.
The container diagram below shows the high-level shape of the software architecture and how responsibilities are distributed across it. It also shows the major technology choices and how the containers communicate with one another.
In order to provide a system with such capabilities, a backend based on microservices has been developed. The backend consists of a number of specialised services, each responsible for a different part of the system, all communicating via a well-defined API. The backend schema is provided below
Backend consist of 5 microservices:
This is a component specialised in authenticating and authorising users, as well as generating and validating the tokens needed to process each request handled by the different services within the system. The JSON Web Token technology is used for this purpose.
This service provides the functionalities that allow the administrator to make configurations within the system, such as user and role administration, and configure the rate with which the data analysis activity is executed.
The Data Collection API provides a communication interface to the various data collection modules. It is the entry point for the request. The Rest API service validates the requests.
To be able to extract information on the collected data, a process will be developed that will be responsible for carrying out the data transformations that are necessary to carry these data from a scheme concerning an information model more suitable for end users.
The agent-gateway service focuses on metrics aggregation and storage. It is an automatic data transformation module, which takes the raw collected data and transforms them to perform an analysis process. It aims not to affect the performance of the transactional database during data processing.
In the frontend part we have some data structures, such as company, agent (integration), and GQM model.
Agent is a service collecting data about user behaviour on predefined metrics.
Company creates a company where a user can connect monitoring of agent metrics, as well as add team members.
To create a connection between agents and companies there is an integration service. One integration can have several metrics on how to obtain data.
GQM helps to estimate which methods to use in integration based on user goal.
-
API (Access readable format by pasting
documentation.yaml
data to https://editor.swagger.io) -
Here you can read about PRIVACY NOTICE of Innometrics system.
-
Here you can find DEMO for 2023
Here you can read the instructions for local running, automated deployment, and sonarcloud analysis.
Here you can find the instructions for frontend.