Esta é uma aplicação que tem por objetivo, fornecer uma plataforma de pedidos de fast food. A plataforma permite aos clientes seguir o fluxo comum de um pedido: escolher o lanche com seu complemento, acompanhamento, bebida e sobremesa.
Ao final, o cliente irá realizar o pagamento deste pedido, através de um QR Code e por fim, receber seu pedido.
Para isso, o consumidor desta plataforma deve seguir o fluxo estabelecido na imagem a seguir:
- Brain Storming
- Event Storming
- Fluxo Vertical
- Linguagem Ubíqua
Veja em: https://miro.com/app/board/uXjVKZNCxxM=/?moveToWidget=3458764595480383068&cot=14
Veja em: https://miro.com/app/board/uXjVKZNCxxM
Veja em: https://miro.com/app/board/uXjVKZNCxxM=/?moveToWidget=3458764600931910148&cot=14
Veja em: https://miro.com/app/board/uXjVKZNCxxM=/?moveToWidget=3458764603014029962&cot=14
Warning
Essa documentação foca na 4° FASE do Tech Challenge - usando Terraform e GitHub Actions. Se precisar, consulte o README.md da 3° FASE no link: https://github.com/ALFAC-Org/food/tree/fase3-devops
- Linguagem de Programação: Java 17
- Framework: Spring Boot
- Gerenciador de dependências: Maven
- Banco de dados:
- Este repositório: MySQL 8
- Microsserviço
food-cliente: MySQL 8 - Microsserviço
food-produto: AWS DynamoDB
- Documentação e uso de API's: Swagger
- Conteinerização: Docker
- Orquestração: Kubernetes
- Web Services: AWS
- IaC: Terraform - v1.9.5
- Docker (versão 27.0.3) - para rodar localmente
- Kubernetes (versão 1.30) - para rodar localmente e na nuvem (AWS)
- Terraform (versão 1.9.5) - para rodar na nuvem (AWS) e GitHub Actions
A aplicação está estruturada no padrão de Clean Architecture.
Pode ser executada tanto via Docker, Kubernetes 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.
Todos os vídeos estão disponíveis também aqui: https://drive.google.com/drive/folders/1C9UbKeiVNRIM7CSv-HMgMHZflwbqI5tQ?usp=sharing
Como fazer um pedido em nossa plataforma?
Veja em Fluxo do usuário.
FASE 1
Veja em https://github.com/ALFAC-Org/food/tree/hexagonal#roadmap
FASE 4
- Refatore o projeto, separe-o em ao menos 3 (três) microsserviços. Alguns
exemplos de serviços:
- a. Pedido: responsável por operacionalizar o processo de pedidos, registrando os pedidos, retornando as informações necessárias para montar um pedido, listando os pedidos registrados e em processo de produção (visão de cliente).
- b. Pagamento: responsável por operacionalizar a cobrança de um pedido, registrando a solicitação de pagamento, recebendo o retorno do processador de pagamento e atualizando o status do pedido.
- c. Produção: responsável por operacionalizar o processo de produção do pedido, acompanhando a fila de pedidos (visão da cozinha), atualização de status de cada passo do pedido.
Ao refatorar, os microsserviços devem conter testes unitários.
- a. Ao menos um dos caminhos de teste deve implementar BDD.
- b. Em todos os projetos, a cobertura de teste deve ser de 80%.
- Seus repositórios devem ser separados para cada aplicação e devem respeitar as seguintes regras:
- a. As branchs main/master devem ser protegidas, não permitindo commits diretamente.
- b. Pull Request para branch main/master, que deve validar o build da aplicação, e a qualidade de código via sonarqube ou qualquer outro serviço semelhante, cobrindo 80% de coverage no mínimo.
- c. No Merge, o deploy de todos seus microsserviços devem ser executados, isso significa que todos os repositórios devem estar com CI/CD criados, e executados corretamente.
- FASE 1 - 28/05/2024 - FEITO
- FASE 2 - 30/07/2024 - FEITO
- FASE 3 - 01/10/2024 - FEITO
- FASE 4 - 03/12/2024 - AGUARDANDO
| Nome | RM | 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 |

