Gestão de informações sobre futebol
Integrantes
Carlos Eduardo Manssur
Diogo Vernier dos Santos
Descrição
O sistema consiste em um site onde os usuários postarão notícias sobre futebol e poderão comentar e avaliar as notícias de outros usuários, fazendo assim com que notícias bem avaliadas se mantenham no topo da página e notícias mal avaliadas não permaneçam nas primeiras páginas.
Objetivo Geral
- Manter as notícias ordenadas por relevância para os usuários.
Objetivo Específico
- Permitir a criação de notícias.
- Permitir a avaliação de uma notícia, para que o sistema possa ordenar as notícias por ordem de relevância.
- Permitir o comentário de uma notícia.
Em resposta à Diogo Vernier dos Santos
Re: Gestão de informações sobre futebol
por Carlos Eduardo Manssur -
Em resposta à Carlos Eduardo Manssur
Re: Gestão de informações sobre futebol
por Carlos Eduardo Manssur -
Em resposta à Carlos Eduardo Manssur
Re: Gestão de informações sobre futebol
por Diogo Vernier dos Santos -
Entrega do trabalho 1
Instruções de como rodar se encontram no arquivo README.txt
Instruções de como rodar se encontram no arquivo README.txt
Em resposta à Carlos Eduardo Manssur
Re: Gestão de informações sobre futebol
por Diogo Vernier dos Santos -
Em resposta à Diogo Vernier dos Santos
Re: Gestão de informações sobre futebol
por Diogo Vernier dos Santos -
Em resposta à Diogo Vernier dos Santos
Avaliação - Gestão de informações sobre futebol
por Lucas Santos de Oliveira -
A arquitetura está bem desenvolvida com o uso de camadas, o código é bem legivel, o projeto segue os padrões nas páginas web, o código é bem identado.
Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema.
Nota: 9,0
Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema.
Nota: 9,0
Em resposta à Lucas Santos de Oliveira
Re: Avaliação - Gestão de informações sobre futebol
por Carlos Eduardo Manssur -
Olá Lucas,
- Realmente o DAO não foi criado, isso ficou faltando mesmo.
- O tamanho dos campos não foi dado devida atenção o MySQL Query Browser gera com tamanho 45 por default e acabamos não alterando.
- Ficaram faltando algumas funcionalidades sim seguindo o diagrama de classes, inclusive o sorter que seria um algoritmo mais complexo ficou sem ser desenvolvido.
Obrigado pela avaliação.
Att,
Carlos.
- Realmente o DAO não foi criado, isso ficou faltando mesmo.
- O tamanho dos campos não foi dado devida atenção o MySQL Query Browser gera com tamanho 45 por default e acabamos não alterando.
- Ficaram faltando algumas funcionalidades sim seguindo o diagrama de classes, inclusive o sorter que seria um algoritmo mais complexo ficou sem ser desenvolvido.
Obrigado pela avaliação.
Att,
Carlos.
Código java está simples (no bom sentido!), logo está bem legível.
No geral o sistema está legal, alguns pontos só:
- Senti pouca legibilidade do código XHTML pelo mesmo não estar identado;
- Poderia ter utilizado HttpSession para armazenar o login do usuário ao invés de mexer manualmente nos cookies. Ele foi criado justamente para esses tipos de informação;
- Acredito que você poderia ter encapsulado a lógica de negócio através de algum design pattern (Business, Facade, etc.). Logo você não está implementando
a arquitetura em 3 camadas, você teria problemas em reutilizar sua lógica de negócio em uma aplicação Swing por exemplo.
Ex:sevlet.AdicionaAvaliacao: if(avaliacaoUsuario.equals("positiva")) {
avaliacao = new Avaliacao(noticia, usuario, 1);
}
else {
avaliacao = new Avaliacao(noticia, usuario, -1);
} //isso poderia estar desacoplado da "camada de apresentação"
- Acho que utilizando a implementação do BaseService não possui comportamento suficiente acoplado à idéia de Service que justifica
o uso da herança ao invés da composição. Como o único comportamento é o "getConnection", esse método poderia facilmente estar em um outro objeto
como um "GerenciadorDeConexoes", "ConnectionFactory" ou qualquer outro e ainda liberaria os Service's para um esquema de herança diferente, além deste objeto estar disponivel futuramente para necessidade de outros objetos.
De qualquer forma a legibilidade está boa e a parte visual da interface também.
Nota sugerida: 7,5
No geral o sistema está legal, alguns pontos só:
- Senti pouca legibilidade do código XHTML pelo mesmo não estar identado;
- Poderia ter utilizado HttpSession para armazenar o login do usuário ao invés de mexer manualmente nos cookies. Ele foi criado justamente para esses tipos de informação;
- Acredito que você poderia ter encapsulado a lógica de negócio através de algum design pattern (Business, Facade, etc.). Logo você não está implementando
a arquitetura em 3 camadas, você teria problemas em reutilizar sua lógica de negócio em uma aplicação Swing por exemplo.
Ex:sevlet.AdicionaAvaliacao: if(avaliacaoUsuario.equals("positiva")) {
avaliacao = new Avaliacao(noticia, usuario, 1);
}
else {
avaliacao = new Avaliacao(noticia, usuario, -1);
} //isso poderia estar desacoplado da "camada de apresentação"
- Acho que utilizando a implementação do BaseService não possui comportamento suficiente acoplado à idéia de Service que justifica
o uso da herança ao invés da composição. Como o único comportamento é o "getConnection", esse método poderia facilmente estar em um outro objeto
como um "GerenciadorDeConexoes", "ConnectionFactory" ou qualquer outro e ainda liberaria os Service's para um esquema de herança diferente, além deste objeto estar disponivel futuramente para necessidade de outros objetos.
De qualquer forma a legibilidade está boa e a parte visual da interface também.
Nota sugerida: 7,5
Primeira avaliação:
" Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema."
Implementação:
1- DAO e DAOFactory implementados.
2- Tamanho das colunas do banco corrigidos.
3- Funcionalidades que estavam faltando ainda não foram implementadas.
Segunda avaliação:
"- Senti pouca legibilidade do código XHTML pelo mesmo não estar identado;
- Poderia ter utilizado HttpSession para armazenar o login do usuário ao invés de mexer manualmente nos cookies. Ele foi criado justamente para esses tipos de informação;
- Acredito que você poderia ter encapsulado a lógica de negócio através de algum design pattern (Business, Facade, etc.). Logo você não está implementando
a arquitetura em 3 camadas, você teria problemas em reutilizar sua lógica de negócio em uma aplicação Swing por exemplo.
Ex:sevlet.AdicionaAvaliacao: if(avaliacaoUsuario.equals("positiva")) {
avaliacao = new Avaliacao(noticia, usuario, 1);
}
else {
avaliacao = new Avaliacao(noticia, usuario, -1);
} //isso poderia estar desacoplado da "camada de apresentação"
- Acho que utilizando a implementação do BaseService não possui comportamento suficiente acoplado à idéia de Service que justifica
o uso da herança ao invés da composição. Como o único comportamento é o "getConnection", esse método poderia facilmente estar em um outro objeto
como um "GerenciadorDeConexoes", "ConnectionFactory" ou qualquer outro e ainda liberaria os Service's para um esquema de herança diferente, além deste objeto estar disponivel futuramente para necessidade de outros objetos."
Implementação:
1- Todos os arquivos foram identados com o comando de identação no eclipse. =/
2- HttpSession implementado.
3- Business Delegate, nós acreditamos que seria uma complexidade desnecessária por hora. Este código que você colou nós só o utilizamos desta maneira porque assim que o Sorter for implementado toda essa lógica seria dentro dele. Tanto a lógica de pontuação quanto ordenação das notícias.
4- ConnectionFactory implementado.
Att,
Carlos.
" Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema."
Implementação:
1- DAO e DAOFactory implementados.
2- Tamanho das colunas do banco corrigidos.
3- Funcionalidades que estavam faltando ainda não foram implementadas.
Segunda avaliação:
"- Senti pouca legibilidade do código XHTML pelo mesmo não estar identado;
- Poderia ter utilizado HttpSession para armazenar o login do usuário ao invés de mexer manualmente nos cookies. Ele foi criado justamente para esses tipos de informação;
- Acredito que você poderia ter encapsulado a lógica de negócio através de algum design pattern (Business, Facade, etc.). Logo você não está implementando
a arquitetura em 3 camadas, você teria problemas em reutilizar sua lógica de negócio em uma aplicação Swing por exemplo.
Ex:sevlet.AdicionaAvaliacao: if(avaliacaoUsuario.equals("positiva")) {
avaliacao = new Avaliacao(noticia, usuario, 1);
}
else {
avaliacao = new Avaliacao(noticia, usuario, -1);
} //isso poderia estar desacoplado da "camada de apresentação"
- Acho que utilizando a implementação do BaseService não possui comportamento suficiente acoplado à idéia de Service que justifica
o uso da herança ao invés da composição. Como o único comportamento é o "getConnection", esse método poderia facilmente estar em um outro objeto
como um "GerenciadorDeConexoes", "ConnectionFactory" ou qualquer outro e ainda liberaria os Service's para um esquema de herança diferente, além deste objeto estar disponivel futuramente para necessidade de outros objetos."
Implementação:
1- Todos os arquivos foram identados com o comando de identação no eclipse. =/
2- HttpSession implementado.
3- Business Delegate, nós acreditamos que seria uma complexidade desnecessária por hora. Este código que você colou nós só o utilizamos desta maneira porque assim que o Sorter for implementado toda essa lógica seria dentro dele. Tanto a lógica de pontuação quanto ordenação das notícias.
4- ConnectionFactory implementado.
Att,
Carlos.
Esqueci de avisar... segue projeto em anexo no reply anterior!
Primeira avaliação:
" Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema."
Implementação:
1- DAO e DAOFactory implementados.
2- Tamanho das colunas do banco corrigidos.
3- Funcionalidades que estavam faltando ainda não foram implementadas.
O DaoFactory ficou bem implementado.
Não encotrei o script.sql, criei o banco com "teste 20090315 2313.sql", que permanece com campos com tamanho 45.
As funcionalidades contiuam sem implementar, como você mesmo disse.
" Acho que seria uma ótima idéia criar uma classe generica DAO da qual derivem as classes DAO, porque muitos atributos e métodos se repetem.
O tamanho dos campos do banco de dados para os tipos de texto longos devem ser aumentados. Eg. comentário tem varchar(45) deve ser varchar(250)
Falta completar as funcionalidades do sistema."
Implementação:
1- DAO e DAOFactory implementados.
2- Tamanho das colunas do banco corrigidos.
3- Funcionalidades que estavam faltando ainda não foram implementadas.
O DaoFactory ficou bem implementado.
Não encotrei o script.sql, criei o banco com "teste 20090315 2313.sql", que permanece com campos com tamanho 45.
As funcionalidades contiuam sem implementar, como você mesmo disse.
é este arquivo sql mesmo... é que o nome dele ficou errado...
então eu alterei o tamanho apenas dos campos com texto da tabela notícia e contato que foram para 250... os outros não necessitam de mais que 45 mesmo...
então eu alterei o tamanho apenas dos campos com texto da tabela notícia e contato que foram para 250... os outros não necessitam de mais que 45 mesmo...
Olá,
- No caso de uso Sorter não é um ator. O sistema nunca é um ator de si mesmo.
- No diagrama de classes, há um idUsuario, mas nao há a associação
- Não seria interessante ter o registro dos jogos?
- A arquitetura ficou boa
- O reuso de fragmentos de JSP está legal
- Os XHTML continuam com problemas de identação
- A separação de XHTML e CSS está boa
abraço,
Marco