A curation interface for the data produced by the Ingestion project.
For setup and development information, take a look at the wiki.
It uses NodeJS to query data from Cassandra and the file system and serves it as a REST endpoint,
as well as React, Redux and MaterialUI to create a modern frontend for this data.
This project uses the yarn package manager instead of npm. You can install it by executing:
npm install -g yarn
or by using brew on macOS:
brew update
brew install yarn
After you installed yarn you can setup the project by running yarn
in the root directory.
To start the Curation frontend as well as its backend, use:
npm install
npm build:dll
npm run dev
To start the frontend without its backend using webpack-dev-server, use:
npm run dev-server
To build the production version of the interface, use:
npm run build:client
To start only the NodeJS API, use:
npm run server
The interface will be served under http://localhost:3000.
You can set the PORT
environment variable to change this.
To connect to a Cassandra database, copy the cassandraAuth.config.default.js
file to a file called cassandraAuth.config.js
and enter your Cassandra username and password into it.
Enter the hostnames or IPs of the Cassandra nodes into the setting
contactPoints
in each file in the folder src/api/keyspaceConfigs
.
This project uses eslint to check the projects code. To this end it enforces the airbnb coding conventions. Further it defines the following build targets:
yarn run lint:code
- is used to manually start the linting process of all javascript and jsx files.yarn run lint:autofix
- tries to automatically fix some of those linting errors.yarn run lint:styles
- run stylelint on all css files.
Further eslint-loader is used to continuously run the linting process together with webpack2. The configuration for the eslint-loader is contained in the linter.part.js
file.