Repositórios para o "Tech Challenge", executado pelo grupo 34, na turma 7SOAT em 2024. Curso da FIAP - Pós Tech Software Architecture.
Os repositórios desta org tem como 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.
- Linguagem de Programação: Java 17
- Framework: Spring Boot
- Gerenciador de dependências: Maven
- Banco de dados: MySQL 8
- 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.
TODO
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 3
-
1. Implementar um API Gateway e um
function serverless
paraautenticar o cliente
com base no CPF.- 1. Integrar ao sistema de autenticação para identificar o cliente.
- Desenho (room): https://excalidraw.com/#room=1cf48787e8cd8028a3bd,Pb8UVcTDexZQseHv8VOFpQ
- Desenho (estático): https://excalidraw.com/#json=J_qszI3T0Q_ppK9SychFs,aBuXjzcOrsndQuOsvP9o4A
- 1. Integrar ao sistema de autenticação para identificar o cliente.
-
2. Implementar as melhores práticas de
CI/CD
para a aplicação, segregando os códigos em repositórios, por exemplo:- 1 repositório para o Lambda - repositório
food-serveless-function
. - 1 repositório para sua infra Kubernetes com Terraform - repositório
food-cloud-infra
. - 1 repositório para sua infra banco de dados gerenciáveis com Terraform - repositório
food-database
. 4. 1 repositório para sua aplicação que é executada no Kubernetes - repositóriofood
- 1 repositório para o Lambda - repositório
-
3. Os repositórios devem fazer deploy automatizado na conta da nuvem utilizando actions. As branchs
main/master
devem ser protegidas, não permitindo commits direto. Sempre utilizepull request
. -
4. Melhorar a estrutura do banco de dados escolhido, documentar seguindo os padrões de modelagem de dados e justificar a escolha do banco de dados.
-
5. Você tem a liberdade para escolher qual a infra de nuvem desejar, mas terá de utilizar os serviços serverless: functions (AWS Lamba, Azure functions ou Google Functions, por exemplo), banco de dados gerenciáveis (AWS RDS, Banco de Dados do Azure ou Cloud SQL no GCP, por exemplo), sistema de autenticação (AWS Cognito, Microsoft AD ou Google Identity platform no GCP, por exemplo).
FASE 4
TODO
- 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 |