Skip to content

Breve teste prático para vaga de Back End na DIN DIGITAL / 2019

Notifications You must be signed in to change notification settings

hbtferreira/teste-back-end-2019

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Teste Back End 2019

O teste consiste em criar uma mini API Rest utilizando Laravel como framework PHP, JWT como autenticação e um simples CRUD. Aqui na DIN DIGITAL nós costumamos trabalhar o desenvolvimento utilizando Docker como ambiente local (Laradock), então este repositório já está preparado para configurar a instância, basta possuir os requisitos de software e executar o comando de configuração automática do ambiente

Requisitos de software para o ambiente

Comando para configuração automática do ambiente

Copie o bloco de commandos abaixo e cole num terminal dentro de sua pasta de projetos OBS: Este commando inclui o próprio git clone No final você terá um ambiente LAMP e um Laravel 5.8, pronto para ser trabalhado, dentro da pasta site.

echo -e "\033[1;92m Clonando...\033[m" &&\
git clone [email protected]:dindigital/teste-back-end-2019.git &&\
echo -e "\033[1;92m Entrando na pasta do repositório clonado...\033[m" &&\
cd teste-back-end-2019 &&\
echo -e "\033[1;92m Entrando na pasta docker...\033[m" &&\
cd docker &&\
echo -e "\033[1;92m Buildando o docker...\033[m" &&\
docker-compose build &&\
echo -e -e "\033[1;92m Parando possíveis dockers abertos...\033[m" &&\
docker stop $(docker ps -a -q) &&\
echo -e "\033[1;92m Ligando o docker...\033[m" &&\
docker-compose up -d &&\
echo -e "\033[1;92m Criando arquivo .env...\033[m" &&\
ln -s ../site/.env.example ../site/.env &&\
echo -e "\033[1;92m Composer install...\033[m" &&\
docker-compose exec --user=laradock workspace sh -c "cd /var/www/site && composer -vvv install --no-scripts" &&\
while ! docker-compose exec mysql mysqladmin --user=root --password=root --host "127.0.0.1" ping --silent &> /dev/null ; do
    echo "Waiting for database connection..."
    sleep 2
done
echo -e "\033[1;92m Acesso Site: http://localhost\033[m"
python -m webbrowser "http://localhost" > /dev/null 2>&1

Requisitos de desenvolvimento

O que será avalidado

  • Funcionar o ambiente docker
  • Ao abrir a collection do Postman, temos 4 rotas (referentes a Autenticação) com exemplos de como devem funcionar (inputs/outputs). Desenvolver essas rotas de forma que ao executá-las no Postman, os resultados sejam exibidos conforme o descrito na doc.
  • Criar 4 rotas privadas referentes à um CRUD de produtos. As informações poderão ser: "Nome", "Preço", "Peso".
  • Atualizar a documentação do Postman
  • Enviar por e-mail o link de seu fork (não precisa criar PR) junto com o link de sua documentação do Postman
  • Obrigado e boa sorte =)

Para iniciar os testes

$ php artisan migrate
$ composer dump-autoload
$ php artisan jwt:secret
$ php artisan db:seed

Credenciais:

Lista de rotas

Method URI Name Action Middleware
POST api/auth/login Login App\Http\Controllers\Api\AuthController@login api
GET api/auth/logout Logout App\Http\Controllers\Api\AuthController@logout api,jwt.auth
GET api/auth/me Me App\Http\Controllers\Api\AuthController@me api,jwt.auth
GET api/auth/refresh Refresh App\Http\Controllers\Api\AuthController@refresh api,jwt.auth
GET api/product Read_All App\Http\Controllers\Api\ProductController@index api,jwt.auth
POST api/product Create App\Http\Controllers\Api\ProductController@store api,jwt.auth
GET api/product/{id} Read App\Http\Controllers\Api\ProductController@show api,jwt.auth
PUT api/product/{id} Update App\Http\Controllers\Api\ProductController@update api,jwt.auth
DELETE api/product/{id} Delete App\Http\Controllers\Api\ProductController@destroy api,jwt.auth

Link para documentação da API no Postman

https://documenter.getpostman.com/view/8529780/SVfKyBMf

About

Breve teste prático para vaga de Back End na DIN DIGITAL / 2019

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 59.5%
  • Dockerfile 33.4%
  • Shell 5.3%
  • HTML 1.5%
  • Vue 0.3%