Skip to content

AlexisCesar/postech-tech-challenges

Repository files navigation

Lanchonete do Bairro API (POS TECH: TECH CHALLENGE - 3a FASE)🚀

Seja bem vindo ao repositório da Lanchonete do Bairro API! Este é um desafio proposto pela PósTech (Fiap + Alura) na terceira fase da pós graduação de Software Architecture (8SOAT).

📼 Vídeo de demonstração do projeto desta fase: https://www.youtube.com/watch?v=1xkGzih4IjA

Integrantes do grupo:
Alexis Cesar (RM 356558)
Bruna Gonçalves (RM 356557)

A API foi projetada para gerenciar pedidos de uma lanchonete de bairro, permitindo que os clientes façam seus pedidos através de um totem. A aplicação é containerizada utilizando Docker, orquestrada por Kubernetes (K8s) para garantir escalabilidade e resiliência, e gerenciada por Helm, que automatiza o deployment e rollbacks no cluster Kubernetes (EKS) na nuvem da AWS.

Navegação

Arquitetura

A aplicação segue a Arquitetura Limpa, que promove a separação de responsabilidade, facilitando a manutenção e escalabilidade. Esta abordagem permite que a lógica de negócios principal seja independente de qualquer dependência externa, como bancos de dados ou serviços externos.

Infraestrutura

Diagrama da infraestrutura na nuvem AWS: infra_aws

Funcionalidades

  • Gerenciamento de Pedidos: Os clientes podem fazer pedidos via o totem da lanchonete.
  • Rastreamento de Status de Pedidos: Os clientes e colaboradores podem companhar o status dos pedidos (Recebido, Em Preparação, Pronto, Finalizado).
  • Processamento de Pagamentos: Neste momento, o sistema simula o processamento de pagamento através de um webhook.
  • Gerenciamento de Produtos: Gerencia os produtos da lanchonete dentro de quatro categorias (Lanche, Bebida, Acompanhamento e Sobremesa).

Tecnologias Utilizadas

  • .NET 8.0: ASP.NET Core.
  • Entity Framework Core: ORM para interações com o banco de dados.
  • PostgreSQL: Banco de dados.
  • Docker: Plataforma de containerização.
  • Kubernetes: Orquestração de contêineres.
  • Helm: Gerenciamento de de pacotes kubernetes.
  • EKS: Cluster Kubernetes na nuvem da AWS.
  • Terraform: Automação de criação de recursos em provedores de nuvem.

Rodando o projeto com Docker-Compose

⚠ Para que a integração com o Mercado Pago funcione e seja possível utilizar o endpoint 'Realizar Pedido' para gerar QR codes, é necessário uma integração criada e configurada para QR Code Dinâmico através do Mercado Pago Developers. Para mais detalhes de como configurar a integração consulte nossa página sobre a integração na Wiki.

  • 🐳 Docker é um pré-requisito para rodar esta aplicação localmente
  • 📜 Com o Docker instalado, execute o seguinte comando pelo terminal na pasta raíz do projeto:
docker-compose up

Acessando o banco de dados com Docker

Por padrão, o banco de dados não é exposto ao subir os contêineres para evitar conflitos de portas. Para acessar o banco de dados, será necessário executar o seguinte comando na pasta raíz do projeto ao invés do mencionado na etapa anterior:

docker compose -f docker-compose-db-exposed.yaml up

Agora você pode acessar o banco de dados através de um sistema gerenciador de banco de dados para o PostgreSQL, como o PgAdmin, no servidor localhost e com a porta padrão do PostgreSQL (5432). As credenciais do banco local podem ser encontrados no arquivo .env na pasta raíz do projeto.

Subindo a infraestrutura na AWS com Terraform

Para subir a infraestrutura do sistema no ambiente cloud, siga os passos mencionados nos seguintes repositórios:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages