chaordic / developer-intern-challenge

Desafio para os futuros desenvolvedores da Linx+Neemu+Chaordic

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Desafio estagiário: Desenvolvimento

ATENÇÃO: Antes de começar, se cadastre na vaga via Recruiterbox =]

O desafio proposto consiste no desenvolvimento de uma landing page capaz de gerar um link encurtado funcional a partir do input de uma URL. Nele serão testados as habilidades e qualidade de código de um desenvolvedor ao transformar um layout em um protótipo funcional com back-end e front-end bem desacoplados.

O encurtador de URL deverá ser implementado no back-end juntamente com um validador capaz de indicar se o link gerado está funcionando. A comunicação entre o back-end e o front-end deverá forma de uma RESTful API, onde neste último somente serão mostrados os resultados.

É esperado, através da implementação, que seja possível além de encurtar a URL que, ao acessá-la, o número de acessos incremente-se.

Todas informações devem ser salvas em um banco de dados.

Instruções

  • Forke esse repositório e faça o desafio numa branch com o seu nome (exemplo: nome-sobrenome);
  • Boa parte do seu objetivo é transformar esse mockup em um protótipo funcional HTML/CSS/JS;
  • No seu projeto, crie um diretório chamado project. Todos os arquivos que você criar devem estar dentro desta pasta;
  • Assim que concluir o seu desafio, abra um pull request com suas alterações.

Pré-requisitos

  • O front-end deverá ser desenvolvido utilizando o framework React;
  • O back-end deverá ser desenvolvido utilizando o framework Node.js.

Layout

  • Dentro da pasta Layout possui um arquivo psd e jpg, use-os como referência para desenvolver o protótipo;
  • Use as cores definidas no guideline;
  • As fontes utilizadas são: Roboto e Roboto Slab;
  • Caso necessário, na pasta Assets possui as imagens já exportadas.

Dicas

  • Seu HTML deverá ser o mais semântico possível (faça bom uso das tags HTML5);
  • No JavaScript, evite poluir o escopo global. O uso ou não de bibliotecas também será avaliado.

Diferenciais

  • Boa documentação (como rodar o projeto, como foi organizado...);
  • Uso de pré-processadores CSS (Sass, Less, Stylus);
  • Adaptar a página para dispositivos móveis (torná-la responsiva);
  • Utilizar alguma automatização (Grunt, Gulp, NPM Scripts, webpack);
  • Criar essa interação ao submeter um novo link;
  • Consumir esse JSON no back-end para a seção TOP 5 como o estado inicial da aplicação;

Em caso de dúvidas, abra uma issue.

Boa sorte =]

About

Desafio para os futuros desenvolvedores da Linx+Neemu+Chaordic