O desafio é criar um crud simples (criar, recuperar, listar e remover) em PHP e que salve os dados no banco de dados (Firebird, MySQL, Mongo, PostgreSQL, sqLite) através de uma API REST. Imprescindível separar a camada visual da camada de API em Actions ou Controllers diferentes.
Tabela Pessoas
Codigo | Nome | CPF | Categoria | Classificação | |
1 | Jorge da Silva | 111.111.111-11 | jorge@terra.com.br | 1 | Ouro |
2 | Flavia Monteiro | 111.111.111-11 | flavia@globo.com | 2 | Ouro |
3 | Marcos Frota Ribeiro | 111.111.111-11 | ribeiro@gmail.com | 2 | Ouro |
4 | Raphael Souza Santos | 111.111.111-11 | rsantos@gmail.com | 1 | Ouro |
5 | Pedro Paulo Mota | 111.111.111-11 | ppmota@gmail.com | 1 | Ouro |
6 | Winder Carvalho da Silva | 111.111.111-11 | winder@hotmail.com | 3 | Prata |
7 | Maria da Penha Albuquerque | 111.111.111-11 | mpa@hotmail.com | 3 | Prata |
8 | Rafael Garcia Souza | 111.111.111-11 | rgsouza@hotmail.com | 3 | Prata |
9 | Tabata Costa | 111.111.111-11 | tabata_costa@gmail.com | 2 | Ouro |
10 | Ronil Camarote | 111.111.111-11 | camarote@terra.com.br | 1 | Ouro |
11 | Joaquim Barbosa | 111.111.111-11 | barbosa@globo.com | 1 | Ouro |
12 | Eveline Maria Alcantra | 111.111.111-11 | ev_alcantra@gmail.com | 2 | Ouro |
13 | João Paulo Vieira | 111.111.111-11 | jpvieria@gmail.com | 1 | Ouro |
14 | Carla Zamborlini | 111.111.111-11 | zamborlini@terra.com.br | 3 | Prata |
Tabela Categoria
Codigo | Nome |
1 | Admin |
2 | Gerente |
3 | Normal |
Backend: Você pode ou não utilizar um framework PHP.
Frontend: Pode ser de sua prefência: jquery, react, vueJS... ou até mesmo em html puro realizando os requests direto php.
- Validar os campos obrigatórios para edição e inclusão: Código, Nome
- Categoria pardão = 3
- Mascarar o campo CPF para digitação de dados;
- o campo classificação não deve ser armazenado em tabela, porém, deve ser apresentado em interface com a seguinte regra: -- para valores de categooria 1 ou 2, deve-se apresentar Ouro -- para valor de categoria 3, deve-se apresentar Prata
Requisitos:
- Faça paginação no grid de listagem inicial de 5 elementos; Pode usar JGrid, PrimeVue, qualquer outro.
- Crie os seeders para popular as tabelas sugeridas acima;
- Publicar em um repositório github;
- Criar um README.md com instruções;
O objetivo do teste é avaliar a forma e organização como o problema será resolvido.
Diferenciais opcionais
- VueJS2 ou VueJS3;
- Testes unitários da API RestFull usando phpUnit, Pest, Codeception;
- Utilize Docker; Publicar no DockerHub.
- Utilizar Firebird;
Ao finalizar o teste envie a url do repositório para: team@werecruiter.tech