Skip to content

eduardofg87-tech-tests/backend-php-junior

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

backend-php-junior

Teste programador Backend PHP Júnior (Laravel)

Desafio Programador PHP Backend Júnior(Laravel)

As tarefas de CRUD são rotinas muito comuns no dia a dia de desenvolvedores web, o objetivo principal do desafio é fazer um CRUD de Usuários. Somente a rota API é importante, não se preocupe com o frontend. Todos testes de funcionamento do sistema serão realizados através do Postman. Testes uniários com PHPUnit são um plus. Espera-se que o candidato tenha bons conhecimentos em PHP e saiba o mínimo do framework Laravel. Para persistencia dos dados deve ser utilizado algum banco de dados relacional como por exemplo PostgreSQL ou MariaDB.

Instruções:

  1. Faça um fork do projeto.
  2. Envie um e-mail para (contato at ensolucoes dot com) assim que o PR for submetido informando que o desafio foi finalizado.

Objetivo

Construir uma API backend em Laravel que implementem um CRUD e os seguintes endpoints:

Endpoint Method
/ping POST
/auth POST
/user POST
/user PUT
/user DELETE
/user/{:id} GET

Endpoints

Ping

O Ping é público, usado para saber se o server está online.

Auth

Este endpoint irá possuir um header com Authorization e irá enviar via JSON login e senha em um método [POST]. Ele irá retornar um JSON quando der erro e um JSON quando for sucesso.

HTTP/2 200

{  
   "status":"success",
   "message":"Usuário criado e JWT encontrado",
  "tokenjwt":"eyJhbGciOi-RkOM8Hjc5DYNJuqyEy3gvy_IMjcu2w-hl2yHilvPNP_UK0ocUxaKdsD5oS5fV-TYlfH_k",
   "expires":"2019-07-05",
   "tokenmsg":"use o token para acessar os endpoints!",
   "User":{ 
      "id":345,
      "nome":"Programador Backend PHP Júnior",
      "cpf":"12345678909",
      "email":"[email protected]",
      "createdAt":"2019-07-03 07:09:08",
      "updatedAt":"2019-07-03 07:09:08"
   }
}

HTTP/2 500

{  
   "status":"error",
   "message":"Usuário não pode ser autenticado!"
}

User

Este endpoint deverá ser responsável por todo CRUD, ele deverá trazer informações do Usuário como: id nome cpf email created_at updated_at no formato JSON.

Pontos a serem avaliados

  • Organização do código e simplicidade na lógica de programação
  • Utilização de boas práticas (PSRs)
  • Deixar sempre a regra de negócio o mais desacoplada possível.
  • Criar as migrations e seeds para validação (obrigatório)
  • JWT (não obrigatório porém será considerado diferencial)
  • Criar os mocks de teste (não obrigatório porém será considerado diferencial)

Referências

  1. PHP
  2. Laravel
  3. Postman
  4. JWT
  5. Entendendo JWT
  6. PostgreSQL
  7. MariaDB
  8. PHP Unit

About

Teste programador Backend PHP Júnior (Laravel)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published