Skip to content

Este projeto é uma aplicação web desenvolvida utilizando as linguagens de programação NodeJs e TypeScript, que seguem os princípios do SOLID e Clean Code. A arquitetura segue o padrão DDD e Arquitetura Hexagonal, o que garante a escalabilidade e manutenibilidade do código.

Notifications You must be signed in to change notification settings

rafaelftourinho/desafio_maxmilhas

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 

Repository files navigation

Boas-vindas ao meu repositório para o desafio da MaxMilhas

GitHub language count GitHub Top Language GitHub last commit


Tópicos

Tecnologias utilizadas

Sobre o projeto

Descrição da API

Pré-Requisitos

Instalação e uso



Tecnologias utilizadas


Sobre o projeto

Este projeto é uma aplicação web desenvolvida utilizando as linguagens de programação NodeJs e TypeScript, que seguem os princípios do SOLID e Clean Code. A arquitetura segue o padrão DDD e Arquitetura Hexagonal, o que garante a escalabilidade e manutenibilidade do código.
O banco de dados utilizado é o MySQL e para garantir a organização e padrão do código, está sendo utilizado o ESLint.
As ferramentas DevOps são Docker e Git, que garantem a automatização do processo de deploy e gerenciamento de versões.
Para garantir a segurança da aplicação, está sendo utilizado o Helmet.
Por fim, para garantir a qualidade do código, estão sendo realizados testes com as ferramentas Jest, Mocha, Sinon e Chai.


Descrição da API

A seguir, a descrição básica da API para orientar a integração por outros times:

baseUrl = http://localhost:3001

Adicionar um CPF na lista restrita
    Método HTTP: POST
    URL: baseUrl/cpf
    Dados enviados: { "cpf": "64852893055" }
    Erro: retorna uma exceção do tipo "InvalidCpfException" ou "ExistsCpfException" 

Verificar um CPF na lista restrita
    Método HTTP: GET
    URL: baseUrl/cpf/{cpf}
    Sucesso: retorna o CPF e a data de criação no formato ISO 8601 - UTC 
    ex: { "cpf": "64852893055", createdAt: "2019-12-
    17T22:22:08.547Z"}
    Erro: retorna uma exceção do tipo "NotFoundCpfException" ou "InvalidCpfException"

Remover um CPF da lista restrita
    Método HTTP: DELETE
    URL: baseUrl/cpf/{cpf}
    Erro: retorna uma exceção do tipo "NotFoundCpfException" ou "InvalidCpfException"

Visualizar todos os CPFs da lista restrita
    Método HTTP: GET
    URL: baseUrl/cpf
    Sucesso: retorna um array de objetos, cada um representando um CPF da lista restrita
    ex: [ { "cpf": "64852893055", createdAt: "2019-12-
    17T22:22:08.547Z"} ]

Pré-Requisitos

  • Necessário Docker instalado;
  • Necessário o npm ou outro pacote similar no computador ou no container;
  • Necessária a instação do Node.js no computador ou no container;

Instalação e uso

# Abra um terminal e copie este repositório com o comando
[email protected]:rafaelftourinho/desafio_maxmilhas.git

# Navegue até a pasta raíz da aplicação

# Caso esteja usando o VsCode, pode utilizar o comando no terminal dentro da pasta
code .

# Entre na pasta backend
cd app/backend 

# Instale as dependências de backend
npm i

# Suba o container docker
docker-compose up -d

# A porta utilizada para rodar o node está mapeada na 3001 e a porta disponibilizada para o database é a 3002

# Ao subir o container, a aplicação irá startar automaticamente e a criação do banco de dados será feita (migrate) assim como dados pré-inseridos (seed)

# Para rodar os testes, você precisa estar na pasta backend

# Para rodar os testes de integração
npm run test:integration

# Para rodar os testes unitários
npm run test:unitary

# Para verificar os dados que volta da API .
http://localhost:3001/cpf/

Licença

Esse projeto está sob a licença MIT. Veja LICENSE para mais detalhes.

About

Este projeto é uma aplicação web desenvolvida utilizando as linguagens de programação NodeJs e TypeScript, que seguem os princípios do SOLID e Clean Code. A arquitetura segue o padrão DDD e Arquitetura Hexagonal, o que garante a escalabilidade e manutenibilidade do código.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published