Você está na página 1de 2

Avenida José da Rocha Bomfim, 214, Edifício Paris,

Sala 128, Condomínio Praça Capital, Campinas, SP


Telefone: (19) 3365-6297

Avaliação Técnica
O candidato deverá desenvolver uma aplicação que simule um simples mecanismo de cadastro
de usuários e autenticação. Em seguida, fazer o deploy da aplicação no Heroku usando uma
das linguagens de programação suportadas: Node.js, Ruby, Java, PHP, Python, Go, Scala ou
Clojure. O candidato deverá executar os seguintes passos:

1) Página principal

Esta é a página de entrada da sua aplicação. Deverá considerar dois casos:

a) Se o usuário estiver logado, redirecionar para a página do usuário.


b) Se o usuário não estiver logado, permitir que o usuário realize o login ou crie um
cadastro.

Atividade extra: utilize o Twitter Bootstrap para implementar o layout de forma responsiva e
padronizada.

2) Cadastro de usuário

Para o cadastro, disponibilize um formulário contendo os seguintes campos: nome, email e


senha, além de um botão para submeter os dados.

Ao submeter os dados, faça a validação dos campos:

● Nome: mínimo de 5 e máximo de 128 caracteres.


● Email: identificador único de usuários no formato local-part@domain, sendo que:
○ local-part: máximo de 64 caracteres, formado por dígitos (0-9), letras maiúsculas
(A-Z) ou minúsculas (a-z), caracteres especiais (!#$%&'*+-/=?^_`{|}~) ou ponto (.)
○ domain: máximo de 128 caracteres, formado por dígitos (0-9), letras maiúsculas
(A-Z) ou minúsculas (a-z), ponto (.) ou hífen (-).
● Senha: mínimo de 10 caracteres e máximo de 128, sendo no mínimo 2 dígitos (0-9), 2
caracteres especiais, 2 letras maiúsculas (A-Z) e 2 letras minúsculas (a-z).

Caso os campos estejam válidos, armazene os dados do usuário em uma estrutura de dados
em memória (não use banco de dados para persistência) e redirecione para o login, caso
contrário, mostre o(s) erro(s) de validação.

Renato Silva das Neves (R&D Director)


renato.neves@coffeebeantech.com
Avenida José da Rocha Bomfim, 214, Edifício Paris,
Sala 128, Condomínio Praça Capital, Campinas, SP
Telefone: (19) 3365-6297

Atividade extra: além da validação de backend, valide os campos email e password também
em frontend, usando Javascript ou AJAX.

Importante: não utilize bibliotecas de autenticação, como a Devise em Ruby.

3) Login do usuário

Para o login, disponibilize um formulário contendo os campos email e senha, além de um botão
para submeter os dados.

Ao submeter os dados, valide se a combinação email e senha faz parte da base de usuários.
Caso a combinação esteja válida, crie uma sessão de login e redirecione para a página do
usuário, caso contrário, mostre um erro de autenticação.

4) Página do usuário

Nesta página, mostre o nome e email do usuário autenticado, informações de geolocalização


do IP do cliente (cidade, região e país) e um botão de logout.

Ao submeter o botão de logout, limpe a sessão de login e redirecione de volta para a página
principal.

Para obter informações do IP do cliente, faça uma requisição em backend para a API do
ipinfo.io: https://ipinfo.io/[IP_address]?token=[token]. Veja um exemplo de resposta na
documentação. Para realizar a requisição, não utilize bibliotecas oficiais do ipinfo.io.

5) Deploy no Heroku

Faça o deploy da aplicação no Heroku e compartilhe o repositório da aplicação com o


colaborador de email renatosnrg@gmail.com. Além disso, envie para este mesmo email a url
da sua aplicação. Desta forma sua implementação poderá ser avaliada, tanto em termos
funcionais quanto em termos de código fonte.

Se achar necessário, detalhe suas decisões de implementação no arquivo README na raiz do


projeto.

Renato Silva das Neves (R&D Director)


renato.neves@coffeebeantech.com

Você também pode gostar