Skip to content

leoferreiralima/wishlist

Repository files navigation

Wishlist Api

CI Release Quality Gate Status Code Smells Coverage

Esta aplicação é projetada para fornecer um serviço de Wishlist para uma plataforma de e-commerce. Ela permite que os clientes adicionem, removam e visualizem produtos em sua Wishlist. Este serviço é construído para ser parte de uma arquitetura de microsserviços e foca exclusivamente na gestão da funcionalidade de Wishlist.

Sumário

Tecnologias

  • Java 17
  • Spring Boot
  • Jacoco
  • Gradle
  • MongoDB (Banco de Dados Principal)
  • Redis (Cache)
  • Docker
  • Nginx
  • Aws EC2
  • Github Actions (CI/CD)
  • Sonar Cloud (Quality Gateway)

Links Úteis

Features

  • Adicionar Produto à Wishlist: Clientes podem adicionar seus produtos preferidos à sua Wishlist.

    • O Cliente pode adicionar no máximo 20 Wishlists.
  • Remover Produto da Wishlist: Clientes podem remover produtos da sua Wishlist.

  • Visualizar Wishlist: Clientes podem visualizar todos os produtos em sua Wishlist.

  • Verificar Produto na Wishlist: Clientes podem verificar se um produto específico está em sua Wishlist.

Demo

Essa aplicação está rodando em um EC2 na AWS. Clique aqui para acessar o swagger

Swagger

Rodar Local

Pré-Requisito: Docker e Docker Compose

Faça um clone do Projeto

  git clone https://github.com/leoferreiralima/wishlist.git

Vá para a pasta do projeto

  cd wishlist

Suba os containers do docker

  docker-compose up -d

E pronto! Agora você pode acessar os recursos abaixo:

Rodar Testes

Pré-Requisito: Docker e Java 17

Para rodar os testes basta executar o comando abaixo

  .\gradlew build

Após o comando finalizar o report do Jacoco será gerado na pasta /build/reports/jacoco/index.html

Arquitetura

Arquitetura Wishlist Api

Sugestões de Melhorias

O projeto já possui uma excelente estrutura, mas sempre há espaço para melhorias. A seguir, estão listadas algumas sugestões para aperfeiçoamentos futuros:

  • Logs (ELK, Sentry)
  • Monitoramento e Observabilidade (Datadog, ELK, Dynatrace)
  • Load Balancer e Auto Scaling (Aws)
  • Integração entre os serviços de Produto e Usuário
  • Autenticação (Token JWT)

License

MIT