2019-02-08 16:47:06 -08:00
2019-02-07 17:26:37 -08:00
2018-11-07 20:59:30 -08:00
2018-11-05 11:40:10 -08:00
2019-02-03 17:35:06 -08:00
2016-02-11 14:28:00 -05:00
2018-03-05 19:38:29 -08:00
2019-02-07 17:29:19 -08:00
2018-03-02 18:50:12 -08:00
2019-02-08 15:48:20 -08:00
2019-02-08 16:47:06 -08:00

babel-free-koa2-api-boilerplate

js-standard-style

Coverage Status

semantic-release

Greenkeeper badge

This repoository is a boilerplate for building APIs with koa2 and mongodb. This repository was originally forked from Adrian Obelmejias' koa-api-boilerplate repository. It makes the following modifications:

  • Remove babel as a dependency. This repository is now natively compatible with node v8.9 or higher.

  • Replaced bcrypt dependency with bcryptjs. This improves compatibility across versions of node.js and across OSs.

  • Configured for Travis CI (continuous integration), Coveralls (code coverage), GreenKeeper (automated dependency management), and Semantic Release (automated versioning).

  • 'Production' environment is targeted for packaging as a Docker container.

Features

This project covers basic necessities of most APIs.

  • Authentication (passport & jwt)
  • Database (mongoose)
  • Testing (mocha)
  • Doc generation with apidoc
  • Linting using standard
  • Packaged as a Docker container

Requirements

  • node ^10.15.1
  • npm ^6.7.0

Installation

git clone https://github.com/christroutner/koa-api-boilerplate/tree/docker

Structure

├── bin
│   └── server.js            # Bootstrapping and entry point
├── config                   # Server configuration settings
│   ├── env                  # Environment specific config
│   │   ├── common.js
│   │   ├── development.js
│   │   ├── production.js
│   │   └── test.js
│   ├── index.js             # Config entrypoint - exports config according to envionrment and commons
│   └── passport.js          # Passportjs config of strategies
|
├── production               # Dockerfile for build production container
|
├── src                      # Source code
│   ├── modules
│   │   ├── controller.js    # Module-specific controllers
│   │   └── router.js        # Router definitions for module
│   ├── models               # Mongoose models
│   └── middleware           # Custom middleware
│       └── validators       # Validation middleware
└── test                     # Unit tests

Usage

  • npm start Start server on live mode
  • npm run dev Start server on dev mode with nodemon
  • npm run docs Generate API documentation
  • npm test Run mocha tests
  • docker-compose build Build a 'production' Docker container
  • docker-compose up Run the docker container

Documentation

API documentation is written inline and generated by apidoc.

Visit http://localhost:5000/docs/ to view docs

Dependencies

License

MIT

Languages
JavaScript 97.4%
Shell 1.3%
HTML 0.8%
Dockerfile 0.5%