mirror of
https://github.com/Permissionless-Software-Foundation/bch-email-api.git
synced 2026-09-21 16:52:04 -07:00
92 lines
3.5 KiB
Markdown
92 lines
3.5 KiB
Markdown
# babel-free-koa2-api-boilerplate
|
|||
|
|
[](http://standardjs.com)
|
||
|
|
|
||
|
|
[](https://coveralls.io/github/christroutner/babel-free-koa2-api-boilerplate?branch=unstable)
|
||
|
|
|
||
|
|
[](https://github.com/semantic-release/semantic-release)
|
||
|
|
|
||
|
|
[](https://greenkeeper.io/)
|
||
|
|
|
||
|
|
|
||
|
|
Boilerplate for building APIs with [koa2](https://github.com/koajs/koa/tree/v2.x) and mongodb.
|
||
|
|
This repository is forked from Adrian Obelmejias' [koa-api-boilerplate repository](https://github.com/adrianObel/koa2-api-boilerplate).
|
||
|
|
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).
|
||
|
|
|
||
|
|
## Features
|
||
|
|
This project covers basic necessities of most APIs.
|
||
|
|
* Authentication (passport & jwt)
|
||
|
|
* Database (mongoose)
|
||
|
|
* Testing (mocha)
|
||
|
|
* Doc generation with apidoc
|
||
|
|
* linting using standard
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
## Requirements
|
||
|
|
* node __^8.9.4__
|
||
|
|
* npm __^5.7.1__
|
||
|
|
|
||
|
|
## Installation
|
||
|
|
```bash
|
||
|
|
git clone https://github.com/christroutner/babel-free-koa2-api-boilerplate.git
|
||
|
|
```
|
||
|
|
|
||
|
|
## 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
|
||
|
|
├── 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
|
||
|
|
|
||
|
|
## Documentation
|
||
|
|
API documentation is written inline and generated by [apidoc](http://apidocjs.com/).
|
||
|
|
|
||
|
|
Visit `http://localhost:5000/docs/` to view docs
|
||
|
|
|
||
|
|
|
||
|
|
## Dependencies
|
||
|
|
* [koa2](https://github.com/koajs/koa/tree/v2.x)
|
||
|
|
* [koa-router](https://github.com/alexmingoia/koa-router)
|
||
|
|
* [koa-bodyparser](https://github.com/koajs/bodyparser)
|
||
|
|
* [koa-generic-session](https://github.com/koajs/generic-session)
|
||
|
|
* [koa-logger](https://github.com/koajs/logger)
|
||
|
|
* [MongoDB](http://mongodb.org/)
|
||
|
|
* [Mongoose](http://mongoosejs.com/)
|
||
|
|
* [Passport](http://passportjs.org/)
|
||
|
|
* [Nodemon](http://nodemon.io/)
|
||
|
|
* [Mocha](https://mochajs.org/)
|
||
|
|
* [apidoc](http://apidocjs.com/)
|
||
|
|
* [ESLint](http://eslint.org/)
|
||
|
|
|
||
|
|
## License
|
||
|
|
MIT
|