Rede social para agregação de letras de música.

Rede social para agregação de letras de música.

por Nilo Cesar Teixeira -
Número de respostas: 8

Rede social para agregação de letras de música.

Integrantes:

Nilo César Teixeira

Resumo:

Rede social para categorização e compilação de letras de músicas, com participação dos usuários no envio e correção de conteúdo.

Objetivos gerais:

  • Ser um agregador de letras de músicas;
  • Reforçar a corretude das letras;
  • Unir pessoas com afinidade por escutar música acompanhando letras.

Objetivos específicos:

  • Cadastro de letras com metadados (faixa, álbum, artista, estilo, gravadora);
  • Usuários recebem classificação por quantidade de conteúdo postado;
  • Usuários têm sua classificação revista qdo correções ao seu conteúdo são feitas;
  • Cada usuário pode se associar a amigos e grupos de trabalho, compartilhando classificação.
Em resposta à Nilo Cesar Teixeira

Diagrama de casos de uso

por Nilo Cesar Teixeira -
Diagrama de casos de uso
Anexo t1_usecases.png
Em resposta à Nilo Cesar Teixeira

Re: Diagrama de casos de uso

por Nilo Cesar Teixeira -
Em anexo arquivo WAR contendo o protótipo inicial.

Ele também contém o source do programa.

Nós utilizamos o HSQLDB (vlw Sergio!). Então basta importar o projeto para o Eclipse, iniciar o Tomcat, adicionar o projeto no servidor via "Add and remove projects" (como na apostila da Caelum) e acessar o endereço /Endeavour. Não precisa de nenhuma outra configuração.

Quaisquer dúvidas por favor falem conosco.

Obrigado.
Em resposta à Nilo Cesar Teixeira

Re: Diagrama de casos de uso

por Thiago Henrique Coraini -
Segue em anexo nossa avaliação do projeto.

Abraços.
Em resposta à Thiago Henrique Coraini

Re: Diagrama de casos de uso

por Nilo Cesar Teixeira -

Olá Thiago, segue nossa réplica!

1. Análise:
- O diagrama de caso de uso ficou um pouco poluído. Algumas ações razoavelmente
análogas, como o cadastro dos diversos "metadados", poderiam ser agrupadas. Além
disso, das diversas ações previstas somente uma foi implementada

Realmente poderíamos ter simplificado o diagrama, mas achamos mais pertinente listar todas as funcionalidades que previmos do que melhorar o layout. Somente o cadastro de letras foi parcialmente implementado para a primeira versão, devido ao curto prazo. Elaboramos mais abaixo.

- O sistema não deveria ser considerado um ator, já que estes são somente agentes
externos.

Nossa análise ficou um pouco viesada, fora do padrão, porém não conseguimos deixar de enxergar este terceiro personagem, já que nem o admin nem os usuários seriam responsáveis pela atribuição de pontos.

2. Interface com o usuário:
- Faltou, nas telas de cadastro e de listagem de músicas, um link para a página principal
(e não para a de login).

Na nova implementação o link será para a home, se o usuário tiver se logado.

3. Arquitera:
- O método dispatch() aparece em quase todas as classes que implementam a
interface BusinessLogic. Esse método poderia ter sido extraído para uma superclasse
ou mesmo colocado como um método estático de uma única classe (como
GenController, por exemplo).
- Algumas classes que representam ações executam apenas um dispatch para uma
página JSP. Nesse caso, a página poderia ter sido chamada diretamente, sem a
necessidade da implementação da classe.

Nestes 2 aspectos discordamos fortemente, já que ao delegar trabalho para uma classe, ao invés de delegar diretamente para um jsp, podemos tornar o código mais legível. Ou seja, o model faz o que precisa em seu papel, e depois simplesmente dá dispatch para o jsp. Não seria boa prática deixar o jsp fazendo nada além de gerar output para o browser.

- Todas as classes que fazem a criação e verificação do BD implementam as ações no
construtor. Seria melhor implementar métodos para essas ações, possivelmente
colocando-os todos numa mesma classe que cuidasse da consistência do BD.

Concordamos. Inicialmente pensávamos em usar testes unitários também, mas o prazo fez com q utilizássemos testes à moda antiga.

4. Legibilidade:
O código não apresenta comentários, mas está bem estruturado. As packages foram
criadas de forma bem organizada, conforme a apostila indicada no fórum. Apenas alguns
arquivos JSP estão um pouco difíceis de ler, talvez pular linhas dividindo "blocos" de
código ajudaria.

Utilizamos o saudável Ctrl+Shift+F mas para alguns tags (labels etc) ele acabou agrupando demais. Entretanto, achamos melhor deixar do modo que o Eclipse automaticamente formatou.

5. Corretude:
- O login não foi implementado de maneira correta. Aceita qualquer nome de usuário,
com qualquer senha (nesse caso, seria melhor não existir uma página de login).

Deixamos o Login como um stub, q será implementado nesta nova versão se conseguirmos em tempo.

- Na página de cadastro de música, o único artista que aparece é o "Dream Theater"
(isso foi especificado estaticamente), porém na hora de listar os álbuns, em vez de
mostrar apenas os álbuns desse artista, mostra todos os álbuns existentes no banco de
dados.

Isto será corrigido na nova implementação. Porém, não deixamos o sistema inconsistente, já que os únicos álbuns cadastrados no sistema são apenas desta banda (Ps: O décimo álbum está a caminho ^^ - 23 de junho...)

6. Funcionalidade:
- Apesar de obviamente não ser esperada uma implementação completa do site,
acreditamos que nesse caso a implementação foi simples demais, possuindo um número
muito limitado de funcionalidades. Mesmo que fosse decidido que apenas o cadastro e a
listagem de músicas seria implementada, essas deveriam ter sido feitas de maneira mais
completa, atendendo aos detalhes mencionados anteriormente (deveríamos, por
exemplo, poder ao menos ver a letra das músicas cadastradas).

Deixamos a exibição das letras para qdo tivéssemos uma interface mais rica. Vamos utilizar o exemplo da última palestra e esperamos que seja satisfatório!

Notas final: 6,0

Pleiteamos 8... big grin

Em resposta à Nilo Cesar Teixeira

Re: Diagrama de casos de uso

por Márcio Guedes Hasegawa -
Análise da fase 1 do trabalho pelo grupo 10

Análise:
Análise bem desenvolvida. O diagrama de classes ficou bem coerente com a proposta do trabalho. Nos casos de uso, todos os cadastros que o usuário pode fazer poderiam estar em um único caso para não poluir tanto a figura.

Nota: 9,0

Interface:
Interface simples, limpa e consistente. Talvez para a entrega final dê para dar um tapa no visual, adicionando algum tipo de logo ou figura como header e um footer com informações do grupo que o desenvolveu.

Nota: 9,0

Arquitetura:
Seguiram a arquitetura proposta e organizaram bem os pacotes do projeto.

Nota: 9,0

Legibilidade:
Código bem desenvolvido e simples, dispensando a necessidade de comentários no meio do código, como alguns avaliadores acharam imprescindível.

Nota: 9,0

Corretude:
Criaram as páginas através do wizard do eclipse, então o html utilizado é o xhtml 1.0 Transitional e não o xhtml 1.1 requerido pelo prof.
Na nossa opinião, seria melhor não existir uma página de login não funcional, esse erro provavelmente será corrigido em fases posteriores, também não conseguimos implementar tudo que nos propusemos no início, mas acho que é melhor não deixar isso tão exposto a um usuário.

Nota: 7,0

Funcionalidade:
Foram implementadas poucas funcionalidades de todas as propostas, um cadastro de músicas com albuns e artista fixos e uma listagem das músicas cadastradas, sem nenhuma referência aos atributos album e artista.

Nota: 5,0

Nota ponderada: 8,0
Em resposta à Márcio Guedes Hasegawa

Rede Social para Agregação de Letras de Música - Versão 2.0

por Edson Chen -
Em anexo arquivo WAR contendo as implementações de Ajax e Jquery na funcionalidade de Listagem e Edição de Letras.

Havendo dúvidas é só falar.

Muito Obrigado!
Em resposta à Edson Chen

Re: Rede Social para Agregação de Letras de Música - Versão 2.0

por Marco Aurélio Gerosa -
- Alguns comentarios sobre o diagrama de classes:
* PAra que saber a gravadora do artista?
* Muitas vezes uma mesma musica faz parte de varios albums, é gravada por varios artistas
* Nao seria interessante registrar o(s) compositor(es) da musica?
* Nao ha ligacao do usuario com o resto?
- O sistema nao é ator do diagrama de casos de uso
- palavras-chave aparece no caso de uso mas nao no diag de classes
- Com relacao a arquitetura e ao codigo, os avaliadores ja apontaram os problemas