VTEX - DEVSHOP

Desafio de avaliação do processo seletivo da empresa VTEX – Rio de Janeiro.

Escopo da app

Carrinho de compras de horas de trabalho de desenvolvedores de uma empresa que esteja no GitHub. Foi escolhido para desenvolvimento da app o modelo SPA (Single Page Application).

Tecnologias / Dependências

  • I. Client side
  • I. Twitter Bootstrap para UI
  • II. AngularJS para controle do fluxo da aplicação e modelo SPA
    • I. NGResource – Wrapper para facilitar comunição entre a Api do Github e o AngularJS
    • II. NGRoute – Controle de rotas do Angularjs
  • III. Grunt para automatização de tarefas como: concatenação, rodar testes etc.
  • IV. Bower para gerenciar dependências
  • II. Server side
  • I. Nodejs
  • II. Express Framework Nodejs

Justificativa de tecnologia

AngularJS – Devido ao pouco tempo que tive para desenvolver a app, por conta de um freelancer que terminei a poucos dias, preferi por optar pelo Angular pois já realizei trabalho s com ele outras vezes. React estou estudando e somente tenho experimentos pessoais.

Estrutura do software

Diretórios

  • I. vtex – Pasta raiz
  • I. node_modules – local onde são instalados os módulos nodejs (Express)
  • II. public – diretório de arquivos estáticos (javascript, css, html)
  • I. css – diretório onde estão localizados nossas folhas de estilo
  • II. js – diretório onde estão localizados nossos arquivos javascript
    • I. app – diretório onde estão localizados os arquivos de nossa SPA AngularJS.
    • II. vendor – diretório de bibliotecas javascript externas (Este diretório é criado pelo bower automaticamente, se configurado)
    • III. main.js – configuração do modulo e rota do AngularJS
    • III. partials – diretório onde estão localizados fragmentos/partes do html da app
    • IV. index.html – Arquivo de layout de nossa app
  • III. .bowerrc - Arquivo de configuração do Bower
  • IV. app.js – Arquivo nodejs contendo api para salvar estado do carrinho
  • V. Gruntfile.js – Arquivo com configurações de tarefas do Grunt
  • VI. package.json – Arquivo de definição de dependências NPM

Instalação

Pré-requisitos:

  • Nodejs
  • NPM (Gerenciador de dependências do Nodejs)
  • Grunt
  • Bower

  • Clonar Repositório no Github:

    git clone https://github.com/eduiagami/test_vtex.git

  • Acessar pasta raiz

    cd vtex

  • Instalar dependências do NPM

    npm install

  • Instalar dependências do Bower

    bower install

  • Rodar grunt para habilitar server

    grunt

  • Rodar app nodejs

    node app.js

  • Acessar no navegador http://localhost:9000/public/index.html

Dúvidas?

E-mail: eduardo.abreu.santos[at]gmail[dot]com