Skip to content
KassioLima edited this page Aug 26, 2023 · 1 revision

SNELF

SNELF - Uma ferramenta para identificação de disparidades em compras públicas

SobreUsoDesenvlviemntoCréditos

Sobre

O objetivo da ferramenta é identificar disparidades de valores em compras públicas, bem como possíveis fraudes, com o intuito de auxiliar na tarefa de auditoria de notas fiscais relacionadas a tais compras. A ferramenta permite que seja feito o upload de um arquivo csv, neste caso uma base de dados de medicamentos para o treino de um modelo de classificação que associa medicamentos com nomes de mercado diferentes, porém com a mesma fórmula. Por exemplo, Paracetamol. A mesma fórmula está presente em diversos nomes de mercado para o medicamento, além de essas descrições serem diferentes por serem customizáveis no campo de nota fiscal conforme a farmácia. Quando a base de dados é importada, o modelo classifica cada registro com um código diferente, que relaciona os mesmos medicamentos, que possuam nomes distintos. Podem ser feitas buscas pelo nome do medicamento, que retornam um conjunto de compras de notas fiscais. O sistema permite também a visualização de propriedades estatísticas relacionadas ao conjunto retornado para melhorar a análise.

O sistema está dividido como explicado abaixo:

  1. Backend (Python) Nesta parte pode-se ver a implementação das funcionalidades deste sistema, bem como a interação com o banco de dados.
  2. Frontend (ReactJS) Aqui temos uma interface gráfica que permite o upload de uma base de dados em csv, treino do modelo, importação dessa base de dados, e o upload de um arquivo .csv que será utilizado para o treino do modelo.

Uso

Configuração de ambiente

1. Clonar o projeto

2. Instalar o docker

Acessar https://docs.docker.com/engine/install e seguir o passo-a-passo conforme o sistema operacional da máquina.
Caso esteja utilizando Linux, os comandos do docker deverão ser precedidos do comando 'sudo'.

3. Instalar o docker-compose

4. Acessar a pasta snelf, após a clonagem do projeto

Digitar o comando 'cd snelf' e apertar a tecla Enter

5. Realizar o build do projeto, a partir do docker-compose.yml

 docker-compose build

6. Subir o projeto

 docker-compose up

7. Iniciar o projeto

 docker-compose start

8. Configurar conexão com o postgres (interface PGADMIN)

8.2 Criar uma nova conexão no BD, com os seguintes dados:
**Host:** localhost
**Database:** testejp
**Port:** 5432
**Username:** testejp
**Password:** testejp
8.3 Criar arquivo .env
- Criar arquivo .env, na pasta snelf-frontend
- Criar a seguinte variável de ambiente: 'WDS_SOCKET_PORT=3001'
8.4 Acessar localhost:3001, de modo a acessar a página inicial do Snelf

Acesso ao sistema

Caso seja seu primeiro acesso ao sistema, seguir todos os passos desta seção.

Inserir arquivo CSV no sistema
  • Acessar a opção "Importar Base de Transações"
  • Clicar no botão "UPLOAD CSV"
  • O arquivo exemplo que deverá ser importado está na pasta snelf/produtos_farmaceuticos.csv
  • Após feito o upload, clicar no botão "IMPORTAR"

Funcionalidades do Sistema

9.2 Treinar o modelo, para clusterização de classes de medicamentos
  • Após realizada a importação do csv, acessar a opção "Atualizar Treinamento do Modelo"
  • Clicar no botão "TREINAR MODELO"
9.3 Pesquisar transações
  • Acessar a opção "Buscar Produtos"
  • Selecionar o modo de busca (Produto ou CLEAN)
  • Inserir o nome do produto ou clean (as buscas podem conter strings parciais)
  • O usuário pode baixar os resultados como PDF ou Excel, visualizar transações passadas para os medicamentos, as principais estatísticas das transações retornadas e um gráfico box-plot considerando os preços praticados para as transações retornadas

Parar o docker compose:

Para parar o container, basta rodar o comando 'docker-compose stop'

Processo de desenvolvimento

  • Estamos uilizando a funcionalidade de Projects do GitHub (Link) para a realização da gestão do quadro Kanban/Scrum
  • Estamos utilizando o gráfico de gantt para a gestão do tempo do projeto
  • Iremos implementar o uso do recurso GitFlow ao longo do projeto
  • Trabalhamos com o sistema de issues, relacionando cada uma a uma pull request.
  • Além dos itens acima, estamos utilizando a funcionalidade Wiki para a presente descrição do projeto e detalhamento das atividades desenvolvidas em cada sprint.

Referências: https://www.youtube.com/watch?v=_Why5uCCrXc&list=PLlAbYrWSYTiNqugqFFWWsgONJsmc3eMpg

Créditos

Agradecimentos aos projetos abaixo: