Home Reference Source Repository
Manual » Overview

Overview

Build Status Dependency Status devDependency Status document Known Vulnerabilities

This project uses the following tools:

 - ECMAScript6      # Written in ES6 (ES2015)
 - ExpressJS        # Web development framework
 - Passport         # Authentication middleware
 - MongoDB          # Document store database
 - Gulp             # Build system
 - BabelJS          # JavaScript compiler
 - Travis-CI        # Continuous Integration
 - Apiary           # RESTfull API documentation
 - Dredd            # RESTfull testing
 - ESDoc            # Inline documentation
 - ESLint           # JavaScript linter

Documentation

Documentation for the code can be generated with the command npm run docs. This will automatically generate the documentation which will be located in the docs directory. The index.html page will be the starting point. For documentation on the API routes you can click here.

Folder structure

The API has the following folder structure.

.
├── docs                          # Folder with the ESDoc generated documentation for the API.
├── manual                        # Folder with markdown files used by the documentation.
├── src                           # Holding the ES6 source code.
    ├── config                    # Configuration.
    ├── controllers               # REST Controllers.
    ├── models                    # Mongoose Models.
    ├── Index.js                  # Starting point of the API.
    ├── beerio-api.js             # Entry for the command line.
    └── utils.js                  # Useful utilities.
├── test                          # Folder with dredd test hooks.
├── tmp                           # Temp folder for logging.
├── .babelrc                      # BabelJS configuration file.
├── .esdoc.json                   # ESDoc configuration file.
├── .eslintrc.js                  # ESLint configuration file.
├── .gitignore                    # gitignore file.
├── .travis.yml                   # Travis-CI configuration file.
├── apiary.apib                   # Apiary configuration file.
├── CHANGELOG.md                  # Changelog file.
├── dredd.yml                     # Dredd configuration file.
├── gulpfile.babel.js             # Gulp tasks file.
├── LICENSE.txt                   # License file.
├── pakage.json                   # NodeJS package.json file.
└── README.md                     # Readme file.

Versioning

For transparency and insight into our release cycle, and for striving to maintain backward compatibility, this project will be maintained according to the Semantic Versioning guidelines as much as possible.

Releases will be numbered with the following format: <major>.<minor>.<patch>-<build>

Constructed with the following guidelines:

  • A new major release indicates a large change where backwards compatibility is broken.
  • A new minor release indicates a normal change that maintains backwards compatibility.
  • A new patch release indicates a bugfix or small change which does not affect compatibility.
  • A new build release indicates this is a pre-release of the version.

License

MIT License

Copyright (c) 2017 - Sjoerd Thijsse

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.