PHP JavaScript HTML Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
dev-shop-sample
migrations
src
tests
www
.gitignore
Procfile
README.md
SPECS.md
codeception.yml
composer.json
composer.lock
gulpfile.js
package.json
phinx.php

README.md

Objetivo

Criar o carrinho de compras de uma loja que vende desenvolvedores baseado no exemplo fornecido.

Imgur

Queremos descobrir seu nível de habilidade em todas as áreas envolvidas na construção de um aplicativo web: back end, front end e usabilidade.

Sinta-se confortável para focar nas áreas que você tem mais habilidade.

Tarefas e priorização

Priorize a lista de tarefas abaixo explicando os motivos da priorização de cada uma delas. Então, escolha de três a seis tarefas para implementar.

  1. Determinar o preço do desenvolvedor a partir de informações do seu perfil do GitHub, como por exemplo: followers, repos, stars, commits, etc.
  2. Substituir os inputs de texto por uma lista de desenvolvedores com nome, foto, preço e um botão de "Adicionar ao carrinho".
  3. Criar paginação para a lista de desenvolvedores.
  4. Popular a lista de desenvolvedores a partir de uma organização do GitHub.
  5. Permitir a escolha de quantidade de horas contratadas de cada desenvolvedor.
  6. Permitir a adição de um cupom de desconto que altera o preço total da compra. Utilize o código "SHIPIT".
  7. Melhorar a visualização do desenvolvedor no carrinho mostrando mais informações.
  8. Adicionar um botão de "comprar" que leva o usuário a uma página de pedido confirmado.

Server side

Crie uma API REST simples que, no mínimo, utiliza uma lista em memória para guardar o estado do carrinho.

As tarefas mais avançadas exigem integração com API do GitHub. Além disso, você pode utilizar uma persistência mais robusta.

Testes automatizados são extremamente bem vindos.

Adoraríamos que você utilizasse Go, .NET ou Node para construir sua API. Caso contrário, justifique sua escolha de tecnologia.

Client side

Você pode implementar toda a interface com HTML renderizado server-side e formulários.

Uma opção melhor é criar uma single page application que utilize a API REST por AJAX.

De preferência, utilize React. Caso deseje utilizar outras tecnologias, justifique sua escolha.

Entrega e observações

Seu código deve estar disponível em um repositório git, preferencialmente hospedado no Github.

Você pode utilizar plataformas como Heroku ou Google Cloud Plataform para nos mostrar a aplicação funcionando em produção.

Não se preocupe se você não tem experiência em Go, Node ou React. Grande parte do nosso trabalho é lidar com novas tecnologias. Vamos levar isso em consideração.

Boa sorte!