Giter VIP home page Giter VIP logo

challenge-fullstack's Introduction

Challenge para desenvolvedor Full Stack

O objetivo deste desafio é avaliarmos o seu domínio em desenvolvimento fullstack, ou seja, sua organização, boas práticas com o código, criação e consumo de APIs Restfull, conhecimento dos frameworks e tecnologias utilizadas.

Um layout final bem elaborado e desenhado aponta para um diferencial seu, mas não é necessário se preocupar muito com o design. Afinal, não estamos buscando um designer para essa vaga!

Regras

  1. Todo o seu código deve ser disponibilizado num repositório público ou privado em seu github ou bitbucket pessoal. Envie o link para [email protected] no prazo de 3 dias após o recebimento deste desafio;
  2. Desenvolver o projeto utilizando:
    • MEAN Stack (com AngularJS 1.x)
    • Mongoose para modelagem dos dados a serem gravados no banco
    • HTML e CSS (ou algum pré-processador)
    • Google Geocode API (se precisar de uma API Key do Google, basta solicitar por e-mail)
    • Leaflet para manipulação do mapa. O mapa a ser utilizado pode ser qualquer um (Google, Mapbox, OSM, etc).

O Desafio

Este é o layout que deverá ser produzido: layout

Especificação das funcionalidades

Ao finalizar o desafio, o usuário deverá estar habilitado a cadastrar os clientes no formulário, e ao salvar, atualizar o mapa com o ponto (pin) daquele cadastro e a tabela com os dados do cliente. Na tabela deverá conter um botão para excluir o cliente, que deverá removê-lo do banco, mapa e tabela.

POST /deliveries

Você deve fazer um cadastro de entregas, que terá os seguintes campos:

  1. Nome do cliente
  2. Peso em kg
  3. Endereço
    • Logradouro
    • Número
    • Bairro
    • Complemento
    • Cidade
    • Estado
    • País
    • Geolocalização
      • Latitude
      • Longitude

Estes dados devem ser salvos numa collection deliveries do Mongo. Note que no formulário há apenas um campo para colocar o endereço. Isso se deve ao fato de que o usuário deverá preencher apenas uma linha de endereço. Ao clicar em Buscar, os dados deste campo devem ser enviados à API do Google para buscar as informações de localização e incorporados ao objeto da delivery. Neste ponto, os campos de latitude e longitude devem ser preenchidos, mas devem ficar como disabled. Ao clicar em Salvar, salva os dados no banco, limpa o formulário e atualiza o mapa e a tabela. O botão Resetar Cadastro deve limpar a base de deliveries, tabela e pontos do mapa.

GET /deliveries

A requisição GET para /deliveries deve trazer um json com as informações das deliveries que existem no banco e exibí-las no mapa e na tabela.

DELETE /deliveries

Há um botão na tabela para excluir a delivery. Ele deverá remover todos os clientes tanto do banco quanto do mapa/tabela.

Algumas dicas e observações

Obs 1.: Fique a vontade para utilizar qualquer 3rd party;

Obs 2.: Considere que todos os campos são de preenchimento obrigatório no formulário.

Obs 3.: Considere validar os campos também na API e em caso de inconsistência retornar erro num JSON estruturado com código HTTP 400

Dúvidas

Envie suas dúvidas diretamente para [email protected] ou abrindo uma issue.

challenge-fullstack's People

Contributors

gisouzap avatar williamknn avatar r-yoshimoto avatar renatograel14 avatar maubissi 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.