O McTech é um sistema completo de gerenciamento de pedidos desenvolvido especificamente para restaurantes, projetado para simplificar e otimizar os processos de pedidos, desde o momento em que são feitos até a sua conclusão. Utilizando tecnologias modernas e práticas arquiteturais, o MeTech oferece uma solução eficiente e escalável para restaurantes de todos os portes.
- Plataforma: .NET 6.0
- Banco de Dados: Microsoft SQL Server
- Arquitetura de Software: Hexagonal (ou Ports and Adapters)
- Padrão Arquitetural Adicional: Arquitetura em Cebola (ou Onion Architecture)
-
Identificação do Cliente via CPF
- API que permite identificar o cliente através do CPF. Esta funcionalidade autentica o cliente e garante que ele está registrado no sistema antes de proceder com outras operações.
-
Gerenciamento de Produtos
- Criar Produtos: API que permite a criação de novos produtos no sistema, incluindo detalhes como nome, descrição, preço e categoria.
- Editar Produtos: API para atualizar informações de produtos existentes. Isso inclui alterações no nome, descrição, preço e categoria do produto.
- Remover Produtos: API que permite a remoção de produtos do sistema, assegurando que produtos desatualizados ou descontinuados sejam removidos.
-
Busca de Produtos por Categoria
- API que permite buscar produtos com base em suas categorias. Isso facilita a organização e acesso aos produtos, permitindo que os clientes filtrem produtos de acordo com suas preferências.
-
Fake Checkout
- API que simula o processo de checkout. Nesta etapa, os produtos escolhidos pelo cliente são enviados para uma fila de pedidos. Este fake checkout não realiza transações reais, mas prepara os pedidos para finalização.
-
Listar Pedidos
- API que lista todos os pedidos feitos pelos clientes. Esta funcionalidade permite que os clientes e administradores vejam o histórico de pedidos, incluindo detalhes sobre cada pedido, como produtos incluídos, data e status do pedido.
- Em PDF: Link para documento PDF
- No Miro: Link para o Miro
Para mais detalhes sobre arquitetura, consulte a nossa Wiki: Fase 2 ‐ Tech Challenge
A arquitetura se encontra na AWS e contempla os entregáveis para a fase 03 do projeto. Todos os códigos do Terraform foram desenvolvidos utilizando a conta AWS Academy, cuja conta possuí certas limitações (ex: terraform modules).
Este projeto evoluiu de uma arquitetura monolítica para microsserviços, segmentando as funcionalidades em serviços independentes de pagamentos (Payments), pedidos (Orders) e carrinho (Cart).
1 - Reportar Problemas: Encontrou um bug ou tem uma sugestão de melhoria? Por favor, abra uma issue e descreva detalhadamente o problema ou sua ideia.
2 - Enviar Pull Requests: Se você deseja corrigir um problema ou adicionar uma nova funcionalidade, sinta-se à vontade para enviar um pull request. Certifique-se de seguir as diretrizes de contribuição.
3 - Melhorar a Documentação: A documentação clara e detalhada é essencial. Se você encontrar partes da documentação que podem ser aprimoradas, não hesite em fazer as alterações necessárias.
1 - Clone o repositório do projeto.
2 - Inicie o Minikube com o comando minikube start
. Nesta etapa, lembre-se de ter o Docker Desktop instalado e fazer a instalação do minikube também.
3 - Verifique se o pod está disponível com kubectl get pods
.
4 - Acesse a pasta kubernetes e execute os arquivos de configuração do banco de dados e da API com os comandos, respectivamente: kubectl apply -f .\mctech-db.yml
e kubectl apply -f .\mctech-api.yml
. Aguarde e verifique se os pods estão disponíveis com o comando anterior.
5 - Agora disponibilizaremos o serviço da aplicação com o comando: minikube service mctechapi-svc
. A saída do console apresentará um link para acesso à API, na qual os endpoints poderão ser testados e a sua documentação verificada. O link será algo parecido com: http://127.0.0.1:60399
. Alterar a porta para aquela gerada pelo minikube e adicionar /swagger
ao fim do endereço. No browser, portanto, deve ficar algo assim: http://127.0.0.1:60399/swagger
.
Para mais detalhes sobre a confuguração do Kubernetes, consulte a nossa Wiki: Fase 2 ‐ Tech Challenge
Agradecemos por considerar contribuir para o MeTech! Se tiver alguma dúvida ou precisar de assistência, não hesite em entrar em contato conosco.