Giter Club home page Giter Club logo

innometrics-info's Introduction

visitors . GitHub issues Website GitHub forks GitHub last commit

Innometrics

Project description

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.

container_diagram.png

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

c4.jpg

Backend consist of 5 microservices:

Authorization service

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.

Configuration service

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.

Rest-API service

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.

Activities-collector services

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.

Agent-gateway service

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.

Frontend

In the frontend part we have some data structures, such as company, agent (integration), and GQM model.

Agent

Agent is a service collecting data about user behaviour on predefined metrics.

Company

Company creates a company where a user can connect monitoring of agent metrics, as well as add team members.

Integration (Agent x Company)

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

GQM helps to estimate which methods to use in integration based on user goal.

Links

Installation

Here you can read the instructions for local running, automated deployment, and sonarcloud analysis.

Here you can find the instructions for frontend.

innometrics-info's People

Contributors

ease-ln avatar

Watchers

Vladimir avatar Xavier Vasquez avatar  avatar Dragos Strugar avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.