---
# System prepended metadata

title: Avaliação Frontend (OFICIAL)
tags: [Softplan, Avaliação Frontend]

---

###### tags: `Softplan` `Avaliação Frontend`

# Avaliação Frontend (OFICIAL)

## Objetivo:

#### Desenvolver uma aplicação web contendo os seguintes requisitos:

1. A aplicação deverá estar protegida por login e senha;
2. Deverá existir 2 tipos de perfis (`ADMIN` e `USER`);
3. Deverá possuir interface para pesquisa dos usuários cadastrados;
4. Deverá possuir interface para cadastro (`CRUD`) dos usuários da aplicação;
5. Deverá possuir interface para visualizar “Meu perfil”, podendo alterar a senha;
6. Deverá possuir a opção de "Sair" da aplicação;
7. Deverá aparecer o nome e/ou foto do usuário no `header` da aplicação;

#### Regras de negócio:

*  O usuário com acesso `ADMIN` poderá executar cadastro (`CRUD`) de outros usuários e visualizar;
*  O usuário com acesso `USER` poderá apenas visualizar os usuários do sistema;

#### Requisitos não funcionais:

* Testes unitários;
* O frontend deverá ser desenvolvido em React;
* Utilizar algum mock http, exemplo: [json-server](https://github.com/typicode/json-server);
* Utilizar algum framework UI (Material-UI, Bootstrap, AntDesign, etc...);

#### PLUS:
* Use a sua criatividade, funcionalidades extras serão bem vindas :)
* Utilização de alguma lib para formulários;
* Usuário possuir foto no seu cadastro;

#### O que será avaliado:

* Habilidades com React;
* Organização do código - Boas práticas de Clean Code, arquitetura, padrões de projeto;
* Testes unitários;
* Funcionalidades requisitadas (o CRUD deve estar conforme a especificação);
* Documentação - `README.md` bem descrito para conseguirmos rodar o projeto por aqui;
* Layout das telas;


###### Sugestão de estrutura:

```json=
{
  "users": [
    {
      "id": 1,
      "firstName": "Thomas",
      "lastName": "Hudson",
      "birthDate": "1989-12-24",
      "email": "thomas.hudson@gmail.com",
      "document": "52254883070", // CPF gerado no site: https://www.4devs.com.br/gerador_de_cpf
      "password": "MTIzNDU2", // base64 de '123456'
      "role": "ADMIN",      
    },
    {
      "id": 2,
      "firstName": "Gallegos",
      "lastName": "Hopkins",
      "birthDate": "1996-10-24",
      "email": "gallegos@hopkins.com",
      "document": "28453844089", // CPF gerado no site: https://www.4devs.com.br/gerador_de_cpf
      "password": "MTIzNDU2", // base64 de '123456'
      "role": "USER",      
    },
  ]
}
```


#### Instruções para envio:
Para o envio do exercício pedimos que seja criado um repositório `privado` no github:
* Adicionar como contribuidor o usuário: `devunic`
* Lembrar de colocar observações, decisões e outros comentários que possam ser úteis no arquivo `README`;

#### Ahh, se você possuir algum projeto pessoal e quiser nos mostrar, seria legal ;D