The DASH-IF Testvector database is a tool to allow a dynamic management of the testvectors provided by the DASH Industry Forum. This includes:
- Categorized DASH-IF features and feature groups
- Test cases for the individual features.
- Test vectors for the test cases.
- Dynamic management of the attributes all the models
A live demo of the tool can be found here. This repository provides the server-side functionality of the tool. It is supposed to run alongside the Test-Assets-UI.
The backend system consists of two parts
- MongoDB Database
- REST API Server
MongoDB >= 3.2.x is required.
Follow instruction on how to Install MongoDB Community Edition on Ubuntu.
We recommend free and open source native and cross-platform MongoDB manager
Our current system is installed on Ubuntu Server 14.04 LTS (HVM)
- Setup NodeJS v4.x
- Download REST API Source code.
- Install dependency.
- Configuring Database access.
- Launch REST API Server. (TBD)
Follow instruction on how to install NodeJS v4.x
# Using Ubuntu
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
Then we set up a package root in homedir to hold the NodeJS "global" packages:
$ NPM_PACKAGES="$HOME/.npm-packages"
$ mkdir -p "$NPM_PACKAGES"
Set NPM to use this directory for its global package installs:
$ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc
Configure your PATH and MANPATH to see commands in your $NPM_PACKAGES prefix by adding the following to your .zshrc/.bashrc:
# NPM packages in homedir
NPM_PACKAGES="$HOME/.npm-packages"
# Tell our environment about user-installed node tools
PATH="$NPM_PACKAGES/bin:$PATH"
# Unset manpath so we can inherit from /etc/manpath via the `manpath` command
unset MANPATH # delete if you already modified MANPATH elsewhere in your configuration
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"
# Tell Node about these packages
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
You can add your server SSH Key to git for authentication by following adding a new SSH key to your GitHub account instruction.
Choose your own method [how to obtain source code] (https://help.github.com/articles/which-remote-url-should-i-use/). In our example we cloning using HTTPs method
$ git clone https://github.com/Dash-Industry-Forum/Test-Assets-Dataset-Public.git
$ cd Test-Assets-Dataset
$ npm install
You could also download ZIP Archive https://github.com/Dash-Industry-Forum/Test-Assets-Dataset/archive/master.zip
$ unzip master.zip
$ cd Test-Assets-Dataset-master
$ npm install
The config
directory contains config files for different NODE_ENV
settings. By default the values from the default.json
are used.
In order to setup the database parameters change the values in dbConfig
. Please follow the instructions on the MongoDB documentation to create the respective users for your database.
Also keep in mind to start the MongoDB with authorization turned on:
mongod --auth
Find in npm module mongodb ..node_modules\mongodb\node_modules\bson\ext\index.js
and change path to js version in catch block
bson = require('../build/Release/bson');
to
bson = require('../browser_build/bson');
Install the dependencies
npm install
If this is a new setup you need to add a superuser.
cd datasets
node create_user.js
Afterwards you can run the API Server by typing:
npm start
In order to change the port adjust the webConfig.port
parameter in your config file.
Now you can login with the superuser and add additional users if necessary.