- https://github.com/alissonit/fiap-pedidos
- https://github.com/alissonit/fiap-production
- https://github.com/alissonit/fiap-pagamento
O FiapFood consiste em um sistema que é utilizado em lanchonetes e restaurantes, que processa todas as informações do contexto do pedido, desde a identificação do cliente, a escolha do pedido e o pagamento, até a entrega do pedido ao cliente.
- Java 17 ou inferior
- Maven
- MySQL
- MongoDB
- Kafka
Para utilizar o FiapPedidos, é necessário ter uma instância de conexão do banco de dados ativa (no caso MySQL), que por padrão fica na porta 3306, caso sua porta esteja diferente, especifique no application.properties em:
server.port=8080
server.servlet.context-path=/pedido
spring.jpa.hibernate.ddl-auto=update
spring.datasource.url=${MYSQL_HOST}
spring.datasource.username=${MYSQL_USERNAME}
spring.datasource.password=${MYSQL_PASSWORD}
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL5Dialect
# Specify the path of the OpenAPI documentation
springdoc.api-docs.path=/api-docs
# Specify the path of the Swagger UI
springdoc.swagger-ui.path=/swagger-ui.html
# Enable or disable Swagger UI
springdoc.swagger-ui.enabled=true
spring.jpa.generate-ddl=true
Com o banco de dados devidamente configurado, rode o back-end da aplicação através do seguinte comando:
*Disponível em http://localhost:8080/
mvn spring-boot:run
Com a aplicação rodando, acesse o localhost (porta 4200), e navegue pelo sistema!
- Documentação oficial do Angular
- Site oficial do NodeJS
- Site oficial do NPM
- Referência para o padrão arquitetural REST
- Palheta de atalhos de comandos do IntelliJ
- Site oficial do Spring
- Site oficial do Spring Initialzr para setup do projeto
- SDKMan! para gerenciamento e instalação do Java e Maven
- Site oficial do MySQL
Entrega Tech challenge fase 05
- Fiap Pedidos
https://github.com/alissonit/fiap-pedidos/actions/runs/8346757102/job/22844801809
- Fiap Pagamento
https://github.com/alissonit/fiap-pagamento/actions/runs/8347692011/job/22848065559
- Fiap Production
https://github.com/alissonit/fiap-production/actions/runs/8348231780/job/22849655157
Evidência de deploy do serviço de pedidos:
Evidência de deploy do serviço de pagamento:
Evidência de deploy do serviço de produção:
https://sonarcloud.io/organizations/alissonit/projects
Pedido:
Pagamento:
Produção:
Métricas de acesso:
Estou usando o padrão SAGA de coreografia com o Kafka em três serviços: Pedido, Pagamento e Produção, para coordenar transações distribuídas de forma descentralizada, garantir atomicidade nas operações, aproveitar a flexibilidade e escalabilidade do Kafka para comunicação entre os serviços, e obter auditoria e visibilidade através do registro de eventos do Kafka. Isso resulta em uma arquitetura resiliente e altamente escalável, com garantia de atomicidade e monitoramento detalhado do fluxo de pedidos.
Vídeo explicação SAGA: https://drive.google.com/file/d/1hl50zhNwh6xavo9BZHReaaazgVUb8UAL/view Youtube: https://youtu.be/8Qv_ctCRSvE
https://drive.google.com/drive/folders/1Ku1gZSvSISKbuN28j3_3Zm04C2y1zYQp?usp=sharing
ECS-PEDIDO
https://github.com/alissonit/fiap-pedidos-iac-ecs/actions/runs/8350325962/job/22856465495
ECS-PRODUCAO
https://github.com/alissonit/fiap-producao-iac-ecs/actions/runs/8350922073/job/22858314023
ECS-PAGAMENTO
https://github.com/alissonit/fiap-pagamento/actions/runs/8347692011/job/22848065559