ditapi
REST API for ditup. The web app for the API is based here.
Follows JSON API specification.
Prerequisities
- Node.js 8.0.0+. We use cutting-edge EcmaScript features like async functions, which are supported since v7.0.1. We use util.promisify, which is supported since node 8.0.0.
- npm v?
- Arangodb v3.0 or later
- maildev
- @todo
Install
- @todo
- clone this repository
- run
npm install
in the repository folder - run
npm run init
to create folders for avatar uploads - run
NODE_ENV=development node ./bin/init-db
Run
NODE_ENV=development npm start
Test
npm run test:watch
Technology
Database
Arangodb is a multi-model NOSQL database. A model we are particularly interested in is graphs. They enable a nice way to model and navigate relationships.
Documentation
API documentation (raw) written with RAML
Development
Linting
Use one of the following:
npm run lint
npm run lint:fix
Testing
We practice behavior-driven development (BDD):
- figure out expected behaviour
- write a failing test of the behavior
- make the test pass
- refactor
- repeat
Use one of the following:
npm test
npm run test:watch
Collaboration
If you want to collaborate on the creation of ditup, let's get in touch.