A API boilerplate built on top of ExpressJS.
- Database: NoSQL with MongoDB/Mongoose;
- Authentication: Authenticate users with JWT;
- Logs: Logging info with Winston/Morgan;
- Tests: Unit/Integration Tests running with Jest;
- Error handling: Centralized error handling middleware;
- Security:
- Code Analisys: Codecov/Codacy;
- Linting: ESLint/Prettier;
- API Documentation: Swagger/Postman;
- Docker Support;
This boilerplate is also available with Sequelize/PostgreSQL on this repository!
Clone the repository
$ git clone https://github.com/lucas-a-pelegrino/node-bloodboiler
$ cd node-bloodboiler
Install the dependencies
$ npm install
# or
$ yarn install
Setup environment variables (modify/add more variables if needed)
$ cp .env.example .env
Start application
# locally:
$ npm run start:dev
# or
$ yarn start:dev
# staging:
$ npm run start:staging
# or
$ yarn start:staging
# production
$ npm start
# or
$ yarn start
Testing
# Run tests
$ npm test
# or
$ yarn test
Bloodboiler comes with Docker support, you can develop and test your code using Docker for minimal configuration, Nodemon takes care of restarting the application inside Docker so you can code locally.
# Code Locally with:
$ npm run docker:dev
# or
$ yarn docker:dev
# Run Test Suites inside Docker:
$ npm run docker:test
# or
$ yarn docker:test
NOTE: In order to use the methods listed above, make sure you have Docker installed on your local machine!
You might want to check the API docs as well!
- Collection on Postman;
- Swagger: Just start the application at your desired
host:port
and use the route:/api/v1/documentation
to open the swagger docs;