Skip to content

Latest commit

 

History

History
91 lines (63 loc) · 3.91 KB

readme.md

File metadata and controls

91 lines (63 loc) · 3.91 KB

Ecommerce

Ferramentas utilizadas

Java Spring Gradle Docker MySQL GitHub Actions RabbitMQ

Projetos complementares do ecommerce

Sobre

Esse projeto esta sendo criado para gerenciar toda a parte de ecommerce, produtos, orders, etc.

  • Porquê decidiu fazer esse projeto?

    • Para revizar os conceitos de clean architecture, aprender domain events e aprender a lidar com filas (RabbitMQ).
  • Quais foram os desafios de implementá-lo?

    • Implementar o DDD corretamente, pois é um conceito que eu não tinha muito conhecimento, implementar toda a parte de produtos
  • O que eu aprendi com ele?

    • Aprendi que é extremamente importante salvar os eventos que foram enviados para a topic, pois se o servidor cair, os eventos não serão perdidos e poderão ser enviados novamente para a topic, também aprendi que é importante ter uma fila para cada serviço, pois se um serviço cair, os outros serviços não serão afetados, aprendi também que devemos pensar e organizar tudo antes de começar a programar, pois se não fizermos isso, o código ficará uma bagunça e será difícil de dar manutenção.

Tabela de conteúdos

Arquitetura

Circulo da clean architecture

Camadas da aplicação

Domain, é a camada onde se encontra as regras de negócio, validações e as interfaces gateways (abstração dos métodos do banco dedados, são usadas para remover o acomplamento com o banco de dados)

Application, é a camada que contem todos os casos de uso (criar um usuário, pegar um usuário pelo id, atualizar um usuário, deletar um usuário, esse é famoso CRUD) e contem a integração com o gateway do banco de dados

Infrastructure, é a camada responsável por conectar tudo, o usuário com a application e domain layer, contem a conexão com o banco de dados, entidades do banco e as rotas

Requisitos para rodar o projeto

  1. Docker e docker-compose
  2. Java e JDK 17

Instruções para executar o projeto

  1. Baixe a aplicação e instale as dependências:
# Baixando o projeto e acessando o diretorio
git clone https://github.com/Kaua3045/ecommerce.git cd ecommerce

# Baixando as dependências
./gradlew dependencies  
  1. Antes de executar a aplicação, você precisa configurar o arquivo .env.example, depois renomeie ele para .env

  2. Agora inicie o container do banco de dados:

# Execute o container do banco de dados
docker-compose -f docker-compose-dev.yml up -d
  1. Agora inicie a aplicação:
# Iniciando a aplicação
./gradlew bootRun
  1. A url base da aplicação é: localhost:8080/

Contribuindo com o projeto

Para contribuir com o projeto, veja mais informações em CONTRIBUTING

Changelog

Para ver as últimas alterações do projeto, acesse AQUI

Configurações para dev

After cloning project add commit-msg hook in your git path

    git config core.hooksPath .githooks