Skip to content

Latest commit

 

History

History
82 lines (58 loc) · 3.84 KB

README.md

File metadata and controls

82 lines (58 loc) · 3.84 KB

Document Blacklist

GitHub code size in bytes GitHub last commit

Sobre

Document Blacklist é um projeto teste para validação e gerenciamento de CPFs e CNPJs. Nele é possível cadastrar os documentos em uma base, validá-los, incluí-los e excluí-los de uma blacklist. Além disso, é possível ver na prática a utilização das tecnologias como NodeJS + express framework, ReactJS, Typescript, Chakra UI e várias outras APIs bastante úteis no desenvolvimento deste tipo de software. Por ser uma aplicação de teste, não há intenção em disponibilizá-la como produto ou publicá-la para uso em produção. Caso considere alguma parte do código interessante ou acredite que algo possa ser melhorado, fique à vontade para comentar. Todo feedback é bem-vindo.

Como executar o projeto localmente

Certifique-se que você tenha instalado em sua máquina o Git e o Docker + Docker Compose. Em seguida, execute os seguintes passos:

# Clone este repositório
$ git clone https://github.com/rodrigolemos/doc-blacklist

# Acesse a pasta do projeto
$ cd doc-blacklist

# Instancie os containers da aplicação
$ docker-compose up -d --build

Aguarde o processo de instalação ser finalizado. Serão criados 3 containers:

  • doc-blacklist-mongo: MongoDB exclusivo para a aplicação
  • doc-blacklist-service: Back-end da aplicação
  • doc-blacklist-ui: Interface da aplicação
# Verifique se o serviço foi iniciado sem problemas
$ docker logs doc-blacklist-mongo

# A resposta para o comando deve ser
# App running on port 5000

Após esses passos, a interface da aplicação estará disponível na porta 3000. Acesse-a pelo navegador através do endereço http://localhost:3000.

Layout preview

Principal

Definições

A aplicação contém uma interface (UI) para gerenciamento de CPF/CNPJ (CRUD) com a possibilidade filtros, ordenação e marcação de alguns em uma blacklist.

Requisitos e funcionalidades

  • Validação do documento (dígito verificador) CPF/CNPJ na consulta e inclusão;
  • SPA (Single Page Application) como front-end;
  • Interface REST para integração do back-end com o front-end;
  • Rota de suporte (/status) para verificação das informações de up-time do servidor e quantidade de consultas realizadas desde o start;
  • Utilização do banco de dados MongoDB.
  • Conteinerização dos projetos utilizando Docker;
  • Utilização de testes unitários para as funções de validação.

Tecnologias

Back-end

  • NodeJS - Servidor principal;
  • Express - Um framework web para Node.js;
  • TypeScript - Uma extensão do JavaScript;
  • Helmet - Conjunto de validações de segurança para apps express;
  • TypeORM - Um dos ORMs mais populares para JavaScript e TypeScript;
  • MongoDB - Um dos bancos de dados mais populares do mundo;
  • Jest - Framework de Testes em JavaScript com um foco na simplicidade;

Front-end

  • React JS - Uma biblioteca JavaScript para criar interfaces de usuário;
  • Styled Components – Uma biblioteca popular para uso de CSS-in-JS;
  • ChakraUI – Uma biblioteca de componentes React estilizados;
  • axios – Cliente HTTP baseado em promises;

Autor

Rodrigo Lemos