Fig. 1. represents an overview of how all of these projects communicate, interchange and display information. Each project has his own role, and uses the other projects (maven dependencies, REST calls). As you can see in Fig.1., there are 5 projects where ReaderBench represents the core and it is used by all the others directly (using maven dependency) or indirectly (i.e. ReaderBenchWebsite used ReaderBench indirectly by calling REST Services from ReaderBenchAPI which uses ReaderBench).
ReaderBench represents the core for all other projects and is used by them as a Maven dependency. It is a Maven project, with 8 profiles (global, english, french, spanish, german, italian, dutch, and romanian) – 7 profiles for each of the 7 available languages and one global profile for all languages. The aim of these profiles is to reduce the number of dependencies used (i.e. if you want to do an analysis of english texts you need only the dependencies for english language).
The latest .jar archives of the ReaderBench project are uploaded on Artifactory (http://artifactory.readerbench.com:8081) and used in all other projects as a maven dependency as follows:
For each profile, a .jar archive is uploaded on Artifactory in order to enable users to retrieve the desired maven dependency. All data processing is made available using this project.
The ReaderBenchAPI project represents our web server which provides multiple REST Services. It is built using Maven and uses ReaderBench as a maven dependency. The project uses Grizzly HTTP Server and Jersey for building Java REST Services (JAX-RS).
The ReaderBenchWebsite project is a web application built using Angular 5 and CLI. It calls the REST Services from ReaderBenchAPI for processing data, and displays the information in an user-friendly interface. All information about configuration is presented here: https://git.readerbench.com/
The ReaderBenchExperiments project is a Maven project created for experiments. It uses ReaderBench as a Maven dependency.
The ReaderBenchDesktopClient project is a desktop application written in Java Swing. It uses ReaderBench as a Maven dependency for all required processing.
If you need to work with these projects, here are some details which are good to know:
The first step is to clone the required project/projects from https://git.readerbench.com/;
Each project has his own documentation on GIT which provides details on how to configure the environment;
If you don’t need to add or to change something in the ReaderBench code, you don’t need to clone this project. The maven dependency for this project will be downloaded from Artifactory; thus, you don’t need it in your local environment;
If you want to add or to change something in a project, please create a new branch in git and make the changes there. After you finish your work, a pull request is needed in order to make the merge into master branch. The pull request is created from GIT. After you demand a pull request, someone will review your code, if everything it’s ok then the merge with branch master will be done.
!!! Please keep in mind that you need to merge, from time to time, your branch with master, if your branch life is long. This eliminates multiple conflicts which can be appear, and the chance that your branch will remain behind the master branch.
For more information about git, branches and pull requests, please see this documentation: https://git-scm.com/docs.