Este é um projeto base (template) para um sistema de E-commerce construído com Java e Spring Boot.
Siga as instruções abaixo para configurar, compilar e rodar o projeto em sua máquina local.
Antes de começar, certifique-se de ter as seguintes ferramentas instaladas:
- Java Development Kit (JDK) (versão 21 ou superior é recomendada)
- Maven
Abra o terminal e navegue até a pasta principal da aplicação (onde se encontra o código fonte e o arquivo pom.xml):
cd ecommerceO projeto já inclui o Maven Wrapper (mvnw e mvnw.cmd), o que significa que você não precisa ter o Maven instalado manualmente na sua máquina.
Para iniciar a aplicação, execute o comando correspondente ao seu sistema operacional:
No Windows:
.\mvnw.cmd spring-boot:runNo Linux ou Mac:
.\mvnw spring-boot:runAguarde o download das dependências (na primeira vez) e a inicialização do Spring Boot.
Após a inicialização com sucesso, a aplicação estará rodando localmente. Abra o seu navegador e acesse:
Você deverá ver a página inicial configurada no index.html através do HomeController.
Se o projeto utiliza um banco de dados ou outros serviços auxiliares, você pode iniciá-los utilizando o Docker Compose.
A partir da raiz do repositório (uma pasta acima de ecommerce), execute:
docker-compose up -d(O parâmetro -d roda os contêineres em segundo plano).
src/main/java/.../controller/- Controladores da aplicação (ex:HomeController.java).src/main/resources/templates/- Arquivos de visualização (HTML, como oindex.html).src/main/resources/application.properties- Configurações principais do Spring Boot.pom.xml- Gerenciamento de dependências do Maven.
Para garantir que tudo está funcionando corretamente, você pode rodar os testes automatizados da aplicação:
Windows:
mvnw.cmd testLinux/Mac:
./mvnw test-
Ainda em desevolvimento Toda a análise detalhada e o plano passo a passo com exemplos práticos de código foram compilados no artefato abaixo:
👉 analise_projeto_melhorias.md ──────
- Prevenção de Condições de Corrida: Implementação de Pessimistic Locking no ProdutoRepository.java para garantir que transações simultâneas de checkout no PedidoService.java não resultem em estoques negativos.
- Desacoplamento com DTOs: Criação de Data Transfer Objects para evitar referências circulares e não expor entidades JPA diretamente nas requisições/respostas das rotas REST.
- Ajustes de Segurança: Correção de regras de precedência de rotas no SecurityConfig.java e parametrização de credenciais de inicialização.
- Tratamento Global de Erros: Configuração de um @RestControllerAdvice para retornar mensagens JSON padronizadas e limpas para a API REST.
- Documentação e UI/UX: Inclusão do Swagger/OpenAPI e melhorias práticas nas páginas Thymeleaf, como a prevenção de cliques duplos e autocomplete.
• Qual destas melhorias você gostaria de implementar primeiro? Se desejar, posso começar a refatorar o controle de estoque com o bloqueio pessimista ou configurar os DTOs.