/payever-Challenge-NestJs

A web aplication writed in NestJS to manage users and manipulate images from a external font (Reqres). Data are exposed by a API

Primary LanguageTypeScriptMIT LicenseMIT

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Descrição / Description

Se tratada de uma API com demonstração de diversos conseitos e ferramentas de programação. Ela foi desenvolvida utilizando o Framework NestJs. Caso deseje, fique a vontade para clonar o repositorio e utilizar os códigos como bem desejar.
Is an API with demonstration of several concepts and programming tools. It was developed using the NestJs Framework. If you wish, feel free to clone the repository and use the codes as you wish.

Oque consiste a aplicação / What consist the application

  • Obter Usuario / GET - /api/user/{userId}
  • Criar novo usuario. / POST - /api/users
    • O novo usuario deve ser armazenado em banco de dados MongoDb
    • Uma notificação deve ser enviada por email e RabittMQ
  • Obter Avatar. / GET - /api/user/{userId}/avatar
    • Salvar a imagem como arquivo
    • Armazenar no Bando de Dados com o ID do usuario e o Hash da imagem
    • Retorna-la como representação Base64
    • As seguintes requisições devem retornar o arquivo previamente salvo em Base64
  • Deletar Avatar / DELETE - /api/user/{userId}/avatar
    • Remover o arquivo do sistema de arquivo
    • Remover entradas do banco de dados

Instalação / Installation

$ npm install

Executando MongoDb e RabbitMQ / Running MongoDb and RabbitMQ

# Using docker-compose
$ docker compose up

Este comando vai subir os container do RabbitMQ e MongoDb. Estes ficam expostos para conexção local nas portas padrões.
This command will up the rabbitMQ and MongoDb containers and expose them to local connections

Executando a aplicação / Running the app

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Teste / Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Suporte / Support

Qualquer ajuste e sugestão sera bem vindo! Abra uma Issue descrevendo o problema e uma branche a apartir da Main com a atualização.
Any adjuste will be wellcome! Open a Issue with the description of problem and a branch from Main whit the update suggestion.

Contatos / Stay in touch

License

Nest is MIT licensed.