rictom / rede-cnpj

Visualização gráfica de relacionamentos entre sócios e empresas com dados públicos de CNPJ.
MIT License
188 stars 77 forks source link
cnpj dados-abertos flask javascript python receita-federal vivagraph

RedeCNPJ - Visualização de dados públicos de CNPJ

Ferramenta para observar o relacionamento entre empresas e sócios, a partir dos dados públicos disponibilizados pela Receita Federal.

Vídeo no youtube

youtube

A rotina possibilita visualizar de forma gráfica os relacionamentos entre empresas e sócios, a partir da base de dados públicos de cnpj da Receita Federal.
Foi testada nos navegadores Firefox, Edge e Chrome.

RedeCNPJ.com Online:

A versão online com dados públicos funciona agora no site https://www.redecnpj.com. A versão online com acesso gratuito foi descontinuada em maio/2023.

RedeCNPJ Demo Online:

Uma versão demo, com base de dados incompleta está rodando em https://www.redecnpj.com.br/demo/. Nesta versão apenas o primeiro nome de sócio é exibido e algumas opções estão desabilitadas. Aqui roda outra versão sem dados reais de empresas.

Versões Aplicativo:

Para os usuários que não tem familiaridade com o Python, em https://www.redecnpj.com.br/rede/aplicativo.html é possível obter gratuitamente a versão "aplicativo" da RedeCNPJ e outro programa para Windows que baixa os arquivos de dados abertos do site da Receita Federal e converte para o formato para uso na RedeCNPJ. Os aplicativos foram gerados a partir do código fonte deste repositório.

Versão em python (execução local):

É preciso ter instalado no computador:

Faça um clone do código deste projeto.
O recomendado é trabalhar em um ambiente virtual. Siga orientações como em https://docs.python.org/3/library/venv.html
Use o comando
pip install -r requirements.txt
para instalar as bibliotecas utilizadas.

Para iniciar o script, em um console digite
python rede.py
A rotina abrirá o endereço http://127.0.0.1:5000/rede/ no navegador padrão. As opções por linha de comando são exibidas fazendo python rede.py -h
A pasta contém os arquivos rede_teste.db e cnpj_teste.db, que são amostras dos bancos de dados para testar o funcionamento da rotina.

Como utilizar o Banco de dados completo de CNPJs com a versão em Python:

A pasta rede_cria_tabelas contém os scripts para baixar os arquivos zip do site de Dados Abertos, gerar a base completa de empresas e as tabelas utilizadas na redeCNPJ.
a) para baixar os arquivos zip do site de Dados Abertos, rode o comando:
python dados_cnpj_baixa.py
b) para criar a base de empresas cnpj.db, rode o comando:
python dados_cnpj_para_sqlite.py
c) para criar a tabela de vínculos rede.db utilizada na redeCNPJ, rode o comando:
python rede_cria_tabela_rede.db.py
d) para criar a tabela de vínculos cnpj_links_ete.db de endereços, de emails e de telefones utilizada na redeCNPJ, rode o comando:
python rede_cria_tabela_cnpj_links_ete.py

Ao final, mova os arquivos cnpj.db, rede.db, rede_search.db, cnpj_links_ete.db da pasta rede_cria_tabelas/dados-publicos para a rede/bases. Os arquivos restantes nas pastas dados-publicos e dados-publicos-zip poderão ser apagados.

Observação: O cnpj_links_ete.db é opcional, somente se quiser visualizar vinculos por endereços, telefones ou email em comum.
Veja o projeto https://github.com/rictom/cnpj-sqlite para ver informações sobre o código para baixar os arquivos com dados abertos e converter para sqlite.

O código foi ajustado para o formato disponibilizado pela Receita Federal a partir de 2021, testado em agosto de 2024.
Orientações detalhadas para instalação em Windows no link https://github.com/rictom/rede-cnpj/blob/master/doc/instalacao_windows.md

Diagrama da RedeCNPJ na RedeCNPJ

image
Clique para abrir o diagrama

Opções:

A roda do mouse expande ou diminui o tamanho da exibição.
Fazendo click duplo em um ícone, a rotina expande as ligações. Por exemplo, clique duplo no ícone de uma pessoa, exibirá todas as empresas que esta é sócia. Clique duplo em um ícone de CNPJ, exibirá todos os sócios da empresa.
Apertando SHIFT, é possível selecionar mais de um ícone.
Pressionando CTRL e arrastando na tela, adiciona a seleção os itens da área. Clicar no botão do meio do mouse (roda) faz aparecer janela para editar uma Nota, que aparece numa terceira linha abaixo do ícone.

Outras opções da rede estão no menu contextual do mouse (botão direito), sendo configuradas teclas de atalho correspondentes aos comandos:

Tecla – Descrição do comando.

Os comandos valem para o último nó selecionado ou nós selecionados, que ficam em destaque com a animação no contorno ods ícones. Pressionando SHIFT e click, é possível selecionar mais de um ícone para fazer Exclusão ou para Expansão de vínculos. Pode-se arrastar células com listas de CNPJs do Excel para a janela, ou arrastar arquivos csv ou json.

Fonte dos dados:

Base de CNPJ

Está disponível em https://dados.gov.br/dados/conjuntos-dados/cadastro-nacional-da-pessoa-juridica---cnpj ou https://dadosabertos.rfb.gov.br/CNPJ/ (http://200.152.38.155/CNPJ/).

Bibliotecas e outros projetos utilizados:

Biblioteca em javascript para visualização:
https://github.com/anvaka/VivaGraphJS

Menu Contextual:
https://www.cssscript.com/beautiful-multi-level-context-menu-with-pure-javascript-and-css3/

Ícones:
https://www.flaticon.com
https://fontawesome.com

Histórico de versões

versão 1.2 (agosto/2024)

versão 1.1 (fevereiro/2024)

versão 1.0 (junho/2023)

versão 0.9 (dezembro/2022)

versão 0.8.8 (setembro/2022)

versão 0.8.7 (setembro/2022)

versão 0.8.6 (agosto/2022)

versão 0.8.5 (julho/2022)

versão 0.8.4 (junho/2022)

versão 0.8.3 (maio/2022)

versão 0.8.2 (janeiro/2022)

versão 0.7.4 (dezembro/2021)

versão 0.7.3 (setembro/2021)

versão 0.7.2 (setembro/2021)

versão 0.7.1 (agosto/2021)

versão 0.6.3 (julho/2021)

versão 0.5.1 (junho/2021)

versão 0.5 (abril/2021)

versão 0.4 (janeiro/2021)

versão 0.3.4 (janeiro/2021)

versão 0.3 (janeiro/2021)

versão 0.2 (dezembro/2020)

versão 0.1 (setembro/2020)