- Javascript => NodeJs
- Banco de dados PostgreSQL
- Docker utilizado para rodar o banco de dados
- CORS
- Express para construção da api
- Axios para fazer requisições HTTP
- Dotenv para carregar variáveis de ambiente
- Node-postgres para realizar a conexão com o banco de dados
- Puppeteer para realizar o scraping
- Node-cron para configurar o cron job e rodar o scrap diariamente
- Nodemon para ter hot reload da aplicação em desenvolvimento
- PM2 para rodar a api em produção
- Git hooks com husky para manter o padrão de commits
O projeto é composto por 3 partes, um web scraper que busca dados do Open Food Facts, um banco banco de dados PostgreSQL para armazenar os dados dos produtos, e uma API REST construída em Node + Express para disponibilizar os dados do banco
Para utilizar o projeto em produção veja PRODUCTION.docs.md
Clone o projeto e acesse a pasta
git clone git@lab.coodesh.com:hanyelchamon/challenge-20220626.git && cd challenge-20220626
Configure o horário para o CRON rodar
no arquivo cron.config.json
# Instale as dependências
$ npm install
Inicialize o banco de dados
# Rode o banco de dados no docker
$ npm run docker:dev
# Rode a migration do banco
$ npm run migrate
# Rode o CRON
$ npm run cron
Em outro terminal rode a API
$ npm run dev
Api irá rodar na porta definida no arquivo .env.dev na variável PORT
This is a challenge by Coodesh