Can i play

From Laboratório MM 5

(Difference between revisions)
Jump to: navigation, search
(mapa das pagina)
 
(22 intermediate revisions not shown)
Line 20: Line 20:
=== Visão Geral do Projeto ===
=== Visão Geral do Projeto ===
-
A plataforma ‘Can I Play’ tem na criação, organização e gestão de jogos de futebol amigáveis a sua principal preocupação. Quando o utilizador entrar no website sem estar registado e com o login efectuado, apenas terá acesso a uma página inicial onde terá acesso a uma pequena tour da aplicação e a possibilidade de se registar e efectuar o login. Após um registo com sucesso e feito o login, o utilizador terá acesso a todos o que a plataforma tem para oferecer. Cada utilizador terá uma página de perfil única, onde poderá colocar as suas informações pessoais, carregar uma imagem sua, deixar uma mensagem pessoal ao estilo de signature, mostrar a sua disponibilidade em termos de localização e horários para jogos e uma zona de estatísticas que terá lá as vitórias e derrotas que for coleccionando. De notar que a localização de utilizadores será feita através da aplicação GoogleMaps para se obterem as coordenadas, e poder-se depois filtrar resultados por proximidade. Existe um sistema de feedback, que permitirá aos utilizadores classificar cada individuo em termos de habilidade, desportivismo e assiduidade. Depois de processada e calculada a média da classificação, essa informação será mostrada no perfil de cada individuo, numa classificação de 0 a 5, sob o formato de estrelas. Outra maneira de permitir o feedback, é o sistema de comentários que também estará presente no perfil de cada utilizador. Ainda na comunidade, o utilizador poderá pedir amizade a outros utilizadores, e definir a sua privacidade consoante aquilo que deseja. Pode permitir que as suas informações sejam disponibilizadas apenas a amigos ou ao público em geral. Poder-se-ão formar grupos de pessoas com os mesmos interesses, onde também existirá o sistema de comentários. Existe também a possibilidade de criar equipas, cuja função estará mais focada na vertente de criação e organização de jogos.
+
A plataforma ‘Can I Play’ tem na criação, organização e gestão de jogos de futebol amigáveis a sua principal preocupação. Quando o utilizador entrar no website sem estar registado e com o login efectuado, apenas terá acesso a uma página inicial onde terá a possibilidade de se registar e efectuar o login. Após um registo com sucesso e feito o login, o utilizador terá acesso a tudo o que a plataforma tem para oferecer. Cada utilizador terá uma página de perfil única, onde poderá colocar as suas informações pessoais, carregar uma imagem sua, deixar uma mensagem pessoal ao estilo de signature, mostrar a sua disponibilidade em termos de localização e horários para jogos e uma zona de estatísticas que disponibilizará as vitórias e derrotas que for coleccionando. De notar que a localização de utilizadores será feita através da aplicação GoogleMaps para se obterem as coordenadas, e poder-se depois filtrar resultados por proximidade. Existe um sistema de feedback, que permitirá aos utilizadores classificar cada individuo em termos de habilidade, desportivismo e assiduidade. Depois de processada e calculada a média da classificação, essa informação será mostrada no perfil de cada individuo, numa classificação de 0 a 5, sob a forma de estrelas. Outra maneira de facilitar o feedback, é o sistema de comentários que estará presente no perfil de cada utilizador. Ainda na comunidade, o utilizador poderá pedir amizade a outros utilizadores, e definir a sua privacidade consoante aquilo que deseja. Pode permitir que as suas informações sejam disponibilizadas apenas a amigos ou ao público em geral. Poder-se-ão formar grupos de pessoas com os mesmos interesses, onde também existirá o sistema de comentários. Existe também a possibilidade de criar equipas, cuja função estará mais focada na vertente de criação e organização de jogos.
Na parte dos jogos, os utilizadores poderão criar jogos amigáveis, onde posteriormente os outros utilizadores poderão juntar-se. Quando criado o jogo, este estará disponível numa janela de procura, sendo que o utilizador que procura terá possibilidade de filtrar os jogos apresentados por distância geográfica do seu ponto de residência. Quando escolhido o jogo, poderemos entrar na equipa que pretendemos, sujeitos a aprovação por parte do criador do jogo.
Na parte dos jogos, os utilizadores poderão criar jogos amigáveis, onde posteriormente os outros utilizadores poderão juntar-se. Quando criado o jogo, este estará disponível numa janela de procura, sendo que o utilizador que procura terá possibilidade de filtrar os jogos apresentados por distância geográfica do seu ponto de residência. Quando escolhido o jogo, poderemos entrar na equipa que pretendemos, sujeitos a aprovação por parte do criador do jogo.
O modelo de competições da nossa plataforma permitirá aos jogadores entrar em competições oficiais, tanto individualmente, como fazendo parte de uma equipa. Ao juntar uma equipa pré-formada a uma competição haverá a necessidade de fazer uma convocatória dos utilizadores elegíveis para participar.
O modelo de competições da nossa plataforma permitirá aos jogadores entrar em competições oficiais, tanto individualmente, como fazendo parte de uma equipa. Ao juntar uma equipa pré-formada a uma competição haverá a necessidade de fazer uma convocatória dos utilizadores elegíveis para participar.
-
Na barra fixa que se encontra no topo do browser pode-se encontrar um botão de pesquisa que procurará por utilizadores, estabelecimentos e jogos. Existe um botão de notificações, que estará devidamente assinalado quando houver novas notificações. Outro botão será o de acesso ao sistema de mensagens privadas, onde poder-se-á enviar mensagens e ler as recebidas. O último botão é o referente às configurações.
+
Na barra fixa que se encontra no topo do browser pode-se encontrar um botão de pesquisa que procurará por utilizadores, campos e jogos. Existe um botão de notificações, que estará devidamente assinalado quando houver novas notificações. Outro botão será o de acesso ao sistema de mensagens privadas, onde poder-se-á enviar mensagens e ler as recebidas. O último botão é o referente às configurações, onde se pode fazer logout e definir preferências gerais, tal como a privacidade.
 +
==Base de dados desenvolvida==
 +
Um website como o Can I Play, para funcionar, vai necessitar de uma ampla interação com uma base de dados que guarde todos os dados que vão ser inseridos, editados e lidos pelos utilizadores. Para armazenar estes dados de forma harmoniosa criamos um conjunto de tabelas, com as respectivas relações. Ao longo do desenvolvimento do Can I Play apercebemo-nos que não ia ser possivel ter todas as tabelas a funcionar, pelo que optámos por algumas. Na figura seguinte é mostrada uma representação gráfica destas tabelas.
 +
[[File:Visao_geral.jpg]]
 +
Como se pode verificar pelas cores, existem 4 grandes modulos de tabelas.
 +
As tabelas azuis são aquelas que servem como base para a comunidade. Existe uma tabela principal 'Utilizadores' que vai receber dados de outras tabelas azuis. Os utilizadores poderão tambem ser moderadores de grupos, grupos esses que estarão associados ao utilizador.
 +
As tabelas amarelas são as tabelas referentes às mensagens e comentários. No que diz respeito às mensagens privadas, existe a tabela Mensagens que vai guardar os dados de mensagens, enquanto a tabela Destinatários se vai assegurar que a mensagem é entregue aos destinatários correctos.
 +
As tabelas vermelhas são referentes aos jogos e competições. A tabela equipa vai servir para saber que utilizadores fazem parte de determinada equipa. Estas equipas poderão participar nas competições, no entanto, terá de ser feita uma convocatória dos utilizadores elegiveis para participar nessa competição. Essa distinção é feita na tabela convocatória_competicao.
 +
As tabelas verdes são referentes aos campos e reservas. De notar que os campos podem ter mais imagens de perfil que um utilizador comum, dai termos a tabela Galeria_Campos. Por forma a facilitar a indexação dos horários e a pesquisa, optámos por codificar os periodos de tempo na tabela Horários.
-
== Relatório relativo ao projecto 'Can I Play?' de Laboratório 5 ==
+
==Implementação==
-
* Introdução(check)
+
=== Descrição das principais funcionalidades da aplicação WEB===
-
** Objectivo do documento(check)
+
Infelizmente não foi possivel concretizar todos os objectivos definidos inicialmente, sendo que apenas algumas das funcionalidades foram implementadas. Assim, a plataforma, à data presente, suporta as seguintes funcionalidades:
-
** Visão geral do projecto(almost CHECKED)
+
*Registo e Autenticação de Utilizadores;
-
* Base de dados desenvolvida
+
*Verificação da conta de utilizador por Email;
-
* Implementação
+
*Autenticação por cookies (Manter Sessão Iniciada);
-
** Descrição das principais funcionalidades da aplicação Web
+
*Editar dados pessoais, password, imagem de avatar e de perfil;
-
** Mapa de páginas
+
*Registo da preferência horária e geográfica, através do GoogleMaps API e de calendário;
-
*** Server Behaviours utilizados
+
*Controlo de conteúdos de acesso restrito (por exemplo, não conseguir aceder à plataforma sem sessão autenticada);
-
*** Recordsets/Queries utilizados
+
*Consulta do perfil público de outros utilizadores, e possibilidade de avaliação(feedback);
-
*** Parâmetros passados entre páginas
+
*Sistema de pesquisa dinâmica por nome de utilizadores,grupos, equipas e campos;
-
** Integração (e.g. Flash, AJAX Frameworks, etc)
+
*Sistema de mensagens privadas.
-
* Desenvolvimentos Futuros
+
 
-
* Conclusões
+
===Mapa de Páginas===
-
* Referências bibliográficas
+
[[File:Mapa_dos_maus.png]]
 +
====Server Behavior Utilizados====
 +
Relativamente a este ponto, julgamos não ter nada a apresentar.
 +
 
 +
====RecordSets/Queries Utilizados====
 +
 
 +
A nossa plataforma como trabalha com um elevado número de tabelas e com conteúdos muito diversos, isso implicou a criação e utilização de variados recordsets. No entanto a sua maioria destina-se à simples consulta de informação, resultando da utilização de uma ou duas tabelas e, por isso, vamos apresentar apenas aqueles que consideramos mais relevantes:
 +
*'''Votação'''- O recordset $rs_votos vai receber dinamicamente o ID do utilizador a consultar, compilando o número de votos e a média que esse utilizador possui em determinado atributo (tabela);
 +
*'''Registo'''- Embora o recordset utilizado não seja muito complexo, esta operação necessitou de cumprir certos passos. Ao registar é preciso verificar a exclusividade do Email, a inserção dos dados na tabela de Utilizadores, e a criação de um código de activação, registado na tabela Desactivados.
 +
*'''Mensagem Privada''' - O Envio de uma mensagem privada implica a verificação do ID do destinatário, adição na tabela Mensagens, recuperação do ID da mensagem gerado e registo na tabela de Destinatários.
 +
 
 +
==== Parametros Passados entre Páginas====
 +
 
 +
Dependendo da finalidade, foram utilizados ambos os métodos de GET e POST para desenvolver as funcionalidades da aplicação.
 +
No desenvolvimento das páginas, optámos por criar poucas páginas dinâmicas, cujos conteudos conteúdos se alteram de acordo com os parâmetros recebidos. A página de registo é partilhada ao acto de registo e de edição dos dados pessoais. O login e logout são efectuados na mesma página. As páginas de perfil e leitura individual das mensagens são geradas dinâmicamente através do ID que é passado pelo método GET. Outras operações, como por exemplo marcar uma noticia como lida são efectuadas com recurso ao método GET.
 +
<br/>
 +
O método POST, para além de ser utilizado no registo e no upload de imagens, foi utilizado na ligação entre o javascript, o php e a base de dados.
 +
 
 +
===Integração===
 +
De modo a facilitar e agilizar o desenvolvimento da aplicação, foram utilizadas diversas tecnologias. O recurso a jquery é praticamente indispensável, quer através dos métodos e funções que são disponibilizados pelo jquery, quer por causa das inúmeras aplicações que já existem disponiveis. Destas, utilizámos na nossa aplicação o RATY, para facilitar a classificação dos utilizadores, o Autosizer, redimensionamento dinâmico de textareas e o BValidator, validação de formulários em javascript.
 +
<br/>
 +
Uma das funções que se destacaram no jquery foi a utilização do .load() que permitiu actualizar com dados da BD, certos conteúdos da página.
 +
<br/>
 +
O GoogleMaps API V3 foi útil de maneira a facilitar o registo da localização do utilizador. A utilização do geocoder() e da geometry permitiram fazer a correspondência de um local às suas coordenadas geográficas, e o cálculo de distâncias entre pontos.
 +
 
 +
== Desenvolvimentos Futuros ==
 +
Como não conseguimos cumprir todos os requisitos que tinhamos planeado, para futuro ficará o desenvolvimento de todas as funcionalidades que não foram implementadas, entre elas destacando-se:
 +
*Toda a criação e gestão de jogos, equipas e competições estará nos planos de futuro imediato;
 +
*A implementação do sistema de comentários, entre amigos, grupos e equipa;
 +
*Implementar o sistema de reservas de campos por parte do moderador de um jogo/competição.
 +
 
 +
== Conclusões ==
 +
Após a conclusão deste projecto, verificamos claramente que não conseguimos cumprir com todas as funcionalidades que tínhamos planeado implementar, embora tenhamos também noção que possuímos um projecto ambicioso. Uma parte que consideramos importante e que não tivemos oportunidade de implementar foi a criação e gestão de jogos/competições, parte essa que ia distinguir o nosso projecto.
 +
Mas nem tudo foi mau, pois podemos confirmar mais uma vez que o PHP é uma linguagem muito versátil e dinâmica. Isto porque o PHP permite editar o próprio código fonte da página, além de garantir a gestão de sessões, que é fundamental. Um senão do PHP é a complexidade que existe para garantir a segurança e acessibilidade, pelo que os conteúdos ao serem geridos e manipulados pelos utilizadores, torna esta gestão de segurança mais complexa.
 +
Concluindo, este foi um projecto, que apesar de não ter sido implementado na sua totalidade, nos fez evoluir. Esta evolução resultou de uma necessidade de pesquisa constante, que nos obrigou a não estar parados.
 +
 
 +
==Referências bibliográficas==
 +
 
 +
"W3Schools Online Web Tutorials", [http://www.w3schools.com]
 +
 
 +
"Jquery", [http://www.jquery.com]
 +
 
 +
"GoogleMaps Api V3", [http://code.google.com/intl/pt-PT/apis/maps/index.html]

Latest revision as of 09:02, 20 January 2012

Logo lettering white.jpgLogo lettering black.jpg

Ano Lectivo 2011/2012 | Universidade de Aveiro | Laboratório Multimédia 5 | DeCA | NTC

Projeto Realizado por:

Hugo Nogueira - 51387

Tiago Teixeira - 50028

Yauhen Kavalionak - 50479


Contents

Introdução

Na unidade curricular de Laboratório Multimédia 5, do terceiro ano da licenciatura de Novas Tecnologias da Comunicação, está previsto o desenvolvimento de um projeto, que auxiliado pelas unidades curriculares de Implementação e Controlo de Projeto Multimédia e Gestão de Empresas, consiga reunir em si o ambiente de interação e participação dos utilizadores, caracteristico da Web 2.0 e defendido pelos seus principios. Tomando partido das tecnologias client-side e server-side disponiveis, desenvolve-mos um website focado na comunidade e com objectivo de criar, organizar e gerir jogos de futebol, com tendência a no futuro alargar a sua abrangência a um número maior de modalidades. Neste relatório vamos dar a conhecer os diversos processos do desenvolvimento da plataforma, as soluções que decidimos pôr em prática para ultrapassar os problemas que foram surgindo e deixar em perspectiva futuros upgrades que esta plataforma terá que sofrer para se afirmar num mercado onde existe um grande potencial de interessados, e poucas soluções para satisfaze-los.

Objectivo do documento

Este documento tem como objectivo servir de guião orientador para quem o lê, do processo de desenvolvimento da plataforma 'Can I Play'. Nele vão estar descritos o planeamento e o desenvolvimento do projeto, bem como alguns dos obstáculos com que nos deparámos e as soluções que encontrámos para os ultrapassar. Vão também estar descritas algumas das funcionalidades que não passaram da fase de planeamento e que desejamos concretizar no futuro.

Visão Geral do Projeto

A plataforma ‘Can I Play’ tem na criação, organização e gestão de jogos de futebol amigáveis a sua principal preocupação. Quando o utilizador entrar no website sem estar registado e com o login efectuado, apenas terá acesso a uma página inicial onde terá a possibilidade de se registar e efectuar o login. Após um registo com sucesso e feito o login, o utilizador terá acesso a tudo o que a plataforma tem para oferecer. Cada utilizador terá uma página de perfil única, onde poderá colocar as suas informações pessoais, carregar uma imagem sua, deixar uma mensagem pessoal ao estilo de signature, mostrar a sua disponibilidade em termos de localização e horários para jogos e uma zona de estatísticas que disponibilizará as vitórias e derrotas que for coleccionando. De notar que a localização de utilizadores será feita através da aplicação GoogleMaps para se obterem as coordenadas, e poder-se depois filtrar resultados por proximidade. Existe um sistema de feedback, que permitirá aos utilizadores classificar cada individuo em termos de habilidade, desportivismo e assiduidade. Depois de processada e calculada a média da classificação, essa informação será mostrada no perfil de cada individuo, numa classificação de 0 a 5, sob a forma de estrelas. Outra maneira de facilitar o feedback, é o sistema de comentários que estará presente no perfil de cada utilizador. Ainda na comunidade, o utilizador poderá pedir amizade a outros utilizadores, e definir a sua privacidade consoante aquilo que deseja. Pode permitir que as suas informações sejam disponibilizadas apenas a amigos ou ao público em geral. Poder-se-ão formar grupos de pessoas com os mesmos interesses, onde também existirá o sistema de comentários. Existe também a possibilidade de criar equipas, cuja função estará mais focada na vertente de criação e organização de jogos. Na parte dos jogos, os utilizadores poderão criar jogos amigáveis, onde posteriormente os outros utilizadores poderão juntar-se. Quando criado o jogo, este estará disponível numa janela de procura, sendo que o utilizador que procura terá possibilidade de filtrar os jogos apresentados por distância geográfica do seu ponto de residência. Quando escolhido o jogo, poderemos entrar na equipa que pretendemos, sujeitos a aprovação por parte do criador do jogo. O modelo de competições da nossa plataforma permitirá aos jogadores entrar em competições oficiais, tanto individualmente, como fazendo parte de uma equipa. Ao juntar uma equipa pré-formada a uma competição haverá a necessidade de fazer uma convocatória dos utilizadores elegíveis para participar. Na barra fixa que se encontra no topo do browser pode-se encontrar um botão de pesquisa que procurará por utilizadores, campos e jogos. Existe um botão de notificações, que estará devidamente assinalado quando houver novas notificações. Outro botão será o de acesso ao sistema de mensagens privadas, onde poder-se-á enviar mensagens e ler as recebidas. O último botão é o referente às configurações, onde se pode fazer logout e definir preferências gerais, tal como a privacidade.

Base de dados desenvolvida

Um website como o Can I Play, para funcionar, vai necessitar de uma ampla interação com uma base de dados que guarde todos os dados que vão ser inseridos, editados e lidos pelos utilizadores. Para armazenar estes dados de forma harmoniosa criamos um conjunto de tabelas, com as respectivas relações. Ao longo do desenvolvimento do Can I Play apercebemo-nos que não ia ser possivel ter todas as tabelas a funcionar, pelo que optámos por algumas. Na figura seguinte é mostrada uma representação gráfica destas tabelas. Visao geral.jpg

Como se pode verificar pelas cores, existem 4 grandes modulos de tabelas. As tabelas azuis são aquelas que servem como base para a comunidade. Existe uma tabela principal 'Utilizadores' que vai receber dados de outras tabelas azuis. Os utilizadores poderão tambem ser moderadores de grupos, grupos esses que estarão associados ao utilizador. As tabelas amarelas são as tabelas referentes às mensagens e comentários. No que diz respeito às mensagens privadas, existe a tabela Mensagens que vai guardar os dados de mensagens, enquanto a tabela Destinatários se vai assegurar que a mensagem é entregue aos destinatários correctos. As tabelas vermelhas são referentes aos jogos e competições. A tabela equipa vai servir para saber que utilizadores fazem parte de determinada equipa. Estas equipas poderão participar nas competições, no entanto, terá de ser feita uma convocatória dos utilizadores elegiveis para participar nessa competição. Essa distinção é feita na tabela convocatória_competicao. As tabelas verdes são referentes aos campos e reservas. De notar que os campos podem ter mais imagens de perfil que um utilizador comum, dai termos a tabela Galeria_Campos. Por forma a facilitar a indexação dos horários e a pesquisa, optámos por codificar os periodos de tempo na tabela Horários.

Implementação

Descrição das principais funcionalidades da aplicação WEB

Infelizmente não foi possivel concretizar todos os objectivos definidos inicialmente, sendo que apenas algumas das funcionalidades foram implementadas. Assim, a plataforma, à data presente, suporta as seguintes funcionalidades:

Mapa de Páginas

Mapa dos maus.png

Server Behavior Utilizados

Relativamente a este ponto, julgamos não ter nada a apresentar.

RecordSets/Queries Utilizados

A nossa plataforma como trabalha com um elevado número de tabelas e com conteúdos muito diversos, isso implicou a criação e utilização de variados recordsets. No entanto a sua maioria destina-se à simples consulta de informação, resultando da utilização de uma ou duas tabelas e, por isso, vamos apresentar apenas aqueles que consideramos mais relevantes:

Parametros Passados entre Páginas

Dependendo da finalidade, foram utilizados ambos os métodos de GET e POST para desenvolver as funcionalidades da aplicação. No desenvolvimento das páginas, optámos por criar poucas páginas dinâmicas, cujos conteudos conteúdos se alteram de acordo com os parâmetros recebidos. A página de registo é partilhada ao acto de registo e de edição dos dados pessoais. O login e logout são efectuados na mesma página. As páginas de perfil e leitura individual das mensagens são geradas dinâmicamente através do ID que é passado pelo método GET. Outras operações, como por exemplo marcar uma noticia como lida são efectuadas com recurso ao método GET.
O método POST, para além de ser utilizado no registo e no upload de imagens, foi utilizado na ligação entre o javascript, o php e a base de dados.

Integração

De modo a facilitar e agilizar o desenvolvimento da aplicação, foram utilizadas diversas tecnologias. O recurso a jquery é praticamente indispensável, quer através dos métodos e funções que são disponibilizados pelo jquery, quer por causa das inúmeras aplicações que já existem disponiveis. Destas, utilizámos na nossa aplicação o RATY, para facilitar a classificação dos utilizadores, o Autosizer, redimensionamento dinâmico de textareas e o BValidator, validação de formulários em javascript.
Uma das funções que se destacaram no jquery foi a utilização do .load() que permitiu actualizar com dados da BD, certos conteúdos da página.
O GoogleMaps API V3 foi útil de maneira a facilitar o registo da localização do utilizador. A utilização do geocoder() e da geometry permitiram fazer a correspondência de um local às suas coordenadas geográficas, e o cálculo de distâncias entre pontos.

Desenvolvimentos Futuros

Como não conseguimos cumprir todos os requisitos que tinhamos planeado, para futuro ficará o desenvolvimento de todas as funcionalidades que não foram implementadas, entre elas destacando-se:

Conclusões

Após a conclusão deste projecto, verificamos claramente que não conseguimos cumprir com todas as funcionalidades que tínhamos planeado implementar, embora tenhamos também noção que possuímos um projecto ambicioso. Uma parte que consideramos importante e que não tivemos oportunidade de implementar foi a criação e gestão de jogos/competições, parte essa que ia distinguir o nosso projecto. Mas nem tudo foi mau, pois podemos confirmar mais uma vez que o PHP é uma linguagem muito versátil e dinâmica. Isto porque o PHP permite editar o próprio código fonte da página, além de garantir a gestão de sessões, que é fundamental. Um senão do PHP é a complexidade que existe para garantir a segurança e acessibilidade, pelo que os conteúdos ao serem geridos e manipulados pelos utilizadores, torna esta gestão de segurança mais complexa. Concluindo, este foi um projecto, que apesar de não ter sido implementado na sua totalidade, nos fez evoluir. Esta evolução resultou de uma necessidade de pesquisa constante, que nos obrigou a não estar parados.

Referências bibliográficas

"W3Schools Online Web Tutorials", [1]

"Jquery", [2]

"GoogleMaps Api V3", [3]

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox