Recentemente, diversas empresas do ramo alimentício têm se desvinculado dos grandes aplicativos de delivery. As causas dessa tendência são diversas e vão desde a transformação no modo de operação de cada estabelecimento, até as taxas abusivas das grandes plataformas.
Porém, em 2023, simplesmente não é viável voltar ao modo de trabalho “pré-Ifood”... Foi por isso que a pizzaria Pits A decidiu desenvolver seu próprio aplicativo de delivery. E adivinha só… vocês foram escolhidos para ajudar!
-
Descrição das participações, critérios utilizados e modelagem do sistema: Link para o documento da etapa 1
-
US1: Eu, enquanto administrador do sistema, quero utilizar o sistema para criar, editar e remover um estabelecimento;
-
US2: Eu, enquanto cliente, quero utilizar o sistema para me cadastrar como cliente do sistema. Mais detalhadamente, deve ser possível criar, ler, editar e remover clientes;
-
US3: Eu, enquanto funcionário(a) terceirizado(a), quero utilizar o sistema para me cadastrar como entregador( a) do sistema. Mais detalhadamente, deve ser possível criar, ler, editar e remover entregadores;
-
US4: Eu, enquanto funcionário(a) terceirizado(a), quero utilizar o sistema para me associar como entregador(a) de um estabelecimento;
-
US5: Eu, enquanto estabelecimento, quero utilizar o sistema para aprovar ou rejeitar entregadores do estabelecimento;
-
US6: Eu, enquanto estabelecimento, quero utilizar o sistema para o CRUD dos sabores de pizza vendidos pelo estabelecimento. Mais detalhadamente, deve ser possível criar, ler, editar e remover sabores;
-
US7: Eu, enquanto cliente, quero visualizar o cardápio de um estabelecimento;
-
Descrição das participações, critérios utilizados e modelagem do sistema: Link para o documento da etapa 2
-
US8: Eu, enquanto cliente, quero utilizar o sistema para fazer pedidos de pizza a um estabelecimento. Mais detalhadamente, deve ser possível criar, ler, editar e remover pedidos;
-
US9: Eu, enquanto estabelecimento, quero modificar a disponibilidade dos sabores do cardápio. Mais detalhadamente, deve ser possível visualizar e editar a disponibilidade dos sabores de pizza — dado que, nem sempre, todos os produtos estão disponíveis;
-
US10: Eu, enquanto cliente, quero demonstrar interesse em sabores de pizza que não estão disponíveis no momento;
-
US11: Eu, enquanto estabelecimento, quero disponibilizar diferentes meios de pagamento para os pedidos, tal que cada meio de pagamento também gere descontos distintos;
-
Descrição das participações, critérios utilizados e modelagem do sistema: Link para o documento da etapa 3
-
US12: Eu, enquanto estabelecimento, quero que o sistema garanta a corretude nas mudanças de status dos pedidos;
-
US13: Eu, enquanto cliente, quero ser notificado(a) quando meus pedidos estiverem em rota e, por medidas de segurança, quero ser informado(a) com o nome do(a) entregador(a) responsável pela entrega e os detalhes sobre seu veículo. A notificação deve ser representada como uma mensagem no terminal da aplicação (print), indicando o motivo e quem está recebendo a notificação;
-
US14: Eu, enquanto cliente, quero ser responsável por confirmar a entrega dos meus pedidos;
-
US15: Eu, enquanto estabelecimento, quero ser notificado(a) sempre que o status de um pedido for modificado para “Pedido entregue”. A notificação deve ser representada como uma mensagem no terminal da aplicação (print), indicando o motivo e quem está recebendo a notificação;
-
US16: Eu, enquanto cliente, quero ter a possibilidade de cancelar um pedido que fiz no estabelecimento;
-
US17: Eu, enquanto cliente, quero poder verificar os pedidos que já realizei no estabelecimento;
-
Descrição das participações, critérios utilizados e modelagem do sistema: Link para o documento da etapa 4
-
US18: Eu, enquanto funcionário(a) terceirizado(a), desejo definir se estou disponível (ou não) para realizar as entregas do estabelecimento;
-
US19: Eu, enquanto funcionário(a), gostaria que o sistema atribuísse automaticamente as entregas dos pedidos com status “Pedido Pronto” a um(a) entregador(a) que esteja disponível para realizar entregas;
-
US20: Eu, enquanto cliente, quero ser notificado(a) quando meu pedido não puder ser atribuído para entrega devido à indisponibilidade de entregadores. A notificação deve ser representada como uma mensagem no terminal da aplicação (print), indicando o motivo e quem está recebendo a notificação;
- Envio de notificação por E-mail.
-
Quantidade, complexidade e corretude das user stories implementadas.
-
Decisões de design tomadas e implementadas durante o desenvolvimento. Por exemplo, o uso adequado de arquiteturas e padrões de projeto.
-
Qualidade do código desenvolvido. Por exemplo, o uso de princípios de projeto, a atribuição de responsabilidades e a presença de bad smells no código.
-
Cobertura e qualidade dos testes automáticos desenvolvidos, abordagem funcional, com a correta utilização do MockMvc aplicados aos endpoints no formato REST para todos os membros da API disponibilizada.
-
O sistema web deverá utilizar o framework Spring Boot.
-
A cobertura dos testes para as classes de serviço e controladores deve ser de 100% (cem por cento), a fim de que fique evidenciada a prática de TDD.
-
Ao atingirmos 100% de êxito em todas as etapas, a nota final do projeto foi 10,00.