- Importar notas fiscais emitidas no CPF
- Buscar dados de notas fiscais emitidas no CPF. Cadastrando lojas, produtos e seus preços
- Importar notas fiscais utilizando o QrCode da nota
- Em alguns casos o captcha é resolvido automaticamente sem a necessidade de intervenção manual ou utilização do 2Captcha
Add images
- Clone o repositório
- Instale as dependências
npm ci
- Inicialize o servidor
make app
- Acesse o endereço
http://localhost:3000
As configurações são feitas via variáveis de ambiente
Nome | Descrição | Valor padrão |
---|---|---|
DATABASE_URL | String de conexão para o Postgres postgresql://postgres:postgres@localhost:5432/postgres |
|
NEXT_PUBLIC_DEBUG | Habilita logs de debug tanto no backend quanto no frontend | |
PUPPETEER_BROWSER_ENDPOINT | Endpoint do navegador para ser utilizado. Para utilizar o Google Chrome é necessário iniciá-lo com --remote-debugging-port=9222 |
|
PUPPETEER_WS_ENDPOINT | ||
TWO_CAPTCHA_API_KEY | Api Key do serviço 2Captcha para quebra automática do Captcha quando necessário. Caso não exista, será necessário o captcha manualmente* | |
PORT | The port to listen on | 3000 |
PUPPETEER_BROWSER_ENDPOINT
e PUPPETEER_WS_ENDPOINT
são variáveis de ambiente opcionais, porém seu uso é recomendado.
Quando uma das duas variáveis de ambiente é definida, a aplicação irá utilizar o navegador já existente. Caso contrário, um novo navegador será aberto.
Porém, rodar a aplicação como um container Docker, impede que um novo navegador seja aberto. Neste caso, caso o Captcha não seja resolvido automaticamente e a variável
TWO_CAPTCHA_API_KEY
não esteja definida, o processo de importação de notas fiscais será interrompido.
Isso dificulta a automação desses processos ou requer a utilização de serviços de terceiros para quebrar o captcha (como o 2Captcha).
Apenas o estado de SP é suportado. Tanto a busca de notas fiscais emitidas no CPF e importação dos dados da nota
O suporte para novos estados pode ser adicionado conforme a necessidade
As interfaces Web das notas fiscais não expõem dados identificadores, como o código de barras, portanto a correlação de produtos não é automatizável
Alguns provedores pagos, como o InfoSimples fornecem tais dados, porém é uma API paga.
Inicialize o Chrome com a flag --remote-debugging-port=9222
e configure a variável de ambiente PUPPETEER_BROWSER_ENDPOINT
com o valor http://localhost:9222
.
- Suportar outros bancos de dados (Postgres)
- Suportar mais de 1 banco?
- Adicionar suporte para mais estados
- Permitir merge de produtos
- Relatórios
- Produtos comprados no mês (com valor total)
- Lojas mais frequentadas
- Produtos mais comprados
- Capacidade de rodar um browser como container que sirva uma interface web
- Permitir o uso de outros bancos de dados