Desafio
Ajude o restaurante "Favo de Mel" a gerenciar o atendimento ao cliente, pois o mesmo está tendo sérios problemas com isso. Os problemas são: pedidos são feitos e muitas vezes o mesmo não chega a cozinha, clientes cancelam pedido e a cozinha não recebe o aviso e acaba preparando o mesmo, os pedidos estão demorando para serem entregues ou muitas vezes estão entregando pedido fora de ordem sem priorização.
Como esse fluxo hoje é manual e devido a correria dos funcionários para tentar atender os clientes, a comunicação entre eles acaba sendo ineficiente, causando esses gargalos.
Para resolver os principais problemas foi solicitado a criação de uma nova ferramenta que atenda no mínimo os requisitos abaixo:
- Garçom: visualizar comandas abertas, abrir comanda, adicionar pedido a comanda, cancelar pedido da comanda, acompanhar o status de um pedido na cozinha e fechar a comanda;
- Cozinha: visualizar, receber e entregar o pedido pronto para o garçom.
Além dos requisitos mínimos acima, deixamos por opção livre a implementação de alguns requisitos que seriam interessantes para o restaurante, são eles:
- Notificação ativa entre o garçom e a cozinha ou vice-versa;
- Garçom poder visualizar o andamento de preparo dos pedidos de uma comanda;
- Repriorização de ordem de preparo dos pedidos pela cozinha.
Sinta-se livre para adicionar novas funcionalidades que agregam valor ao restaurante.
Restrições
Utilizar .NET Core no back-end e no front-end, o framework Angular (com programação reativa). Criar uma solução escalável através de contêinerização via Docker com orquestração dos serviços com Docker Compose.
Quanto à segurança, sua solução será inicialmente pública, você está construindo um MVP, não se preocupe com isso.
Queremos documentação, acerca das decisões que você tomou para sua solução, mesmo nos casos em que você não tenha realizado tudo que pretendia, pode citar qual era o objetivo final e relacione com o que você conseguiu entregar no prazo e o porquê. Documentações arquiteturais também são importantes, estas podem ser feitas inclusive no próprio código fonte para facilitar com o Swagger.
Diferenciais
- Kubernetes
- DDD
- CQRS
- Event Sourcing
- TDD
- REST ou gRPC
- Mensageria
- Serviço de cache
Critérios de avaliação
- Arquitetura desenvolvida
- Organização do código
- Proatividade
- Interpretação textual
- Documentação do projeto (README.md)
Procedimento
Faça um fork do projeto: https://github.com/douglas-tsc/processo-seletivo-ewave-arquiteto-fev-2020
Ao finalizar a sua aplicação, crie um pull request no projeto de origem.
Prazo
O prazo para criar o pull request é 10 dias corridos após a aprovação da Inscrição Vaga Ewave.