Skip to content

How to deploy the Strategic Dashboard

Lidia edited this page May 9, 2019 · 41 revisions

Q-Rapids Dashboard is a web application developed in Java. Some data is stored in a PostgreSQL database and some in an Elasticsearch Cluster. It is composed by 4 components:

  • qrapids-dasboard: web application providing all the functionality to the final user
  • qrapids-si_assessment-rest: RESTful service providing strategic indicators assessment using Bayesian Networks instead of an average
  • qrapids-forecast-rest: RESTful service prodiding prediction functionality
  • qrapids-backlog-XXX: RESTful services to export the quality requirements to the specific tools that manage the backlog. For instance qrapids-backlog-openproject is used if the backlog is managed in _OpenProject _or qrapids-backlog-jira if the backlog is managed in Jira.

Requisites

The requisites to deploy Q-Rapids Dashboard are:

  • A web server, e.g. Tomcat
  • Oracle Java JRE
  • PostgreSQL, an open source object-relational database system. The information that you are going to need to configure the connection to the database is: URL and PORT where PostgreSQL is accessible, username, and password
  • Elastic Search
  • R Server
  • PABRE RESTful service, the corresponding version is included in as part of the installation package. The code is available at https://github.com/OpenReqEU/requirement-patterns, you can also follow the instructions shown at section "Running the project with pabre-ws.war" in the README.md to correctly deploy PABRE.

Other Q-Rapids components Required

The data is ingested and analysed by the following components

The quality alerts are generated by

Deployment Steps

The installation package should contain 4 war files and one text file containing some R scripts:

  • qrapids-dashboard-X.Y.X.war
  • qrapids-forescast-rest-X.Y.X.war
  • qrapids-si_assessment-X.Y.X.war
  • TimeSeriesFunctions-X.Y.X.R
  • pabre-ws.war

The corresponding qrapids-backlog-XXX.war (if need) is available in the corresponding repository.

Step 1: Deploy Strategic Indicators Assessment RESTful services

  1. Deploy qrapids-si_assessment-X.Y.X.war in your Web Server

Step 2: Deploy Forecasting RESTful services

  1. Deploy qrapids-forescast-rest-X.Y.X.war in your Web Server
  2. Copy TimeSeriesFunctions-X.Y.X.R to a accesible folder (RSCRIP_FOLDER)
  3. Configure forecasting Rserve.host=<RSERVER IP>
    Rserve.port=<RSERVER PORT>
    Rscripts.location=<RSCRIP_FOLDER>/TimeSeriesFunctions-X.Y.X.R
  4. Installing some R packages, from an R console
    >install.packages("Rserve")
    >install.packages("forecast")
    >install.packages("elastic")
    >install.packages("prophet")
    >install.packages("forecastHybrid")

The Rserve is already prepared to be run:
> library(Rserve)
> Rserve()

By default, Rserve will start the server listening on the 6311 port. You can change it if you prefer to use another port with the parameter “port”:
>Rserve(port=6312)

Step 3: Deploy Backlog RESTful services

  1. Deploy the corresponding qrapids-backlog-XXX.war in your Web Server

Step 4: Deploy PABRE RESTful services

  1. Deploy pabre-ws.war in your Web Server
  2. Import the QR patterns catalogue to PABRE

Step 4: Deploy Dashboard web application

  1. Create a database in the PostgreSQL database system:
    CREATE DATABASE qrdashboard;
  2. Deploy the qrapids-dashboard-X.Y.X.war in your Web Server
  3. Configure the dashboard. Details about the dashboard configuration are in Dashboard Configuration file

Step 5: Check ElasticSerach indexes

Check if you have the indexes for each product you have configured for the qrapids-eval. If the strategic_indicators indexes are missing, you must create them manually with the following statement:

PUT strategic_indicators.default
{
    "aliases": {},
    "mappings": {
      "strategic_indicators": {
        "properties": {
          "datasource": {
            "type": "keyword"
          },
          "description": {
            "type": "text"
          },
          "evaluationDate": {
            "type": "date"
          },
          "strategic_indicator":{
            "type": "keyword"
          },
          "name": {
            "type": "keyword"
          },
          "project": {
            "type": "keyword"
          },
          "value": {
            "type": "double"
          }
        }
      }
    }
}

Detailed information aobut the Elasticsearch indexes accessed by the dashboard in Elasticsearch Indexes

Clone this wiki locally