- Nest.js framework with TypeScript(Nest)
- Uses Typescript strict null checks
- ES2017 latest features like Async/Await
- CORS enabled
- Uses npm
- Express + MongoDB (Mongoose)
- Consistent coding styles with Prettier
- Docker support
- Uses helmet to set some HTTP headers for security
- Load environment variables from .env files with dotenv
- Request validation with class-validator
- Linting with eslint
- Tests with Jest
- Code coverage with istanbul
- Git hooks with husky
- Logging with Pino & pino-http
- Authentication and Authorization with passport
- Automatic OpenAPI documentation generation with Swagger
- Continuous integration & CD support with Github Actions
- Monitoring with ElasticSearch and Kibana
$ npm install
$ cp .env.example .env
# run containers locally
$ npm run docker:dev
# run container in production
npm run docker:prod
# run tests
npm run docker:test
# development - Watch mode
$ npm run start
# Debug mode
$ npm run start:debug
$ npm run start:prod
# lint code with ESLint
$ npm run lint
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov