Indice: Rodando projeto | Checar e-mails | Teste externos do endpoint
Instruções para entrega:
- Versione, com git, e hóspede seu código em algum serviço de sua preferência: github, bitbucket, gitlab ou outro.
- Crie um README com instruções claras sobre como executar sua obra.
- Envie um e-mail com o link do repositório
A API Restful deve contemplar os módulos Cliente, Produto e Pedido, sendo que cada um deverá conter endpoints CRUDL.
As tabelas devem conter as seguintes informações:
- ✔ Clientes: nome, e-mail, telefone, data de nascimento, endereço, complemento, bairro, cep, data de cadastro; @done
- ✔ Produtos: nome, preço, foto; @done
- ✔ Pedidos: código do cliente, código do produto, data da criação; @done
Requisitos:
- ✔ Não devem existir dois clientes com o mesmo e-mail. @done
- ✔ O produto deve possuir foto. @done
- ✔ Os dados devem ser validados. @done
- ✔ O sistema deve conter uma série de tipos de produtos já definidos. @done
- ✔ O pedido deve contemplar N produtos. @done
- ✔ O cliente pode contemplar N pedidos. @done
- ✔ Após a criação do pedido o sistema deve disparar um e-mail para o cliente contendo os detalhes do seu pedido. @done
- ✔ Os registros devem conter a funcionalidade de soft deleting. @done
- ✔ Padronização PSR @done
- ✔ Nomenclatura de classes, métodos e rotas no padrão americano. @done
Requisitos adicionais:
- ✔ Testes unitários. @done
- ✔ Dockerizar a aplicação @done
Critérios de avaliação:
- Profundidade do conhecimento e utilização das funcionalidades do framework.
- Organização do código.
- Padronização PSR
- Fidelidade aos requisitos solicitados.
- Laravel 10
- Docker
- MailHog
- Mysql
- Redis
Clone Repositório
git clone git@github.com:elisonsilva/desafio-disys-restfull.git desafio-disys-restfull
cd desafio-disys-restfull
Crie o Arquivo .env
cp .env.example .env
Atualize as variáveis de ambiente do arquivo .env se ncessario
Obsevação: O desafio foi desenvolvido no Windows 11 com WSL2 (Ubuntu 20.04), Docker e Docker Composer instalado dentro do mesmo, com isso a chamada 'docker-compose' muda para 'docker compose' (espaços). Você pode alterar a chamada diretamente arquivo Makefile, em DOCKER_COMPOSE ou DOCKER_EXEC
Rode o comando abaixo para:
- Subir o Containers
- *Acessa o Container de App
- Instala as dependencias (Composer install)
- Configurações do Laravel
- Importa as Migrations
- Popula o banco (Seeders)
- Roda os testes (PHPUnit)
# Todas as configuração
make run
Rodar apenas os testes
make test
Acesse os endoints via Postman ou Insominia
Acessar o container com o Laravel
make test
Observação: O desafio foi desenvolvido no Windows 11 com WSL2 (Ubuntu 20.04), Docker e Docker Composer instalado dentro do mesmo, com isso a chamada 'docker-compose' muda para 'docker compose' (espaços).
Suba os containers do projeto
docker compose up -d
Acesse o container app
docker compose exec app bash
Instale as dependências do projeto
composer install
Gere a key do projeto Laravel
php artisan key:generate
Acesse os endoints via Postman ou Insominia
Foi utilizado MailHog para testar o envio e recebimento de e-mails local, o link para visualizá-los é http://localhost:8025
Instale a extensão REST Client no VsCode, para testar os arquivos abaixo:
Utilizando Postman, com o abaixo link você pode criar um fork ou rodar diretamente as coleções, environments e os testes de endpoints no programa. Run Collections;
Link coleção: https://documenter.getpostman.com/view/4246747/2s9YRB3XnS
Arquivos para importar