Trata-se de uma aplicação que proverá a funcionalidade inerentes a um e-commerce, como cadastro de usuários, produtos e criação de carrinhos e pedidos. Foi criado utilizado Quarkus, um framework Java com foco em microsserviços e o projeto foi feito implementado tal arquitetura.
Tal aplicação faz parte do conjunto de aplicações que juntas dão vida ao projeto DonaFrost.
O repositório que você está agora é o responsável pelo back-end. Os end-point's disponíveis nos microsserviços são consumidos pela aplicação web front-end e pelo app que irá auxiliar o entregador.
Ambas disponiveis em seus referidos repositórios. 👉 Front-end web e App do Entregador
Abaixo temos o diagrama das aplicações em conjunto:
-
Microsserviço dos Produtos: É responsável por gerenciar os produtos existentes no e-commerce, tendo seu próprio banco de dados e CRUD para essas tarefas. Toda informação/alteração realizada é propagada via mensageria para o microsserviço do Marketplace. Foi criado utilizando programação imperativa.
-
Microsserviço de Usuários: É responsável por gerenciar os usuários que se cadastram em nossa aplicação, tendo seu próprio banco de dados e CRUD para essas tarefas. Também realiza a propagação de seus dados para o microsserviço do Marketplace e também foi criado utilizando programação imperativa.
-
Microsserviço do Marketplace: É responsável por realizar as principais funcionalidades de um e-commerce, como criar um carrinho, transformar o carrinho em pedido e etc. Também tem seu próprio banco de dados e CRUD para realizar as funcionalidades mencionadas. Diferentemente dos microsserviços anteriores ele foi criado utilizando programação reativa que é um dos modos que podemos criar aplicações com o Quarkus, por conta de ele ter esse modelo unificado que junta esses dois paradigmas de programação, é algo bem complicado no começo, mas depois de aprender a utilizar as API's reativas do Quarkus ai é uma delícia programar, tudo é stream, uma beleza!
- 🔤 Lang - Java SE 11
- ⚡ Framework Java - Quarkus
- 🔐 Autenticação - Keycloak
- 📨 Mensageria - ActiveMQ
- 🐳 Containers - Docker
- 📖 Documentação - Swagger UI
- 💾 Database - Postgres v.13
- 📌 Tracing - Jaeger Tracing
- 📊 Análise de Métricas - Grafana
- 🔔 Monitoramento - Prometheus
- ✅ Teste Unitário - jUnit5 e Approval Tests
- 🔥 Programação Reativa - SmallRye-Mutiny
Necessário java11 ou superior e docker/docker-compose, após clonar o projeto será necessário executar o seguinte comando:
docker-compose run docker-compose.yml
O comando acima vai iniciar todos os container necessários para executar os microsserviços.
Após todos os containers estarem UP, vamos executar o seguinte comando:
./mvnw quarkus:dev
Abra http://localhost:8080 com seu navegador para ver o microsserviço de Produtos.
Abra http://localhost:8081 com seu navegador para ver o microsserviço de Usuário.
Abra http://localhost:8082 com seu navegador para ver o microsserviço de Marketplace.
Documentação disponível em /q/swagger-ui.
- Criar end-point de geração de QR Code estático Pix.
- Aprimorar coleta de log's e monitoramento.
Caso queira me ajudar com o projeto ficarei muito feliz em aceitar seu pull request 🙂.
Este projeto está sobre a licença Apache 2.0.