Teste para desenvolvedor back end desenvolvido para a Alpes One
- Objetivo: Fazer uma API que se consite basicamente em duas rotas, uma pra buscar os dados com alguns filtros e outra para buscar dados completos, para algum produto especifico.
Neste teste, fiz um pequeno crawler no site - semininovos.com.br, o qual busco, os dados dos produtos contidos na home, e monto um seeder com o base no mesmo, por este motivo é MUITO provavel que os dados apresentados na documentação, estejam diferentes ao executar o resultado deste desafio.
-
O Crawler segue a seguinte logica,em sua primeira execução, ele captura os links dos produtos que estão na home, os separo em um array. Após isto, especiono cada produto, em buscas dos rich snippets, seguindo as diretrizes determinadas pelo https://schema.org/. Retorno um multidimensonal array com todos os dados dos produtos, e faço a inserção do mesmo no banco de dados.
-
PS: Realizei alguns testes com algumas outras versões deste robo, como mapeando o site inteiro em buscas detes dados. Mas não consegui otimizar o algoritmo a tempo para a entrega do projeto.
- PHP - Versão 7.4.0
- Lumen (Laravel)
- Guzzle
- Symfony DomCrawler Component
- Postman/Insomminia
Instalação:
cd car-search
composer install
- Definir as credencias do banco de dados no arquivo .env
php artisan migrate
php artisan db:seed --class=CarsSeeder
Execução:
php -S localhost:8000 -t public