GithubHelp home page GithubHelp logo

products-parser's Introduction

Product Parser

O projeto consiste em uma REST API utilizando os dados do Open Food Facts

Endpoints

  • GET api/: Detalhes da API, se conexão leitura e escritura com a base de dados está OK, horário da última vez que o CRON foi executado, tempo online e uso de memória.
  • PUT api/products/:code: Atualiza um produto
  • DELETE api/products/:code: Muda o status do produto para trash
  • GET api/products/:code: Obtém a informação somente de um produto da base de dados
  • GET api/products: Lista todos os produtos da base de dados

Tecnologias

  • Laravel e Php
  • Mysql
  • Bash Script

Como rodar o projeto

Clonando o Projeto

Execute os comandos no seu terminal

git clone https://github.com/gustavors22/Products-Parser.git
cd Product-Parser

Configurando e Executando a api

Na raiz do projeto uma pasta chamada product_parser_api. Entre nela e execute os seguintes passos:

cd product_parser_api
  1. instalando dependências:
composer install
  1. Abra a pasta "product_parser_api" com seu editor de código.

  2. Crie um arquivo ".env" e cole o conteúdo do arquivo ".env.example" dentro.

  3. Crie um banco de dados mysql.

  4. Coloque as informações do seu banco de dados nos seus respectivos campos no arquivo ".env"

DB_CONNECTION=mysql // SGBD
DB_HOST=127.0.0.1 // IP do seu SGBD
DB_PORT=3306 // porta que seu banco está rodando
DB_DATABASE=products // nome do banco dados criado
DB_USERNAME=root // usuário de conexão do banco
DB_PASSWORD=root // senha de conexão do banco (caso não tenha senha deixe em branco)
  1. Execute o seguinte comando para executar a migrations
php artisan migrate
  1. Execute o seguinte comando para popular o banco com alguns dados
php artisan db:seed
  1. Execute o comando para finalmente ter a api rodando
php artisan serve

Executando Cron para população do banco de dados

  1. Entre na pasta scripts localizado na raiz do projeto.
cd scripts/
  1. Adicione as informações do seu banco de dados na primeira parte do database_insertion_script.sh como mostrado abaixo.
# Define database credentials
DB_USER="root"
DB_PASSWORD="root"
DB_HOST="127.0.0.1"
DB_NAME="products_db"
TABLE_NAME="products"
  1. Execute o seguinte comando para dar a permissão de execução para o arquivo database_insertion_script.sh.
chmod +x ./database_insertion_script.sh
  1. Instale a ferramenta de manipulação de json utilizada pelo script.

linux

sudo apt-get update
sudo apt-get install jq

MacOs

brew install jq
  1. Caso queira que o script seja executado apenas uma vez, basta executar o seguinte comando.
./database_insertion_script.sh
  1. Caso queira que o script execute todos os dias as 3 horas da manhã, execute o comando abaixo.
crontab -e
  1. Se você nunca definiu uma tarefa cron antes, o sistema pode pedir para escolher o editor de texto padrão. Escolha o editor de sua preferência e prossiga. No final do arquivo, adicione a seguinte linha:
0 3 * * * /caminho/para/scripts/database_insertion_script.sh

This is a challenge by Coodesh

products-parser's People

Contributors

gustavors22 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.