RESTful api with Domain Driven Design
- Docker
- NodeJS (+14)
- Typescript
- MongoDB
Run in development:
$ npm run watch-debug
with docker:
$ docker-compose up -d
Run in production:
$ run.sh
or
$ npm run build
$ npm run serve
Run linter:
$ npm run tslint
Run tests:
$ npm run test
- TypeScript - TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
- Express - Node Framweork.
- Awilix - dependency resolution support powered by
Proxy
. - Nodemon - Use for development file reload.
- Tcomb - s a library for Node.js and the browser which allows you to check the types of JavaScript values at runtime with a simple and concise syntax.
- CORS - a node.js package for providing a Connect/Express middleware that can be used to enable CORS with various options.
- Body-parser - Node.js body parsing middleware.
- Http-status - Utility to interact with HTTP status code.
- Winston - A multi-transport async logging library for node.js.
- Sequelize - mongoDB object modeling designed to work in an asynchronous environment.
- Faker - generate massive amounts of fake data in the browser and node.js
- Bcrypt - Lib to help you hash passwords
- Passport - is Express-compatible authentication middleware for Node.js.
- Passport-jwt - A Passport strategy for authenticating with a JSON Web Token.
- Json Webtoken - An implementation of JSON Web Tokens.
- winston - a multi-transport async logging library for Node.js. It is designed to be a simple and universal logging library with support for multiple transports. A transport is essentially a storage device for your logs. Each instance of a winston logger can have multiple transports configured at different levels. For example, one may want error logs to be stored in a persistent remote location (like a database), but all logs output to the console or a local file.
- morgan - HTTP request logger middleware for Node.js. A helper that collects logs from your server, such as your request logs.
- supertest - HTTP assertions made easy via superagent.
- mongodb-memory-server - Spinning up mongod in memory for fast tests. If you run tests in parallel this lib helps to spin up dedicated mongodb servers for every test file in MacOS, *nix, Windows or CI environments (in most cases with zero-config).