Skip to content

Repositório para armazenar os produtos ofertados pela plataforma food

Notifications You must be signed in to change notification settings

ALFAC-Org/food-produto

Repository files navigation

Microsserviço food-produto - ALFAC · Coverage Branches coverage

Este repositório fornece o microsserviço de gerenciamento dos produtos (itens) da Aplicação Fast Food - ALFAC (veja mais em /~https://github.com/ALFAC-Org/food/).

Tecnologia

  • Linguagem de Programação: Java 17
  • Framework: Spring Boot
  • Gerenciador de dependências: Maven
  • Banco de dados: NoSQL AWS DynamoDB
  • Documentação e uso de API's: Swagger
  • Conteinerização: Docker
  • Testes unitários: JUnit 5 + Jacoco
  • Testes de comportamento (BDD): Cucumber

Arquitetura

A aplicação está estruturada no padrão de Clean Architecture.

Utiliza do banco de dados NoSQL AWS DynamoDB para armazenamento das informações.

Pode ser executada tanto via Docker e Terraform. Podendo ser hospedada tanto localmente ou na nuvem, usando serviços como AWS.

A interação da aplicação se dá através de APIs com o Swagger disponibilizado.

Tutoriais

Passo Vídeo
0. Introdução geral 00-INTRODUCAO_GERAL
1. Introdução aos repositórios 01-INTRODUCAO_AOS_REPOSITORIOS
2. Configuração das variáveis ambiente 02-CONFIGURACAO_VARIAVEIS_AMBIENTE
3. Provisão da infraestrutura com /~https://github.com/ALFAC-Org/food-cloud-infra 03-PROVISAO_INFRA_P1 / 03-PROVISAO_INFRA_P2
4. Provisão dos bancos de dados com /~https://github.com/ALFAC-Org/food-database 04-PROVISAO_DB_P1 / 04-PROVISAO_DB_P2
5. Provisão das lambdas com /~https://github.com/ALFAC-Org/food-serveless-function 05-PROVISAO_LAMBDAS_P1 / 05-PROVISAO_LAMBDAS_P1
6. Provisão da aplicação food-produto /~https://github.com/ALFAC-Org/food-produto 06-PROVISAO_FOOD_PRODUTO_P1 / 06-PROVISAO_FOOD_PRODUTO_P2
7. Provisão da aplicação food-cliente /~https://github.com/ALFAC-Org/food-cliente 07-PROVISAO_FOOD_CLIENTE_P1 / 07-PROVISAO_FOOD_CLIENTE_P2
8. Provisão da aplicação principal com /~https://github.com/ALFAC-Org/food 08-PROVISIONA_FOOD_P1 / 08-PROVISIONA_FOOD_P2
9. Simulando cliente na plataforma: Load Balancer e API Gateway 09-01_FLUXO_LOAD_BALANCER / 09-02_FLUXO_API_GATEWAY

Todos os vídeos estão disponíveis também aqui: https://drive.google.com/drive/folders/1C9UbKeiVNRIM7CSv-HMgMHZflwbqI5tQ?usp=sharing

Executando a aplicação

GitHub Actions (recomendada)

Passo a passo

[!WARNING]
Primeiramente, é necessário configurar a infraestrutura por meio do link: /~https://github.com/ALFAC-Org/food-cloud-infra/actions/workflows/create-infraestructure.yml

  1. Acesse /~https://github.com/ALFAC-Org/food-produto/actions (A guia Actions deste repositório);
  2. Acesse CI/CD;
  3. Clique em Run workflow (ou Executar workflow);
  4. Aguarde. Se tudo der certo, o check verde deverá aparecer - o processo dura em torno de 2 minutos;

applicacao-atualizada-sucesso

Para acessar a aplicação é necessário acessar a URL da através do Kubernetes, acessando a área de Services e acessando ao serviço food-produto. A URL será algo como: http://aa326084c74cf48c6a15f7832f4edb95-21c002b943a9cff6.elb.us-east-1.amazonaws.com:8080/api-docs.

Localmente

Passo a passo

No terminal, execute:

docker compose up

Acesse a aplicação da API em:

http://localhost:8080/api-docs

swagger-aplicacao

Testes

Certifique-se de instalar as dependências do projeto antes de executar os testes.

Se seu terminal suportar o comando make:

make build-without-tests

senão:

mvn clean install -U -DskipTests

Unitários

Passo a passo

No terminal, execute:

Se seu terminal suportar o comando make:

make unit-test-coverage

senão:

  mvn clean test -P unit-tests

Você poderá ver o relatório de cobertura de testes em target/site/jacoco/index.html.

jacoco-coverage.png

Além disso, é possível ver o coverage atualizado nesta página, ao lado do título do repositório.

BDD

Passo a passo

No terminal, execute:

docker compose up

Em outro terminal, execute:

Se seu terminal suportar o comando make:

make bdd-test

senão:

mvn clean test -P bdd-tests

Você poderá ver o relatório de cobertura de testes em target/cucumber-reports/cucumber.html.

cucumber-coverage.png

Membros

Nome RM E-mail GitHub
Leonardo Fraga RM354771 rm354771@fiap.com.br @LeonardoFraga
Carlos Henrique Carvalho de Santana RM355339 rm355339@fiap.com.br @carlohcs
Leonardo Alves Campos RM355568 rm355568@fiap.com.br @lcalves
Andre Musolino RM355582 rm355582@fiap.com.br @amusolino
Caio Antunes Gonçalves RM354913 rm354913@fiap.com.br @caio367

About

Repositório para armazenar os produtos ofertados pela plataforma food

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •