Site e aplicativos
Imagine um sistema de acompanhamento de atletas corredores. O sistema dispõe de um módulo “backend” e de dois módulos “front-end”. O módulo “font-end” dos corredores é uma aplicação para celulares enquanto o módulo “front-end” para o treinador é uma aplicação que roda em um browser. O módulo do corredor possui as seguintes funcionalidades:
1) Visualizar treino: permite visualizar o próximo treino programado para ele. Por simplicidade um treino será composto apenas por um identificador numérico, uma distância em metros e um tempo em minutos. O objetivo é que o corredor percorra a distância indicada em um tempo menor que o proposto (supõem-se que só existe um treino programado por vez para cada corredor).
2) Informar desempenho no treino: o corredor informa o número do treino que ele executou, o tempo que levou e um indicador de esforço para completar o treino (um número entre 1 (mais fácil) e 10 (mais difícil).
O módulo do treinador tem as seguintes funcionalidades:
1) Analisar um treino: o treinador informa o código do aluno e o sistema apresenta o desempenho do aluno no último treino proposto. Com base nos resultados o sistema pode recomendar um treino mais leve, a manutenção do mesmo treino ou um treino mais pesado.
2) Analisar o histórico de treinos de um aluno: o treinador informa o código do aluno e o sistema apresenta o nome e a idade do aluno seguido de todos os treinos já propostos com os respectivos desempenhos.
3) Propor um novo treino: o treinador entra o código do aluno, a distância que ele deve percorrer e o tempo máximo que ele pode levar para completar o treino.
Com base nas informações acima você deve:
1) Apresentar o diagrama de classes do módulo “back-end” considerando a arquitetura CLEAN. Devem ser destacados no diagrama as classes dos níveis de entidades e casos de uso. Deve-se explorar o padrão “strategy” para facilitar modificações no sistema de recomendações e o padrão “fachada” para isolar as fachadas de serviço (uma para o aluno e outra para o treinador). As interfaces com o sistema de persistência também devem ser previstas.
2) Escolher uma das fachadas para implementar. Deve-se implementar a fachada e todas as classes necessárias para seu funcionamento completo. Todas as classes devem receber suas dependências por injeção de dependência através do construtor
3) Implementar drivers de teste capazes de testar a fachada implementada e as demais classes envolvidas. Dubles das bases de dados devem ser usados nos testes.
Você conhece alguém que se encaixa bem no projeto? Ganhe comissão indicando freelancers! Por cada inscrição você ganha 5 € diretamente na sua conta e quando o freelancer é contratado pela plataforma você ganha 2% dos ganhos deste freelancer!
Preencha os detalhes do profissional que você gostaria de recomendar:
Quando o freelancer aceitar o convite, ele será automaticamente adicionado à sua rede e você ganhará 2% a mais todos os ganhos deste freelancer através da plataforma. Para mais informações consulte nosso Termos e Condições
Nenhum freelancer interessado ainda
{{item.displayDisciplines}}
Você tem uma conta stand-by e já respondeu a 1 projeto neste período de assinatura.
Atualize sua conta agora com apenas 1 clique e responda a projetos ilimitados.