Skip to content

M2G/docker-node-ddd-postgre-auth

Repository files navigation

Docker, NodeJS, Typescript, DDD, MongoDB, Auth

RESTful api with Domain Driven Design

Features

  • Docker
  • NodeJS (+14)
  • Typescript
  • MongoDB

Getting Started

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

Tech

  • 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.

Logging

  • 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.

Tests

  • 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).

About

A simple Auth API using Docker, NodeJS, Typescript, Redis and PostgreSQL (with Domain Driven Design) WIP: REWRITE TO POSTGRE

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published