Este projeto é uma API CRUD para gerenciamento de produtos. Foi desenvolvido seguindo os princípios do Desenvolvimento Guiado por Testes (TDD) e está estruturado usando a arquitetura de Design Dirigido pelo Domínio (DDD). O projeto utiliza o MapStruct para mapeamento de objetos, garantindo uma conversão perfeita entre entidades e DTOs. Além disso, impõe padrões de codificação através do uso do Checkstyle.
- Funcionalidade CRUD completa para produtos.
- Práticas de TDD.
- Arquitetura DDD.
- Mapeamento de objetos com MapStruct.
- Consistência de código com Checkstyle.
- Contêinerização com Docker.
Antes de executar este projeto, você precisará de:
- Docker
- Docker Compose
Para colocar o projeto em funcionamento na sua máquina local, siga estes passos:
- Clone o repositório:
git clone [https://github.com/Marcos653/ProductCrud-TDD-DDD]
cd [ProductCrud-TDD-DDD]
- Inicie a aplicação usando o Docker Compose:
docker-compose up --build
Este comando construirá a imagem Docker para o products-service
e iniciará os serviços definidos no arquivo docker-compose.yml
.
- Acesse a aplicação em
http://localhost:8080
.
A aplicação está configurada para usar o PostgreSQL. A configuração do Docker Compose inclui um serviço postgre-db
que executa o PostgreSQL e inicializa o banco de dados products
.
Para executar o Checkstyle para análise de código:
mvn checkstyle:check
Para executar testes e verificar a aplicação:
mvn clean test
Para informações detalhadas sobre os endpoints fornecidos e como usá-los, consulte a documentação da API em http://localhost:8080/swagger-ui.html
.
Sinta-se à vontade para fazer fork do repositório, fazer alterações e enviar pull requests. Por favor, certifique-se de que seus commits seguem o formato convencional de commits e que todos os testes estão passando.
Este projeto é de código aberto sob a licença MIT.