This microservice implements the storage layer of the NLP Microservice. When a deck is updated, this service requests the NLP results from the NLP Microservice and stores them for later use.
The following commands are helpful when setting up the service.
// add a job, to compute NLP results, for every deck in mongodb in the agenda queue
docker run -it IMAGE_TAG bin/scheduleJobs
// delete scheduled NLP jobs
docker run -it IMAGE_TAG bin/deleteJobs
// delete all indexed NLP results from SOLR
docker run -it IMAGE_TAG bin/delete
Please visit the wiki at Install NodeJS.
Have a look at the file application/server.js, that is the main routine of this service. Follow the require(...) statements to get trough the entire code in the right order.
When you want to have a look at tests, head over to the folder application/tests/. We're using Mocha and Chai for our purposes.
Since we're developing our application with NodeJS, we're using npm as a task runner. Have a look at the /application/package.json script section to obtain an overview of available commands. Some are:
# Run syntax check and lint your code
npm run lint
# Run unit tests
npm run unit:test
# Start the application
npm start
...
You want to checkout this cool service? Simply start the service and head over to: http://localhost:3000/documentation. We're using swagger to have this super cool API discrovery/documentation tool. BTW.: Did you already discoverd the super easy swagger integration inside /application/routes.js? Tags 'api' and 'description' were everything we needed to add.
You can use Docker to build, test and run your application locally. Simply edit the Dockerfile and run:
docker build -t MY_IMAGE_TAG ./
docker run -it --rm -p 8880:3000 MY_IMAGE_TAG
Alternatively you can use docker-compose to run your application in conjunction with a (local) mongodb instance. Simply execute:
docker-compose up -d