Skip to content

mateusbcb/teste_grupo_plan

Repository files navigation

Teste Plan Grupo

Objetivo:

Backend

Crie uma pequena API para cadastro de eletrodomésticos contendo recursos para criação, listagem, edição e remoção de registros. Um registro de eletrodoméstico deve conter, pelo menos, as seguintes informações:

  • Nome (Ex: Geladeira Frost Free)
  • Descrição (Ex: Este produto é totalmente versátil. Tudo para ser personalizado para comportar o que você preferir.)
  • Tensão (Ex: 220v)
  • Marca

Listagem das possíveis marcas:

  • Electrolux
  • Brastemp
  • Fischer
  • Samsung
  • LG

Frontend

Crie uma pequena aplicação frontend para utilizar a API desenvolvida.

Pontos importantes:

  • Exiba mensagens para orientar o usuário (erros, avisos e alertas).

Requisitos Técnicos:

  • Utilizar um framework Javascript, preferencialmente VueJS, mas pode ser utilizado outro exemplo: ReactJS, AngularJS, entre outros.

tecnologias utilizadas

  • Composer
  • Wamp server
  • VsCode
  • PHP 8
  • laravel 9x
  • npm (gerenciador de pacotes)
  • Postman (programa externo para gerenciar API´s)

Bibliotecas / Packages

  • Jetstream (laravel/jetstream) + Livewire
  • tailwindcss 3x
  • Bootstrap 5
  • JWT (Json Web Token)

Instalação

Para instalação, irei partir do pressuposto que já tenha instalado e configurado o básico para rodar o PHP com o Laravel. Lembrando que eu utilizei as tecnologias já citadas acima.

1º Faça o clone desse repositório

2º Crie um Banco de Dados MySql (aqui eu utilizei o PHPMyAdmin para a criação).

3º Duplique o arquivo ".env.example" e renomeie para ".env".

4º Dentro do arquivo ".env" procure as configurações de Banco de Dados

DB_CONNECTION=mysql
DB_HOST=[NOME DO SEU HOST]
DB_PORT=3306
DB_DATABASE=[NOME DO BANCO CRIADO NA ETAPA 2]
DB_USERNAME=[USUARIO DO BANCO] DB_PASSWORD=[SENHA DO BANCO]

5º Irá precisar gerar uma "APP_KEY", abra em um terminal/CMD/Shell e navegue até a Raiz desse projeto, onde se localiza o arquivo artisan e execute o seguinte comando

php artisan key:generate

6º Agora precisa rodar as migration e para o banco não vir vazio pode rodar o seguinte comando

php artisan migrate:fresh --seed

Esse comando irá criar as tabelas no DB e popular com algumas marcas e um usuário Admin.

Usuário: [email protected]
Senha: password

7º Rode o comando

php artisan jwt:secret

Para gerar no .env a secret key do JWT

8º Rode o comando:

npm run dev

Esse comando, ficará rodando no terminal, executando o pacote "Vite", do laravel 9 para monitorar os recursos do projeto.

9º Por final basta rodar o servidor local do Laravel com o comando:

php artisan serve

Por padrão o servidor iniciará no endereço: http://127.0.0.1:8000

Se tudo ocorreu bem é para estar vendo a página inicial do Teste. Tela de Login.


Caso de algum erro ao rodar o npm run dev tente executar os seguintes comando:

npm run install
npm run build
npm run dev

Talvez seja necessário rodar o comando 'npm audit fix' ou 'npm audit fix --force'.



API

Para usar os endpoints da api, é necessário ter uma conta na plataforma. Por padrão, existe o usuário admin, criado na 6ª etapa da instalação.

Para fins de teste da API foi utilizado o POSTAN.

Com o Postman aberto dentro de Workspace, crie uma nova Collection, ou simplesmente uma nova aba.


Com o servidor rodando, faça os teste da api.


Endpoins


Antes de testar todos os endpoints, não esqueça de se logar para gerar o Token de autorização do JWT.

Todos os endpoints possuem uma url base que por estar localmente deve ser:

URL_Base = http://127.0.0.1:8000

Todas as respostas dos endpoints são Json portanto para cada endpoint é necessário colocar na aba Headers os seguintes KEY e Value

KEY VALUE
Accept application/json

para se Logar utilize o seguinte endpoint:


Method: POST

  • {{url_base}}/api/login
    

Na aba Body->form-data, insira os seguintes KEY e Value:

Key Value
email [email protected]
password password

Clique em "Send", caso dê tudo certo, receberá como resposta um Json com o Token, semelhante a esse:

{
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMTI3LjAuMC4xOjgwMDAvYXBpL2xvZ2luIiwiaWF0IjoxNjYxNzg1NjMzLCJleHAiOjE2NjE3ODkyMzMsIm5iZiI6MTY2MTc4NTYzMywianRpIjoiTkc4WVpiRW12TEZOeTNlYyIsInN1YiI6IjEiLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.Bx9bKs6pceLiLxPBwvdIDDdgrs3xQV7jeBNQblPysK0",
    "token_type": "bearer",
    "expires_in": 3600
}

Com o Token em mãos, nos endpoints que precisam de autorização, será necessário inserir na guia de "Autorization", selecionar o Type: "Bearer Token" e inserir o Token gerado.

Lista os eletrodomésticos

  • Lista todos os eletrodomésticos.

Method: GET|HEAD

  • {{url_base}}/api/v1/eletrodomesticos
    

Selecione um eletrodoméstico

  • Seleciona um eletrodoméstico com base no seu ID.

Method: GET|HEAD

  • {{url_base}}/api/v1/eletrodomesticos/ID
    

Criar um Eletrodoméstico

  • Crie um novo eletrodoméstico.

Method: POST

  • {{url_base}}/api/v1/eletrodomesticos
    

Para a criação é necessário preencher os campos em Body->x-www-urlencoded com os seguintes KEY e VALUE

KEY VALUE
nome Nome do Eletrodoméstico
descricao Descrição do eletrodoméstico
tensao 110v ou 220v
maraca_id ID da Marca
preco preço (campo string, pode preecher ponto e virgula)
cor Cor (string, insira o nome da Cor)

Editar um Eletrodoméstico

  • Edita um eletrodoméstico com base em seu ID.

Method: PUT|PATCH

  • {{url_base}}/api/v1/eletrodomesticos/ID
    

Para editar é necessário preencher os campos em Body->x-www-urlencoded com os seguintes KEY e VALUE

KEY VALUE
nome Nome do Eletrodoméstico
descricao Descrição do eletrodoméstico
tensao 110v ou 220v
marca_id ID da Marca
preco preço (campo string, pode preencher ponto e vírgula)
cor Cor (string, insira o nome da Cor)

Deletar um Eletrodoméstico

  • Deleta um eletrodoméstico com base em seu ID.

Method: DELETE

  • {{url_base}}/api/v1/eletrodomesticos/ID
    

Obrigado!

Mateus Brandt

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages