All Projects → dzhw → metadatamanagement

dzhw / metadatamanagement

Licence: AGPL-3.0 License
Metadatamanagement (MDM) - Data Search for Higher Education Research and Science Studies

Programming Languages

java
68154 projects - #9 most used programming language
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
RobotFramework
109 projects
SCSS
7915 projects
HTML
75241 projects

Projects that are alternatives of or similar to metadatamanagement

angular-material-boilerplate
A straightforward and well structured boilerplate based on Google's Angular Material project.
Stars: ✭ 28 (+33.33%)
Mutual labels:  angularjs, jasmine, angular-material, karma
Company Structure
A company structure with a list of projects and their users
Stars: ✭ 48 (+128.57%)
Mutual labels:  jasmine, angular-material, karma, junit
Blog Tutorials
⭐️ Codebase for the tutorials on my blog about Java, Spring Boot, AWS, Kotlin and Testing
Stars: ✭ 257 (+1123.81%)
Mutual labels:  maven, junit, spring-security
Springbootangularhtml5
♨️ Spring Boot 2 + Angular 11 + HTML5 router mode + HTTP interceptor + Lazy loaded modules
Stars: ✭ 89 (+323.81%)
Mutual labels:  jasmine, maven, karma
Angularconcepts
Key Angular Concepts using Latest Angular version 5
Stars: ✭ 31 (+47.62%)
Mutual labels:  jasmine, angular-material, karma
Angularjs Webpack Starter
🚀 A modern frontend setup for AngularJS projects using NPM, TypeScript and Webpack.
Stars: ✭ 173 (+723.81%)
Mutual labels:  angularjs, jasmine, karma
project-tracking-system-backend-app
Enterprise project tracker, tracks commits done by employees after getting assigned to a couple of projects by their managers
Stars: ✭ 62 (+195.24%)
Mutual labels:  maven, spring-security
testing-angular-applications
Project for the Testing Angular Applications book
Stars: ✭ 99 (+371.43%)
Mutual labels:  jasmine, karma
angular-spa-demo
Demo code for a Single Page Application using AngularJS
Stars: ✭ 20 (-4.76%)
Mutual labels:  angularjs, jasmine
boomerang
Easy website for your GDG Chapter
Stars: ✭ 74 (+252.38%)
Mutual labels:  angularjs, angular-material
j8spec
Library that allows tests written in Java to follow the BDD style introduced by RSpec and Jasmine.
Stars: ✭ 45 (+114.29%)
Mutual labels:  jasmine, junit
faketime
Fake currentTimeMillis() without class loader hacks
Stars: ✭ 100 (+376.19%)
Mutual labels:  maven, junit
maven-settings-action
This action setup maven settings.xml
Stars: ✭ 39 (+85.71%)
Mutual labels:  maven, github-actions
actions-js-build
GitHub Actions for running Javascript build tools and committing file changes
Stars: ✭ 46 (+119.05%)
Mutual labels:  grunt, github-actions
angular-admin-panel
An Angular Admin boilerplate to quickly scaffold any large scale enterprise application.
Stars: ✭ 18 (-14.29%)
Mutual labels:  angularjs, karma
brush
An amazing scaffolding for developing database-driven websites, applications and APIs. Built on Laravel Lumen Framework, MySQL and Angular.
Stars: ✭ 23 (+9.52%)
Mutual labels:  angularjs, angular-material
maven-settings-xml-action
Github Action to create maven settings (~/.m2/settings.xml)
Stars: ✭ 48 (+128.57%)
Mutual labels:  maven, github-actions
generator-speedseed
Oriented to components, allow create/choice template, multiple configuration with easy maintenance
Stars: ✭ 13 (-38.1%)
Mutual labels:  jasmine, karma
spring-boot-security-oauth2-google
Microservice using OAuth 2.0 and OpenID Connect to authenticate into Google and get information to a user.
Stars: ✭ 75 (+257.14%)
Mutual labels:  angularjs, spring-security
materialdrive
Google Drive with Angular Material
Stars: ✭ 43 (+104.76%)
Mutual labels:  angularjs, angular-material

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! (sdk install java 15.0.2.hs-adpt)
  2. Maven: You need to install maven 3.6.1 or above on your system. On Ubuntu you should use SDKMAN! (sdk install maven)
  3. Node.js: Node.js 14 and npm (coming with node.js) are required as well. On Ubuntu you should install node using NVM (nvm install v14)

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. However, running it with docker is preferred.
  2. Elasticsearch (7.12.1): Elasticsearch must be running on its default port. You can download it from here. However running it with docker is preferred.

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. MailDev will show all locally sent email on 8081 and the identity-provider can be setup on port 8082.

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

You can get a MongoDB dump and restore it locally:

wget https://metadatamanagement-public.s3.eu-central-1.amazonaws.com/20210216_metadatamanagement.zip
unzip 20210216_metadatamanagement.zip
mongorestore ./metadatamanagement --db=metadatamanagement

You will need to setup your ~/.m2/settings.xml so that maven can download a dependency from Github:

 <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                        http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
      <server>
        <id>github</id>
        <username>${GITHUB_USERNAME}</username>
        <password>${GITHUB_TOKEN}</password>
      </server>
    </servers>
  </settings>

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 -Pdev clean verify

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 run the backend on your machine for the first time or you have restored a mongodb dump then you need to setup the elasticsearch indices. Therefore go to http://localhost:8080/de/health and sign in with localuser and password herlichwillkommen. Then click the red button 'reindex'. Reindexing can take up to 1 hour.

In order for all external services to work on your local machine, you need to set the following environment variables:

DARA_ENDPOINT=http://labs.da-ra.de/dara/
DARA_USERNAME={see s3://metadatamanagement-private/sensitive_variables.tf}
DARA_PASSWORD={see s3://metadatamanagement-private/sensitive_variables.tf}

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.

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].