Bolao da Maraponga

Integrantes do grupo:

  • Cícero David Leite
  • Francisco Germano Batista da Silva Júnior
  • Igor de Souza Almeida
  • Ítalo Fernandes Águiar

ano/sem: 2008/2o.
data de apresentação do projeto: 13/12/2008 (2)

Motivação

A projeto "Bolão da Maraponga" surgiu para automatizar o sistema de apostas nos recorrentes bolões de campeonatos de futebol que ocorrem no bairro da Maraponga, cidade de Fortaleza. A idéia do projeto final da disciplina CES-22 ser esse sistema foi muito interessante por se tratar de um sistema com aplicações práticas. Este relatório tem como objetivo passar rapidamente pelas principais funcionalidades da aplicação e comentar sobre as tecnologias empregadas no seu desenvolvimento. Maiores detalhes foram fornecidos durante a apresentação do projeto.

Descrição geral e regras

A aplicação possui dois tipos de usuários: o usuário administrador e o usuário apostador. O usuário administrador (doravante denominado administrador) possuirá acesso as funcionalidades (descritas na seção "Funcionalidades") para o gerenciamento de um ou mais bolões.

O administrador do bolão será único (somente existirá um login e senha para) e será necessário que o administrador forneça o código de acesso do bolão para os usuários apostadores (doravante denominados usuários). O administrador poderá criar vários bolões com codigos de acesso diferentes e entregar para os usuários que deverão criar uma conta com login e senha para cada um dos bolões que ele participa como apostador. Essas restrições (um único administrador para o sistema e um único bolão por conta de usuário) foram simplificações adotadas para facilitar o desenvolvimento da aplicação e na prática não devem dificultar a utilização do software.

As regras do "Bolão da Maraponga" são baseadas no sistema de bolão do site da globo. Os apostadores ganham pontos (definidos pelo administrador do bolão) de acordo com alguns critérios básicos:

  1. Placar exato. Os pontos desse critério são recebidos caso o apostador tenha acertado o placar do jogo.
  2. Empate. Os pontos desse critério são recebidos caso o apostador tenha apostado num empate e errado o placar exato do jogo.
  3. Clube vencedor. Os pontos desse critério são recebidos caso o apostador tenha acertado o clube que ganhou a partida.
  4. Gols de um clube. Os pontos desse critério são recebidos caso o apostador acerte o número de gols que um dos clubes que participou da partida.

Observe que os pontos dos critérios 23e 4 podem ser acumulados.

Existe também uma horário limite antes do jogo (definido pelo administrador do bolão) para que o apostador efetue as suas apostas. Isso evita que informações descobertas próximo a partida prejudiquem os apostadores que fizeram os seus lances com uma maior antecedência.

Funcionalidades

A aplicação pode ser dividida em 3 partes: Geral, usuários e administrador.

Geral


A parte geral é composta por 3 telas: Home, login do administrador, autores e cadastro do usuário.
Essas telas possuem em comum uma faixa no topo para o usuário entrar com seu login e senha ou clicar no link para a tela de cadastro de usuários. Outro componente em comum das telas é uma faixa lateral para navegação entre as telas autores, home e login do administrador.

Home

Tela inicial da aplicação. Possui um espaço para ser colocada informações sobre o sistema, a pricípio o que está citado na seção "Descrição geral e regras". Por falta de tempo hábil este espaço foi deixado em branco.

Login do administrador

Tela que contem dois campos para o administrador colocar o seu login e senha e um botão "GO" que leva a parte de administrador da aplicação. Na primeira vez que a aplicação for rodada o banco de dados não conterá nenhum administrador e o primeiro login e senha colocados serão gravados no banco de dados. Caso o login precise ser alterado, ele deve ser modificado diretamente no banco de dados.

Autores

Tela falando sobre a motivação do desenvolvimento do programa e sobre os seus criadores. Por falta de tempo hábil este espaço foi deixado em branco.

Cadasto de usuário

Tela que segue o link "cadastrar-se". Possui os campos necessários para o usuários se cadastrar no sistema e um botão "Cadastrar-se". O campos email é opcional e pode ser utilizado para o usuário receber informações sobre o bolão. Caso o usuário não preencha um dos campos essenciais ou os preencha incorretamente, mensagens de alerta aparecerão na tela pedindo a correção dos erros no cadastro.

Caso o usuário seja cadastrado com sucesso surgirá uma mensagem de confirmação na tela e a partir desse momento o usuário poderá logar e seguir para a parte de usuários do bolão.

Administrador


A parte de adiminstrador similarmente a parte "geral" e "usuários" possui uma faixa no topo e uma faixa lateral em todas as telas. A faixa do topo possui um botão "logout" que leva a pagina home da parte "geral". A faixa lateral possui links para quatro telas: Alterar Dados Admin, Editar Bolão, Criar Bolão e Ver Classificação.

Alterar Dados Admin

Nessa tela existem os campos login, senha e o botão salvar. Os novos valores para o login e/ou senha do administrador devem ser colocados nos campos e modificados pelo botão saçvar.

Editar Bolão

Essa tela é a tela inicial da parte de administrador. Ela contêm uma tabela com os bolões já cadastrados. Em cada linha da tabela existe um botão para a edição do bolão selecionado.

Ao clicarmos nesse botão a tela é atualizada e aparece na tela um submenu com quatro links que funcionam como abas da tela (rodadas, clubes, usuários, dados).

Rodadas

Constituido dos seguintes ítens:

  • Formulário de entrada das rodadas.
  • Formulário de entrada dos jogos de uma rodada.
  • Tabela de rodadas do bolão. Apresenta as rodadas cadastradas no bolão, possuindo as opções de editar e excluir para cada uma das rodadas do bolão.
  • Tabela dos jogos da rodada. Mostra os dados de todos os jogos da rodada, possuindo as opções de editar e excluir para cada um dos jogos do bolão.
  • Botão "atualizar pontuação". Modifica os pontos dos usuarios do programa de acordo com as alterações efetuadas.

Clubes

Constituido dos seguintes ítens:

  • Tabela de clubes. Apresenta os clubes cadastrados no bolão, possuindo as opções de editar e excluir para cada um dos clubes do bolão.
  • Formulário para inserção e edição dos clubes.

Usuários

Constituido dos seguintes ítens:

  • Tabela de usuários. Apresenta os usuários cadastrados no bolão, possuindo a opção de excluir para cada um dos usuários do bolão.

Dados

Constituido dos seguintes ítens:

  • Formulário para alteração dos dados relativos ao bolão atualmente selecionado (incluindo pontuação do bolão).

Criar Bolão

Tela análoga ao submenu "Dados" da tela "Editar Bolão".

Ver Classificação

Essa tela possui os seguintes componentes:

  • Tabela de classificação. Os usuários estão colocados linha após linha por ordem crescente de pontos. Dados como login e nome são também apresentados para facilitar a identificação do usuário.
  • Botão "Notificar Usuários". Esse botão envia um mensagem por email para os usuários que marcaram o checkbox "Receber informações por email".

Usuários


A parte de usuário possue uma parte comum que é formada por uma faixa no topo (bem semelhante a faixa das partes geral e administrador) e uma faixa lateral.

A faixa do topo conterá o login do usuário corrente escrito e ao seu lado o botão logout (que quando clicado redireciona para a página home da parte geral da aplicação). A faixa lateral conterá três links para as telas da parte usuário: apostas, alterar dados e ver classificação.

Apostas

Tela inicial da parte de usuário. Possui os seguintes componentes:

  • Tabela de rodadas do bolão. Apresenta as rodadas cadastradas no bolão, possuindo as opções de selecionar para cada uma das rodadas do bolão.
  • Tabela dos jogos da rodada. Mostra os dados de todos os jogos da rodada, possuindo dois campos editáveis para que o apostador dê o seu palpite sobre o número de gols que o time da casa e o time visitante marcarão. O palpite só poderá ser efetuado para os jogos que o administrador do bolão cadastrou mas ainda não colocou o seu resultado no sistema.
  • Botão "efetivar apostas". Através desse botão que o usuário confirma as apostas que ele inseriu na tabela de jogos da rodada.

Alterar Dados

Tela com um formulário preenchido com os dados do usuário. É nessa tela que o usuário pode mudar suas informações (senha, email, login, nome) e a opção de receber dados do bolão via email. O botão "atualizar" efetua as modificações feitas pelo usuário.

Ver Classificação

Tela análoga a tela "Ver Classificação" da parte administrador, exceto pela ausência do botão "Notificar Usuários".

Desenvolvimento

O desenvolvimento da aplicação iniciou-se com um estudo de qual seria uma ferramenta útil para a criação do "Bolão da Maraponga". O framework escolhido para o desenvolvimento da aplicação foi o Visual Web Java Server Faces (JSF). Essa ferramenta poderosa facilitou em muito a programação das telas do programa e tinha como idéia básica aliar um arquivo xml e um arquivo java para criar botões, tabelas, menus e etc. Muitos componentes visuais já vem prontos no framework e a maior parte do trabalho consistiu em desenvolver a lógica da aplicação com o que conseguíamos a partir do JSF.

A etapa seguinte foi a modelagem do banco de dados. Esse trabalho não foi tão trabalhoso pois ao longo do curso da disciplina de CES-30 efetuamos vários exercícios de modelamento de banco de dados. Na seqüência foi criada a interface DAO (Data Access Object) que nesta aplicação utilizou a metodologia JPA (Java Persistance API) com o framework Hibernate para persistir os dados. Com toda a infra-estrutura de banco de dados pronta preparamos testes para verificar o bom funcionamento da classe DAO (inserir, recuperar, deletar, retornar listas e etc.). Como ultima tarefa dessa etapa do desenvolvimento criamos um método main na classe "Operations" para popular o banco de forma automatizada.

WorkbenchBolão.jpg

No projeto foram utilizados diversos dos conceitos aprendidos no curso de CES-22. Destaque para o padrão Observer, implementado pela interface observer. No projeto os apostadores são observadores do bolão e por isso podem receber notificações (email com a pontuação e classificação dos apostadores para aqueles usuários que tiverem optado por essa opção, por exemplo) ou simplesmente atualizando quando alguma modificação (resultado de novos jogos foram acrescentandos pelo administrador por exemplo) acontecer no bolão. A seguir segue o diagrama de classes das entidades da aplicação no qual pode-se perceber facilmente a utilização do padrão observer.

DiagramaDeClassesBolao01.jpg
DiagramaDeClasseBolao02.jpg
DiagramaDeClassesBolao03.jpg

Vale ressaltar que o projeto foi hospedado num servidor do Google Code e o desenvolvimento foi feito de forma colaborativa utilizando-se o SVN para se fazer o controle de versão.

Métricas

  • Arquivos XML = 13. Linhas de código = 1845.
  • Arquivos CSS = 2. Linhas de código = 211.
  • Arquivos de propriedade = 7. Linhas de código = 211.
  • Páginas JSP = 34. Linhas de código = 1612.
  • Arquivos Java = 54. Linhas de código = 5677.

Conclusão

O projeto foi muito desafiador e trabalhoso, devido a inexperiência dos programadores com uma aplicação web, o tratamento com o desenvolvimento coloborativo (SVN) e a iteração entre a aplicação e o banco de dados (JPA). O aprendizado valioso e o fato de que o projeto será aplicado na realidade são motivos de orgulho para os integrantes do grupo.

Add a New Comment
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License