Skip to content
development
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Build Status Documentation Status Known Backend VulnerabilitiesKnown Frontend VulnerabilitiescodecovMergify Status DOI

Sauce Test Status

Metadatamanagement (MDM)

The MDM holds the metadata of the data packages which are available in our Research Data Center FDZ. It enables researchers to browse our data packages before signing a contract for using the data.

Developing the MDM system

Please checkout the development branch before starting to code and create a new branch starting with your username followed by the backlog items issue number you will be working on:

git checkout development
git checkout -b rreitmann/issue1234

Before you can build this project, you must install and configure the following dependencies on your machine:

  1. Java: You need to install java 15 sdk on your system. On Ubuntu you should use SDKMAN!
  2. Maven: You need to install maven 3.6.1 or above on your system. On Ubuntu you should use SDKMAN!
  3. Node.js: Node.js 14 and npm (coming with node.js) are required as well. On Ubuntu you should install node using NVM

We use Grunt as our client build system. Install the grunt command-line tool globally with:

npm install -g grunt-cli

On Windows, patch.exe has to exist in the PATH. It is distributed as part of git bash, or can be downloaded manually from GnuWin32.

Running on your local machine

Before starting the app on your local machine you need to start the following Document Stores:

  1. Mongodb: Mongodb must be running on the default port, on ubuntu you should install it from here
  2. Elasticsearch (7.12.1): Elasticsearch must be running on its default port. You can download it from here

Make sure that you have read-write-access on the data directory (in your project directory) for Elasticsearch.

Alternatively you can run

docker-compose up
# for later use once the containers are created
docker-compose start

to start all services the metadatamanagement depends on. Mongodb and Elasticsearch will be listening on its default ports.

In order to have all java dependencies for the server and all nodejs dependencies for the client and in order to build everything, simply run (and lean back for a while):

mvn clean install

Run the following commands in two separate terminals to create a blissful development experience where your browser auto-refreshes when files change on your hard drive.

mvn
grunt

If you want to build a docker image for the metadatamanagement server app you can run

mvn deploy

This image can be run with all its dependent containers by

docker-compose -f docker-compose.yml -f docker-compose-app.yml up -d --build

Building for the dev environment

Our CI pipleline will do some automatic checks and tests and it will optimize the metadatamanagement client for the dev environment. So before pushing to Github in order to be sure you won't fail the build you should run:

mvn -Pdev clean verify

This will concatenate and minify CSS and JavaScript files using grunt. It will also modify the index.html so it references these new files.

We test our project continuously with the Robot Framework. Test Developers can get further info here.

Technical Documentation

Domain Model

The following picture models the relationships and attributes of the domain objects which are managed by our system. Domain Model

Javadoc for our domain model can be found here.

Architecture

A (german) overview of the Systemarchitecture can be found here.

The following picture gives a rough overview: Architecture

This project is currently built and deployed to AWS Fargate by Github Actions (not TravisCI anymore as shown in the picture above). You can test the latest version on our dev stage.

Big Thanks

Cross-browser Testing Platform and Open Source ❤️ Provided by Sauce Labs

Continuous Integration Platform provided by Github Actions

forthebadge forthebadge forthebadge forthebadge forthebadge