Travelbook

From Laboratório MM 5

(Difference between revisions)
Jump to: navigation, search
Line 153: Line 153:
A inserção dos países visitados, informação presente na página de perfil dos users, não foi implementada com sucesso uma vez que desejávamos que o utilizador seleccionasse cada país através de checkboxes, dividindo-as por continentes. Cada continente iria estar dentro de um acordeão para que a página apresentasse apenas os países de continentes desejados, ao invés de uma longa lista de todos os países do mundo. Ainda nesta funcionalidade, pretendíamos ter um mapa mundo que, através de cores, identificasse os países visitados.
A inserção dos países visitados, informação presente na página de perfil dos users, não foi implementada com sucesso uma vez que desejávamos que o utilizador seleccionasse cada país através de checkboxes, dividindo-as por continentes. Cada continente iria estar dentro de um acordeão para que a página apresentasse apenas os países de continentes desejados, ao invés de uma longa lista de todos os países do mundo. Ainda nesta funcionalidade, pretendíamos ter um mapa mundo que, através de cores, identificasse os países visitados.
 +
 +
= Conclusões =
 +
 +
Após a realização deste projecto, e até mesmo durante o seu desenvolvimento, ficámos com um sabor amargo na boca por não ter conseguir implementar tudo o que desejávamos. Quando projectámos esta rede social estávamos confiantes e motivados para o desenvolvimento de um site útil e completo que visava atingir pessoas que gostam de viajar e partilhar as suas experiências. No entanto, descobrimos a dura verdade de que desenvolver uma rede social é um processo de elevada complexidade, com muitos pormenores que levam bastante tempo a implementar correctamente e de modo a que resista a erros. No entanto achamos que, apesar das dificuldades, criámos um projecto com potencial e que nos permitiu acimentar os conhecimentos adquiridos em Laboratório MM 4, bem como ganhar elasticidade mental para implementar php e base de dados para projectos futuros.
 +
 +
Gostaríamos de terminar com uma citação de Edsger Dijkstra, um cientista  de computação holandês, cujo espírito nos acompanhou inevitavelmente durante todo o projecto.
 +
 +
''“If debugging is the process of removing software bugs, then programming must be the process of putting them in.”'' – Edsger Dijkstra
 +
 +
= Referências Bibliográficas =
 +
 +
CAIXINHA, Hélder & MANO, Lícinio – Aulas teóricas e práticas de Laboratório Multimédia 5, 2010/2011
 +
 +
TZU, Sun – “The art of War”

Revision as of 01:42, 18 January 2011

LogoSplash.jpg

Contents

Introdução

Objectivo do documento

Este documento, inserido no contexto da avaliação do projecto da disciplina de Laboratório Multimédia 5 (na sequência do trabalho realizado nas cadeiras de Implementação e Controlo de Projectos Multimédia e Gestão de Empresas), leccionada pelos mui excelsos Professores Lícinio Mano e Hélder Caixinha, tem como objectivo relatar, de forma exemplar e exemplificativa, as decorrências do dito projecto, desde os primeiros esboços do layout e escolha de cores e fontes à implementação da base de dados e a integração desta no site através do php.

Visão geral do projecto

Os objectivos do projecto propriamente dito podem ser resumidos nos seguintes pontos:

De forma sucinta, o site Travelbook apresenta as seguintes funcionalidades:

Base de dados desenvolvida

Bdtoda.jpg

Antes de passar à descrição e explicação das opções tomadas, queríamos só realçar o conhecimento de que a solução adoptada não é única e, inclusivamente, de que poderão existir melhores ou mais optimizadas. A nossa base de dados baseia-se em 2 tabelas/entidades principais, à volta das quais toda a estrutura orbita: a tabela dos users e a dos travelplans. Para além destas, existe um conjunto de tabelas ligadas a estas duas (há uma tabela não ligada, a de publicidade, mas a sua relevância para o projecto é bastante reduzida, fica apenas para futuras implementações). De seguida apresentamos as entidades mais significativas. Tabelas/entidades:

Todas as outras tabelas são tabelas intermédias que servem de ligação entre estas principais.

Implementação

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

Este projecto, enquanto rede social, irá apresentar funcionalidades que são de esperar neste tipo de produto, ou seja, o utilizador vai poder efectuar as seguintes operações: - ver uma página de apresentação do site e registar-se, de modo a poder aceder à rede social;

- criar uma página de perfil, onde pode incluir dados pessoais como o nome, idade, fazer upload da sua fotografia, listar os países visitados, receber comentários e fazer comentários a si próprio e criar uma lista de Travel Plans criados. Qualquer outro utilizador que aceda, poderá enviar-lhe mensagens privadas e escolher seguir o utilizador, acrescentando-o na página Favoritos;

- alterar os dados pessoais e de conta, caso se tenha enganado a preencher os dados no registo, porque mudou de sexo e pretende apresentar a informação correctamente ou simplesmente porque deseja apagar a sua conta;

- criar e editar Travel Plans, com informações curtas e de rápida visualização como país, cidade, custo, alojamento, tipo de viagem e transporte, mas também uma descrição longa onde o utilizador pode dar asas à sua qualidade de contador de histórias para narrar a sua aventura. Vai poder incluir fotografias que irão aparecer num slideshow, bem como receber rating e comentarios de outros utilizadores de modo a tornar a partilha mais interessante. Caso um utilizador goste de determinado Travel Plan, pode escolher guardá-lo nos seus Favoritos;

- procurar por Travel Plans existentes, escolhendo critérios que filtram por país, cidade, custo, tipo de viagem e rating;

- gerir os seus Favoritos, onde tem guardados os Travel Plans e os utilizadores que segue;

- participar em concursos e comprar pontos necessários para a inscrição, embora esta funcionalidade não se encontre implementada. Seria para futura implementação.

Mapa de páginas

Server Behaviours utilizados

Os vários server behaviours usados dizem respeito a questões de login, logout, acessos limitados, etc. De seguida apresentamos os vários usados:

- Log In: verificação da existência do utilizador na tabela users e criação das variáveis de sessão

- Log Out User: terminar variáveis de sessão de user

- Check New Username: verificação da existência anterior de um username de forma a evitar a repetição

- User Restrict Access to Page (): limitar o acesso dos users a determinadas páginas, nomeadamente de uma conta com acesso de administrador a uma página com capacidades de moderação e edição de todo o conteúdo introduzido pelos users, incluindo a capacidade de o tornar inactivo, tornando-o invisível para todos os outros

- Repeat Region: permite que as listas onde são retornados valores (mensagens, followers,etc) sejam dinamicamente aumentadas quando há novos registos

- Dynamic Text Field (data): inserção dinâmica da data de registo e da data de criação do travelPlan


Recordsets/Queries utilizados

Nas várias páginas em que necessitámos apenas de um recordset, não lhe atribuímos um nome, no entanto todas as outras estão devidamente identificadas sobre o tipo de dados que vão posteriormente aceder. Seguem-se alguns exemplos de queries utilizados:

WHERE travelbook.users.email = colname (o colname é igual à variável de sessão $_SESSION[‘MM_Username’]) – query usada para listar os users seguidos pelo user com sessão iniciada.

WHERE id_users = colname(o colname é igual à variável de sessão $_SESSION[‘MM_Username’]) – query usada para listar as características do user com sessão iniciada na página de perfil

Parâmetros passados entre páginas

Utilizámos como parâmetros valores de erro para o caso do login errado, confirmação da alteração de dados pessoais e identificação do id de um user numa página de perfil e numa página de Travel Plan. Enquanto os valores para o login e para a confirmação de dados servem para o surgimento de avisos (feedback), o id passado para a página de perfil e página de Travel Plan serve para que o url de ambas as páginas possa ser partilhado com alguém ou guardado nos favoritos do browser.

Integração (e.g. Flash, AJAX Frameworks, etc

Desenvolvimentos Futuros

Como desenvolvimentos futuros, iríamos ter os concursos implementados com a compra de pontos, atribuição de pontos aos utilizadores, registos de data de todos os movimentos e página de perfil do concurso. Esta funcionalidade iria servir para que empresas com interesse na área das viagens, como hostels, restaurantes, companhias de transportes, etc., possam promover os seus produtos através de ofertas, cativando deste modo novos clientes. Com a opção de compra de pontos, iría ser mais um modo, a par das publicidades, de rentabilizar o site e enriquecer.

Pretendíamos também que o Follow dos users se procedesse de modo mais detalhado com actualizações de novos Travel Plans, a par das news feeds do Facebook por exemplo, o que iria implicar show regions com limite temporal de novos Travel Plans feitos, no entanto a elevada complexidade do projecto aliada à falta de tempo, não nos permitiu ter desenvolvido esta funcionalidade na sua potencialidade máxima.

Também na criação de Travel Plans, a nossa intenção de possibilitar que um Plan tivesse vários países, cidades, transportes e alojamento esbarrou na nossa incapacidade de obter os valores de cada uma dessas tabelas, ao mesmo tempo que não sabemos se é possível fazer um insert simultâneo dos valores depois escolhidos em múltiplas tabelas. Acabámos por recorrer à simplificação da estrutura (e das possibilidades) transformando a relação entre Travel Plans e as tabelas acima citadas em relações de 1:n em vez de n:m. Desta forma, em cada TravelPlan só poderá existir 1 país, cidade, transporte e alojamento. No futuro, se possível, implementaríamos a solução inicial pretendida.

Pretendíamos evoluir o sistema de galeria de fotos dos Travel Plans, onde actualmente temos apenas um slideshow, para algo que suportasse e permitisse a visualização em tamanho grande das várias fotografias. Deste modo iríamos enriquecer cada Travel Plan feito.

A inserção dos países visitados, informação presente na página de perfil dos users, não foi implementada com sucesso uma vez que desejávamos que o utilizador seleccionasse cada país através de checkboxes, dividindo-as por continentes. Cada continente iria estar dentro de um acordeão para que a página apresentasse apenas os países de continentes desejados, ao invés de uma longa lista de todos os países do mundo. Ainda nesta funcionalidade, pretendíamos ter um mapa mundo que, através de cores, identificasse os países visitados.

Conclusões

Após a realização deste projecto, e até mesmo durante o seu desenvolvimento, ficámos com um sabor amargo na boca por não ter conseguir implementar tudo o que desejávamos. Quando projectámos esta rede social estávamos confiantes e motivados para o desenvolvimento de um site útil e completo que visava atingir pessoas que gostam de viajar e partilhar as suas experiências. No entanto, descobrimos a dura verdade de que desenvolver uma rede social é um processo de elevada complexidade, com muitos pormenores que levam bastante tempo a implementar correctamente e de modo a que resista a erros. No entanto achamos que, apesar das dificuldades, criámos um projecto com potencial e que nos permitiu acimentar os conhecimentos adquiridos em Laboratório MM 4, bem como ganhar elasticidade mental para implementar php e base de dados para projectos futuros.

Gostaríamos de terminar com uma citação de Edsger Dijkstra, um cientista de computação holandês, cujo espírito nos acompanhou inevitavelmente durante todo o projecto.

“If debugging is the process of removing software bugs, then programming must be the process of putting them in.” – Edsger Dijkstra

Referências Bibliográficas

CAIXINHA, Hélder & MANO, Lícinio – Aulas teóricas e práticas de Laboratório Multimédia 5, 2010/2011

TZU, Sun – “The art of War”

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox