23.01.2017 Views

Software Developer

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Treasy Dev Warriors Challenge


POR QUE ESTAMOS FAZENDO ESTE TESTE?<br />

Nós queremos montar um time fodástico com desenvolvedores realmente acima da média, então<br />

precisamos saber como você programa. Em uma aplicação SaaS qualquer linha de código escrita<br />

sem pensar é uma bomba relógio, com escala cedo ou tarde vai dar merda, por isso pense bem em<br />

cada linha que for codar.<br />

COMO VOCÊ SERÁ AVALIADO<br />

Basicamente iremos avaliar tudo no seu código, desde indentação até como você criou a regra de<br />

negócio. Inclusive quando você vier fazer a entrevista você será questionado sobre o seu código,<br />

então capriche.<br />

Os principais pontos para você se preocupar:<br />

<br />

<br />

Arquitetura MVW (ou outra arquitetura que separe as camadas da aplicação)<br />

Clean Code<br />

E o mais importante de tudo: surpreenda-nos!<br />

PRAZO E ENTREGA<br />

Como o objetivo não é avaliar a velocidade da sua entrega e sim a qualidade do projeto<br />

desenvolvido, pedimos que você avalie o desafio, a sua disponibilidade e nos confirme a data de<br />

entrega.<br />

Você deve nos enviar por email o endereço do GitHub com o projeto, que além do código deve<br />

conter as instruções necessárias para gerar a expedição e subir a aplicação.<br />

DESAFIO<br />

Você deve criar uma aplicação para representar uma estrutura de arvore (não é à toa que o nome<br />

da nossa empresa é Treeeasy). Além de exibir a estrutura ela deve permitir adicionar, editar, excluir<br />

os nós da arvore e também fazer busca pela descrição do nó. A estrutura da arvore deve ser<br />

semelhante a imagem abaixo.


COMPORTAMENTOS ESPERADOS<br />

<br />

<br />

<br />

<br />

<br />

<br />

Ao filtrar a arvore devem ser exibidos somente os nós que contém o termo pesquisado e<br />

todos os seus pais para que ela mantenha a hierarquia;<br />

Ao excluir um nó todos os seus filhos devem ser removidos também;<br />

Ao cadastrar ou editar um nó devem ser solicitados os campos código, descrição e<br />

observação sendo que somente código e descrição são obrigatórios;<br />

Não deve ter limite de níveis e nós cadastrados;<br />

Na exibição da arvore deve mostrar somente a descrição dos nós e ao colocar o mouse<br />

sobre um nó deve exibir um tooltip com o código, a descrição e a observação do nó;<br />

Deve ser possível expandir e fechar cada um dos nós e também ter a opção de expandir e<br />

fechar todos ao mesmo tempo;<br />

REQUISITOS TÉCNICOS<br />

O backend deve ser construindo utilizando Java 8;<br />

O frontend deve ser construído utilizando AngularJS 1.6.x;<br />

Pode ser utilizada qualquer biblioteca ou componente tanto do Java com do AngularJS;<br />

A persistência dos dados deve ser feita utilizando Hibernate e MySQL;<br />

O Hibernate que deve gerar as tabelas e relacionamentos necessários no banco de dados ao<br />

subir a aplicação;<br />

A comunicação entre o backend e o frontend deve ser feita através de métodos REST<br />

utilizando JSON;<br />

O carregamento da arvore pode ser feito de uma vez só (eager), ou seja, não precisa<br />

carregar somente o que se está visualizando (lazy);<br />

No final o projeto deve gerar um WAR que será testado no Tomcat 9;<br />

Agora é só codar<br />

Happy Coding and Go Forth to Victory.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!