Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/begrossi/anp-price-collector

ANP Price Collector
https://github.com/begrossi/anp-price-collector

crawler experiment not-maintained scrapy-crawler

Last synced: 14 days ago
JSON representation

ANP Price Collector

Awesome Lists containing this project

README

        

# anp-price-collector
ANP Price Collector

* Esse projeto é composto de 3 módulos:
- collector: Coletor dos dados a partir da página da ANP.
- server: servidor com acesso via API
- frontend: conteúdo HTML/JS em AngularJS para consulta dos dados coletados.

* Collector:
- O coletor é um script nodejs que lê, faz o parse da página, e consome todas as informações da página.
- Primeiramente, busca uma página inicial com a lista de estados e tipos de combustível.
- Para cada estado, em paralelo, faz uma busca da lista de cidades para cada tipo de combustível. E para cada cidade e tipo de combustível, busca a lista de postos pesquisados.
- Após acumular todos os dados de um estado, envia para o `server` através de API.
- A decisão de não dar acesso ao banco de dados direto ao Collector, e sim fazê-lo enviar os dados via API permite
que esse componente rode de forma autônoma, podendo-se utilizar, por exemplo o AWS Lambda para consumir processamento apenas uma vez por semana.

* Server:
- Servidor de APIs REST, baseado no HapiJS, com acesso ao banco MongoDB.
- Os modelos de dados focam em otimizar a busca por dados na API de consulta, operação que seria mais custosa.
- Os dados são armazenados muito próximos à como serão consutados, no model `anpdata`, ficando os demais modelos apenas como auxiliares.

* Frontend: (ainda não implementado)
- Conjunto de páginas HTML e scripts JS baseados em AngularJS, com suporte à SASS e mimificação de forma a gerar conteúdo estático e totalmente independente do servidor, acessando este através de APIs REST.