Skip to content

brlocky/microservices-app

Repository files navigation

Description

Simple application to manage Todos.

Auth

- Register
- Login
- Guard for routes

TODO

- Create
- Edit ( TODO )
- Mark complete/undo ( TODO )
- Delete ( TODO )
- List

Stack

- NestJS (single repo to manage micro-services)
- gRPC with ProtoBuf
- Kakfa
- MongoDB

Architecture

- Client <=> Rest <=> Gateway <=> gRPC <=> Auth
- Client <=> Rest <=> Gateway <=> gRPC <=> Todo

Installation

$ npm install

Running the Server ( MongoDB + Kafka )

$ docker-compose --profile server up

Running the App ( Gateway + Auth + Todo )

$ docker-compose --profile app up

Generate ProtoBuf typescript interfaces

$ npm run proto:build

Artillery ( installed locally )

Smoke/Stress test

$ artillery run ./artillery/<file>.yml

Generate reports

$ artillery run ./tests/performance/<file>.yml --output test.json
$ artillery report --output report.html test.json

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

License

Nest is MIT licensed.