cuducos / fio-de-ariadne

🪁 Structuiring data on missing kids in Brazil
https://fio-de-ariadne.herokuapp.com/
GNU General Public License v3.0
77 stars 16 forks source link
hacktoberfest

Fio de Ariadne

Fio de Ariadne [GitHub Actions: Tests]()

Essa é uma prova de conceito para um sistema de raspagem e estruturação de dados sobre crianças desaparecidas no Brasil. O Fio de Ariadne tem como requisitos técnicos Python 3.7+ e Poetry.

Rodando o Fio de Ariadne localmente (sem Docker)

Instalando as dependências

$ poetry install

Para utilizar as dependências, você precisa entrar no virtualenv que o Poetry criou:

$ poetry shell

Use exit para sair do virtualenv quando desejar.

Configurando a aplicação feita em Django

Execute esse comando e siga as instruções:

$ createnv

Raspando os dados

Esses comandos só precisam ser executados uma única vez. Eles criam a estrutura do banco de dados, raspam os dados e salvam tudo nesse banco:

$ python manage.py migrate
$ python manage.py crawl

Você pode ainda criar um usuário para acessar o painel de controle:

$ python manage.py createsuperuser

Iniciando a aplicação web

Utilize esse comando e depois acesse localhost:8000:

$ python manage.py runserver

Rodando o Fio de Ariadne via Docker

Não é necessária nenhuma configuração para rodar o Fio de Ariadne em modo de desenvolvimento.

Esses comandos só precisam ser executados uma única vez (como explicado anteriormente).

$ docker-compose run --rm web python manage.py migrate
$ docker-compose run --rm web python manage.py crawl
$ docker-compose run --rm web python manage.py createsuperuser

Para inicar a aplicação web em 0.0.0.0:8000, utilize:

$ docker-compose up

API web

GET /api/kid

Lista as crianças do nosso banco de dados.

Aceita como parâmetro de busca (busca exata) parâmetros de URL com os nomes dos campos do modelo web.core.models.Kid.

Exemplo

GET /api/kid?eyes=Pretos&hair=Castanho escuro lista apenas as crianças:

Contribuindo

Precisamos de ajuda

Você pode contribuir com melhorias no código e utilizar algumas verificações de qualidade:

$ mypy crawler
$ pytest