Este documento fornece instruções detalhadas para configurar e executar o sistema completo, incluindo tanto o backend quanto o frontend, utilizando Docker e outras ferramentas necessárias. Siga os passos abaixo para configurar o ambiente de desenvolvimento do zero.
Certifique-se de que os seguintes softwares estão instalados no seu sistema:
- Docker e Docker Compose
- Git
- Node.js (versão 14 ou superior) e npm
- Composer (para gerenciamento de dependências PHP, caso não utilize o Docker para o backend)
A estrutura do projeto está organizada da seguinte maneira:
brindeme/
├── backend/
│ ├── app/
│ ├── bootstrap/
│ ├── config/
│ ├── database/
│ ├── public/
│ ├── resources/
│ ├── routes/
│ ├── storage/
│ ├── tests/
│ ├── vendor/
│ ├── .env
│ ├── composer.json
│ ├── Dockerfile
│ └── phpunit.xml
├── frontend/
│ ├── public/
│ ├── src/
│ ├── .env
│ ├── package.json
│ ├── package-lock.json
│ └── Dockerfile
├── docker/
│ ├── mysql/
│ ├── sqls/
│ └── docker-compose.yml
└── README.md
Clone o repositório e navegue até o diretório do projeto:
git clone <URL_DO_REPOSITORIO>
cd brindemeCrie o arquivo .env para o backend com base no exemplo fornecido:
cd backend
cp .env.example .envEdite o arquivo .env conforme necessário, ajustando as configurações de banco de dados, chave da aplicação, etc.
Crie o arquivo .env para o frontend com base no exemplo fornecido (se existir):
cd ../frontend
cp .env.example .envEdite o arquivo .env conforme necessário, ajustando as configurações de API, URLs, chaves de serviços externos, etc.
Na raiz do projeto (onde está o docker-compose.yml), execute:
docker-compose up -dEste comando iniciará os serviços definidos no docker-compose.yml, incluindo o backend e o banco de dados MySQL.
Para confirmar se os contêineres estão rodando corretamente:
docker psOs seguintes serviços devem estar ativos:
backendmysql
O Laravel (backend) estará disponível em: http://localhost:8000
Caso não esteja utilizando Docker para o backend ou se as dependências precisarem ser instaladas manualmente:
cd backend
composer install
php artisan key:generate
php artisan migrate --seedNota: Se você estiver utilizando Docker para o backend, estas etapas devem ser executadas dentro do contêiner do backend.
Certifique-se de que os jobs do Laravel estão configurados para serem processados corretamente. Você pode iniciar o worker de filas com:
docker exec -it <CONTAINER_ID_DO_BACKEND> php artisan queue:workSubstitua <CONTAINER_ID_DO_BACKEND> pelo ID ou nome do contêiner do backend.
cd ../frontendInstale as dependências do projeto frontend usando npm:
npm installAssegure-se de que o arquivo .env do frontend está corretamente configurado com as URLs da API e quaisquer outras variáveis necessárias.
Inicie o servidor de desenvolvimento do frontend:
npm startO frontend estará disponível em: http://localhost:3000
Nota: Se você estiver utilizando Docker para o frontend, ajuste as instruções conforme necessário para construir e rodar o contêiner do frontend.
Execute os testes diretamente no contêiner do backend:
docker exec -it <CONTAINER_ID_DO_BACKEND> php artisan testEntre no contêiner do backend e inicie o Tinker:
docker exec -it <CONTAINER_ID_DO_BACKEND> php artisan tinkerExecute os comandos abaixo para testar notificações:
use App\Models\User;
use App\Notifications\PriceUpdateCompleted;
$user = User::first();
$user->notify(new PriceUpdateCompleted(10));
// Verifique notificações no banco
$user->notifications;
// Verifique logs
exit
docker exec -it <CONTAINER_ID_DO_BACKEND> cat storage/logs/laravel.logPara parar todos os serviços Docker:
docker-compose downSe necessário, exclua os volumes persistentes do MySQL para limpar os dados:
docker-compose down -vAviso: Este comando removerá todos os dados armazenados nos volumes, incluindo o banco de dados.
-
Clonar o Repositório:
- Utilize
git clonepara obter o código fonte do projeto.
- Utilize
-
Configurar Arquivos
.env:- Configure os arquivos de ambiente tanto para o backend quanto para o frontend.
-
Subir os Contêineres Docker:
- Utilize
docker-compose up -dpara iniciar os serviços necessários.
- Utilize
-
Instalar Dependências:
- No backend, rode
composer installe migrações. - No frontend, rode
npm installe inicie o servidor.
- No backend, rode
-
Testar a Aplicação:
- Execute testes automatizados e verifique as funcionalidades no navegador.
-
Encerrar os Serviços:
- Use
docker-compose downpara parar os contêineres quando necessário.
- Use
-
Acesse o Frontend:
- Navegue até http://localhost:3000/modify-prices.
-
Inserir o Percentual:
- Digite 50 para aplicar um aumento de 50% nos preços dos produtos.
-
Submeter o Formulário:
- Clique em "Atualizar Preços".
-
Verificar no Backend:
- Confirme nos logs do backend que os preços foram atualizados corretamente.
-
Verificar no Frontend:
- Navegue até http://localhost:8000/products para ver os preços atualizados.
-
Acesse o Frontend:
- Navegue até http://localhost:3000/modify-prices.
-
Inserir o Percentual:
- Digite -10 para aplicar um desconto de 10% nos preços dos produtos.
-
Submeter o Formulário:
- Clique em "Atualizar Preços".
-
Verificar no Backend:
- Confirme nos logs do backend que os preços foram atualizados corretamente.
-
Verificar no Frontend:
- Navegue até http://localhost:8000/products para ver os preços atualizados.