Skip to content

nzzdev/Q-server

Repository files navigation

Q Server

Maintainer: Franco Gervasi

Q is a system that lets journalists create visual elements for stories. It is developed by NZZ Editorial Tech and NZZ Visuals and used in the NZZ newsroom. There is a Demo over here: https://editor.q.tools

This is the server for the Q Toolbox. To make use of Q server you will also need a Q editor.

Documentation: https://nzzdev.github.io/Q-server

Development

git clone git@github.com:nzzdev/Q-server.git
cd Q-server
nvm use
npm install

For testing local changes of Q-server, one can link the local package to the global installation of Q-server:

cd Q-server
npm link

Next, in some other location, the following command will create a symbolic link from globally-installed Q-server to node_modules/ of the current folder.

cd some-other-location
npm link @nzz/q-server

Note: Q-server uses joi. If the other location, where you linked the Q-server to, uses joi as well, make sure they have the exact same version.

To unlink, simply install Q-server again globally:

npm install @nzz/q-server -g

Tests

There is a 100% coverage aim with the tests. Please do not lower the coverage. The tests use pouchdb-server to mock the database and implement a simple mock tool endpoint. This makes e2e testing completely self contained without the need for any external services running. Just do a npm install and then npm run test and you are good to go. There are e2e tests in test/e2e-tests.js and some unit tests in test/unit-tests.js.

License

Copyright (c) 2019 Neue Zürcher Zeitung. All rights reserved.

This software is published under the MIT license.