STEP #1

RepositoryMiner

RepositoryMiner (RM) is a Java framework that helps developers and researchers to mining software repositories. With RepositoryMiner, you can easily extract information from a software repository (e.g. Git), such as commits, developers, modifications, source code, and software metrics. All the information’s extracted are stored in the MongoDB for further analysis/mining over these data.

How to run

First of all, we recommend you to install the Git and the latest version of Eclipse IDE. These are not dependencies of any of the projects presented in this tutorial, but will help you go through it. If you are not familiar with MongoDB, we also recommend you to download the Studio3T, that allows a graphic management of the database.

The RM dependencies are: MongoDB 3.2 or higher and Java 7 or higher. After install these dependencies and start the MongoDB service.

Due the number of features of RM, we will not discuss any major configurations here, for more informations, please go check our repository. So, to keep this simple for you, we provided a Eclipse project available at link After downloaded the project you should import it into the Eclipse.

This project has only 2 classes that interest. The first, called LocalMain, which will perform the local repository analysis. We already put into the project the JUnit4 and Ant repositories along with other needed data to run all the modules, like jars and eXcomment CSVs. To run the local analysis just run the LocalMain class. You can also change the database updating the static variable DB_NAME. To not run a module, just comment its line, the only line you should not comment is the one refering the RM Core module (line 23).

The second class, called RemoteMain, will perform the remote analysis, connecting with the github, and analysing issues and milestones. This module can take a while to execute, the execution time will depends on your type of account at the github and the amount of data in the repository. Due the big number of issues and request-response delay, this code can take a few minutes to execute. Before execute it, the first thing to do is to set your credentials. If you do not have a account at GitHub you can create one in link To set your credentials just modify the static variables GITHUB_USER and GITHUB_PASSWD. GITHUB_USER refers to you username or email registered in the service. GITHUB_PASSWD refers to you password or security token registered at the service. After modify this informations you just run the class. It is worth pointing out that we do not store your credentials, after the session has been established with the GitHub, we clear your data from the system. You can also change the database updating the static variable DB_NAME, just make sure that is the same name defined in the LocalMain.

To keep the project smaller and as simple as possible to access and execute, we just run the RM CheckStyle and RM Findbugs modules for the version r4.12 of JUnit4 project. To replicate our feasibility study, just comment the lines 29 and 32 at LocalMain. We also recommend to use an empty database. If you already run the full example, please just drop the recently created database or change to a new one. The tool creates the databases automatically for you if needed. Also, due the fact that the Ant repository is a mirror, the remote analysis was only performed to JUnit4.

That is all, with your database filled you now can execute the VisminerTD project. To do so, please check the next steps.

Note: If you do not prefer to run the RM to fill the the database, you also can download the database used to the feasibility study here and import to your MongoDB server.

Step #2

VisminerTD Service

This is the REST service of the VisminerTD project. The main objective of this service is to provide an interface between the RepositoryMiner and VisminerTD project.

How to run

Install NodeJS

To clone te repository execute in the terminal:

  1. git clone https://github.com/visminer/visminertd-service.git
  2. cd visminertd-service

To install the dependencies execute in the terminal:

  1. npm install

To start the server execute in the terminal:

  1. npm start

The API will be available on http://localhost:3000/api

To change the MongoDB URL and server port just update the variables PORT and MONGO_URL, respectively, in the config.js file at the root of the project. By default, the configuration file assumes that database that you filled with RM is called ‘test_database’, which is the same used in the RM sample at step 1, if you changed the DB_NAME variable or you are using a different database name, please change database name in the config file to it.

After this step please go to the next and last step.

Step #3

VisminerTD Client

This is the REST client of the VisminerTD project. The main objective of this client is to provide an interface between the RepositoryMiner and VisminerTD project.

How to run

Install Angular 5

To clone te repository execute in the terminal:

  1. git clone https://github.com/visminer/visminertd-client.git
  2. cd visminertd-client

To install the dependencies execute in the terminal:

  1. npm install

To start the server execute in the terminal:

  1. ng serve

After all this steps the client will be available at http://localhost:4200/, just access this address from your web browser (Google Chrome is recommended) to use the VisminerTD.