O magalufinder é uma aplicação desenvolvida para o desafio da Tribo Operações Comerciais. Seu objetivo é ajudar os clientes do Magalu a encontrarem as lojas mais próximas que possuam o produto desejado. Aqui está a descrição completa do desafio.
# clone o repositório
$ git clone https://github.com/luisfelipegodoi/magalufinder magalufinder-luis-felipe
# acesse o diretório da aplicação
$ cd magalufinder-luis-felipe
# instale as dependências da aplicação
# este comando é necessário para 'api' e 'front'
$ npm install
# abra o arquivo 'knexfile.js' no diretório raiz do projeto.
# neste arquivo estão as configurações usadas para a base mysql local.
# caso seja divergente, necessario alterar no arquivo tambem (somente alterar o nó 'connection').
$ abra sua base mysql local e execute o comando ```CREATE DATABASE magalufinder```
Após a criação da base local, já é possível executar as migrations
e as seeds
.
# veja que o projeto está dividido em duas pastas raiz principais.
# são elas: 'api' -> api desenvolvida em node.js | 'front' -> desenvolvido em react.
# tais serviços são executados individualmente.
# suba os serviços na seguinte ordem: 1º api, 2º react.
# acesse a pasta 'api' e instale o modulo knex globalmente
$ sudo npm install knex -g
# executa o up 'criação' das migrations
$ knex migrate:latest
# executa o down 'drop' das migrations
$ knex migrate:rollback
# executa as seeds, respeitando a ordem numérica dos arquivos
$ knex seed:run
# o serviço será iniciado em: http://localhost:8000
$ npm start
Navegue até http://localhost:8000. A aplicação será carregada automaticamente após a execução do comando mencionado acima.
# execute `test` para executar os testes unitários.
$ npm run test
# acesse a pasta 'front' e instale as dependências
$ npm install
# o serviço será iniciado em: http://localhost:3000
$ npm start
Navegue até http://localhost:3000. A aplicação será carregada automaticamente após a execução do comando mencionado acima.
A aplicação está organizada da seguinte forma:
├── api/
│ ├── controllers/
│ ├── migrations/
│ ├── models/
│ ├── routes/
│ ├── seeds/
│ ├── test/
│ ├── .babelrc
│ ├── .env
│ ├── .jshintrc
│ ├── .travis.yml
│ ├── .index.js
│ └── .package.json
│
├── front/
│ ├── public/
│ ├── src/
│ ├── .editorconfig
│ ├── .env
│ └── package.json
│
└── README.md