UC_05 - antoniodanielbf-isep/LAPR5-2021 GitHub Wiki

|| INICIO || VOLTAR ||

UC_05 -> Editar perfil do Utilizador

=======================================

MENU

|| REQUISITOS || ANÁLISE || DESIGN || OBSERVAÇÕES ||

=======================================

1. Requisitos

Esclarecimento de dúvidas clientes

Monday, 11 de October de 2021 às 10:44

Bom dia, prezado, cliente, Poder-me-ia esclarecer se pretende que os perfis, quer do LinkedIn, quer do Facebook do jogador, serão disponíveis através do link de cada um? Cumprimentos, João Pereira

Quando o utilizador edita o seu perfil pode introduzir o URL do seu perfil FB ou LKN. estes dados são opcionais.
numa primeira iteração apenas é necessário guardar o URL
numa iteração posterior deverá haver uma verdadeira ligação com a platforma FB e LKN associando a conta de utilizador *.
* nota: sugere-se que sigam uma abordagem iterativa e que apenas façam o necessário para o âmbito definido em cada iteração sem cairem no erro de fazer "over engineering" para suportar requisitos que ainda não forma confirmados em que sprint serão necessários e se serão necessários - como sabem um dos príncipios ageis é "embrace change"; é perfeitamente natural as prioridades do cliente mudarem ao longo dos sprints de execução do projeto

Monday, 18 de October de 2021 às 16:47

Boa tarde, Sempre que se refere ao perfil do utilizador, é sempre em referência ao perfil público do utilizador, e não a uma conta de utilizador, correto? Ou seja, todos os dados que pertencem ao perfil serão públicos? Assumindo que os posts serão publicados no perfil, é possível publicar um post num perfil de alguém da nossa rede? Ou só podemos comentar e reagir com like/dislike? O “estado emocional” refletido no perfil é equivalente ao “estado de humor” referido na pag5. do caderno de encargos (modulo de visualização), ou serão categorias diferentes? Com os melhores cumprimentos, Grupo 80

1. sim, perfil público. corresponderá ao nome, tags e feed de posts desse utilizador
2. apenas o utilizador faz posts no seu feed. outros utilizaodres poderão comentar esses posts e/ou reagir com like/dislike
3. voltaremos a este tópico após a palestra deste sábado sobre o modelo OCC

Wednesday, 27 de October de 2021 às 16:34

Boa tarde, No seguinte post do forum o cliente referiu que o nome do utilizador deve ser alfanumérico: https://moodle.isep.ipp.pt/mod/forum/discuss.php?d=10807. Isto refere-se ao nome próprio do utilizador ou apenas ao seu username/email? Obrigado, Tiago Loureiro

Ao nome do utilizador.
O email deve seguir as regras de sintaxe normal de um endereço de email.

Monday, 11 de October de 2021 às 10:44

Bom dia, prezado, cliente, Gostaria de saber algumas regras de negócio relativamente ao nome do jogador e à data de nascimento. Cumprimentos, João Pereira

Nome - alfanumérico, opcional, não pode conter espaços no ínicio
Data de nascimento - data, opcional, idade minima para usar o sistema: 16 anos

Wednesday, 27 de October de 2021 às 16:48

Boa tarde professor, Como é que a data de nascimento é opcional se existe uma idade mínima para usar o sistema? Obrigado, Tiago Loureiro

Tem razão. tratou-se de um lapso. a data de nascimento é obrigatória.
Tenham em atenção os aspetos de privacidade e dados sensiveis.

Monday, 25 de October de 2021 às 18:04

Boa tarde professor, No caso de uso de editar perfil próprio, quais são os atributos que se podem considerar mutáveis? Considera-se os atributos do perfil próprio os mesmo que o "perfil público"? Obrigado. Cumprimentos, Guilherme Daniel

Exceptuando o email que será considerado como username, todos os dados são passiveis de alteração

Thursday, 28 de October de 2021 às 12:06

Bom dia Professor, Por exemplo Ana_gt e Nick_98, indicados no grafo do enunciado são nomes e não usernames ? Mt Obrigado, Grupo 15 - 3DA

Na imagem, por questão de espaço, estão representados a parte inicial do endereço de email

->MENU


2. Análise

De maneira a atualizar o perfil do utilizador, este pode alterar atributos como: tags, avatar/imagem, breve descrição, cidade e pais de residência, links do perfil do Facebook/LinkedIn e número de telemóvel. Quando o utilizador pretende alterar o seu perfil, é-lhe apresentado o seu perfil com todos os atributos e é-lhe dada a liberdade de alterar todos os atributos que este desejar (dos referidos anteriormente), simultâneamente.

Alterações ao MD

Foi adicionado a CidadeEPaisResidencia, BreveDescricao, ImagemAvatar ao agregado Jogador.

Testes a Implementar

Testes de validação tags, telefone, cidade e pais de residência, descrição, imagem.

Regras de Negócio

  • Quando o Jogador edita o seu perfil pode introduzir o URL do seu perfil FB ou LKN. Estes dados são opcionais e podem ser alterados.

  • nome (alfanumérico) - pode ser alterado

  • email (alfanumérico) - não pode ser alterado

  • data de nascimento (data) - não pode ser alterado

  • tags de interesse (alfanumérico) - pode ser alterado

  • cidade e país de residência (alfanumérico) - pode ser alterado

  • breve descrição (alfanumérico) - pode ser alterado

  • imagem/avatar (icone) - pode ser alterado

  • telefone (numérico) - pode ser alterado

->MENU


3. Design

NÍVEL 1

SSD

NÍVEL 2

SSDN2

3.1. Realização da Funcionalidade

NÍVEL 3

SD

3.2. Padrões Aplicados

User Interface

O padrão de User Interface é usado para fornecer uma interface simples de usar para o utilizador e servir de intermediário entre o utilizador e as partes funcionais so sistema. Neste caso é utilizada a classe RegistarUtilizadorUI

Controller

O padrão Controller foi usado para ter um controlador (neste caso de uso RegistarUtilizadorController) que pode atuar como um organizador da lógica do caso de uso.

Information Expert

Esse padrão atribui responsabilidades às classes para o domínio de negócios que ele representa, como é o caso do Utilizador.

High Cohesion, Low Coupling

Padrão usado para diminuir o acoplamento entre classes e, ao mesmo tempo, apenas atribuir-lhes associações que sejam realmente coesas com o seu propósito. Em todo esse caso de uso, tentamos restringir as responsabilidades próprias de cada classe e, assim, minimizar as associações apenas ao necessário. Como pode ser visto neste caso de uso:

Utilizador é usado para instanciar o utilizador do caso de uso;

UserRepository é usado para armazenar o perfil do utilizador

RegistarUtilizadorController trata de toda a lógica de atualização de um evento delegando etapas intermediárias às outras classes.

DTO

O padrão DTO fornece um objeto intermediário para transferência de dados, reduzindo o acoplamento entre o domínio e as camadas do aplicativo, permitindo o carregamento rápido do aplicativo e garantindo mais segurança. Nesse caso de uso, temos a sua implementação na classe UtilizadorDTO.

Repository

O Repositório ajuda a persistir, armazenar e acessar dados. É usado na camada de Persistência para garantir a instanciação de UserRepository, onde é armazenado. Abstrai os detalhes dos métodos que modificam o estado deste objeto.

3.3. Testes

Nesta secção deve sistematizar como os testes foram concebidos para permitir uma correta aferição da satisfação dos requisitos.

Teste 1: Verificar que não é possível criar uma instância da classe Exemplo com valores nulos.

@Test(expected = IllegalArgumentException.class)
	public void ensureNullIsNotAllowed() {
	Exemplo instance = new Exemplo(null, null);
}

->MENU


4. Implementação

Nesta secção a equipa deve providenciar, se necessário, algumas evidências de que a implementação está em conformidade com o design efetuado. Para além disso, deve mencionar/descrever a existência de outros ficheiros (e.g. de configuração) relevantes e destacar commits relevantes;

Recomenda-se que organize este conteúdo por subsecções.

5. Integração/Demonstração

Nesta secção a equipa deve descrever os esforços realizados no sentido de integrar a funcionalidade desenvolvida com as restantes funcionalidades do sistema.

6. Observações

Nesta secção sugere-se que a equipa apresente uma perspetiva critica sobre o trabalho desenvolvido apontando, por exemplo, outras alternativas e ou trabalhos futuros relacionados.

->MENU


⚠️ **GitHub.com Fallback** ⚠️