Coder Social home page Coder Social logo

meucpf's Introduction

Ideia

MeuCPF nasce como uma api opensource simples de consultas por CPF ao site da Fazenda.

Como Funciona

Usa redis como pubsub para o Crawler que funciona com Queue e Thread em python.

Como foi construido

Usa duas partes: - Uma em python que é responsavel por responder os requests feitos no pubsub e fazer o crawling dos dados. - A outra em javascript, que é o websocket basico para se comunicar com o pubsub

Detalhes

Ainda está em construção, e nao suporta os casos de erro do site da fazenda. Good first issue

Doc inicial

Como rodar

1 - Mude o nome de /api/.env.example para .env

mv ./api/.env.example ./api/.env

2 - Suba o container docker com o redis

docker-compose -f docker-compose.yml up -d

3 - Rode o Consumer vá ate a pasta consumer e instale as dependencias e rode o codigo.

pip install -r ./consumer/requirements.txt
python3 ./consumer/app.py

4 - Rode o Websocket em um terminal separado, rode o websocket. Essa parte é opicional e está sendo construida, a parte em Python é capaz de, sozinha, responder aos eventos no redis emitindo outros eventos como resposta.

cd /api
npm install
npm run start

O Websocket

O servidor websocket será iniciado na porta 8080. O servidor precisa de um header authorization para permitir sua conexão. Esse token ainda está 'hardcoded' no script, e um valor possivel é usuario1

Para enviar requests, voce deve enviar um payload no seguinte formato ao websocket:

{
  "event": "cpf",
  "payload": {
    "cpf": "12345678912", //cpf da pessoa, sem a mascara de cpf
    "data_de_nascimento": "12121234", //data de nascimento da pessoa, sem espaços ou traços, formato DDMMYYYY
    "id": "mensagem1" //seu id pra essa requisição, sera retornado a resposta
  }
}

Você receberá de volta do websocket:

{
  {
	"event": "processed_event",
	"id": "mensagem1", //id da requisição indormado anteriormente
	"data": {
		"No do CPF": "123.456.789-12",
		"Nome": "FULANO DE TAL",
		"Data de Nascimento": "12/12/1234",
		"Situação Cadastral": "REGULAR",
		"Data da Inscrição": "12/12/1234",
		"Digito Verificador": "00"
	}
}
}

meucpf's People

Contributors

eletroswing avatar

Stargazers

Heitor Bardemaker A. Bisneto avatar Sibelius Seraphini avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.