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.
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.
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.
- 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.
- 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;
- 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;
Rodrigo Lemos