ImoLive

From Laboratório MM 5

(Difference between revisions)
Jump to: navigation, search
(Estudos gráficos)
(Mapa de páginas)
 
(51 intermediate revisions not shown)
Line 2: Line 2:
;LABORATÓRIO MULTIMÉDIA 5  
;LABORATÓRIO MULTIMÉDIA 5  
 +
2011/2012
Line 11: Line 12:
Realizado por:
Realizado por:
-
 
21281 – Diana Moreira | 46277 – João Pedro Santos | 47317 – Paulo Brites
21281 – Diana Moreira | 46277 – João Pedro Santos | 47317 – Paulo Brites
Line 28: Line 28:
== Visão geral do projecto ==
== Visão geral do projecto ==
-
;ImoLIVE consiste numa aplicação online, associada a uma empresa do ramo imobiliário, para a comercialização de imóveis. Pretende-se que o seu aspecto agradável e as suas funcionalidades tornem mais fácil e acessível a quem procura um negócio imobiliário, pesquisar e conhecer as possibilidades ao seu dispôr numa lógica de prosumer (produtor e consumidor). Através de uma área de pesquisa, o utilizador poderá encontrar diversas soluções enquadradas ao seu interesse ordenadas pelos parâmetros previamente seleccionados bem como colocar no mercado imobiliário o imóvel do qual é proprietário que pretenda comercializar.
+
'''ImoLIVE''' consiste numa aplicação online, associada a uma empresa do ramo imobiliário, para a comercialização de imóveis. Pretende-se que o seu aspecto agradável e as suas funcionalidades tornem mais fácil e acessível a quem procura um negócio imobiliário, pesquisar e conhecer as possibilidades ao seu dispôr numa lógica de prosumer (produtor e consumidor). Através de uma área de pesquisa, o utilizador poderá encontrar diversas soluções enquadradas ao seu interesse ordenadas pelos parâmetros previamente seleccionados.
== Estudos gráficos ==
== Estudos gráficos ==
-
;Procurou-se desde o início do projecto uma imagem simples e eficaz que fosse explícita do objectivo da aplicação. Neste sentido optou-se por um design sóbrio em fundo negro.
+
Procurou-se desde o início do projecto uma imagem simples e eficaz que fosse explícita do objectivo da aplicação. Neste sentido optou-se por um design sóbrio em fundo negro.
-
Já para a imagem do lettering bem como do logótipo, optou-se por criar uma imagem marcante que fosse de fácil identificação e com uma identidade bem definida que mantivesse o destaque em todo o layout. Para o tipo de letra, optou-se por uma que fosse diferenciadora. A fonte Geomancy foi  a escolhidade de entre mais de 100 diferentes e foi alvo de uma ligeira personalização no ponto do i.
+
Já para a imagem do lettering bem como do logótipo, optou-se por criar uma imagem marcante que fosse de fácil identificação e com uma identidade bem definida que mantivesse o destaque em todo o layout. Para o tipo de letra, optou-se por uma que fosse diferenciadora. A fonte '''Geomancy''' foi  a escolhidade de entre mais de 100 diferentes e foi alvo de uma ligeira personalização no ponto do i.
[[File:Estudos.png|center|frame|Estudos de imagem imoLIVE]]
[[File:Estudos.png|center|frame|Estudos de imagem imoLIVE]]
Line 49: Line 49:
[[File:Bd imolive.png|frame|center|Imagem das tabelas da Base de Dados desenvolvida.]]
[[File:Bd imolive.png|frame|center|Imagem das tabelas da Base de Dados desenvolvida.]]
 +
A base de dados criada é constituida por 11 tabelas e foi desenvolvida através da aplicação MySQLWorkbench.
-
A base de dados .....
+
Partindo da principal tabela, '''Imóveis''', é aí guardada toda a informação relativa aos imóveis: morada, preço, ano de construção, área, data de angariação e detalhes. A esta tabela encontra-se directamente ligada a tabela de '''Proprietários''', onde constarão a informações dos mesmos, sendo que um proprietário pode ter vários imóveis. E ainda a '''Natureza''' do mesmo, ou seja, apartamento, escritório ou moradia, etc. A localização por '''Concelho''' e '''Freguesia''', o '''Estado''' e a sua '''Disponibilidade''' também se encontram previstas nas tabelas directamente relacionadas com os '''Imóveis'''.
 +
Associada ainda à tabela '''Imóveis''', encontra-se a tabela do ramo de '''Negócio''' que será distinto em cada imóvel inserido e directamente ligado à tabela '''Utilizadores''' onde será guardada a informação relativa aos mesmos: nome, email, morada, contactos, username e password.
 +
 
 +
O tipo de utilizador, (<u>administrador</u>, <u>editor</u> e <u>utilizador registado</u>) cada um com permissões distintas, as quais são definidas através da tabela '''Utilizadores''' onde também se inserem os seus dados pessoais. O tipo de utilizador define todo o resto da interacção com a aplicação, como as permissões, o que é mostrado, e o que é possível alterar na mesma.
= Implementação =  
= Implementação =  
== Descrição das principais funcionalidades da aplicação Web ==
== Descrição das principais funcionalidades da aplicação Web ==
-
A plataforma “Orienta-te” permite a todos que a visitam, registados ou não, ver diversas '''listas de locais''' e '''notícias submetidos''' pelos utilizadores registados, organizados por três parâmetros fundamentais: pela localização (zona do país ou distrito), pelo tipo de estabelecimento (bar, restaurante ou loja) e mediante uma pesquisa por palavra-chave.
+
A aplicação '''imoLIVE''' caracteriza-se por um design limpo de aspecto sóbrio com o objectivo claro de direccionar a atenção dos utilizadores para as funcionalidades aí implementadas.
-
 
+
Numa primeira abordagem ao site, na página '''Home''', o utilizador tem a possibilidade navegar pelas funcionalidades disponíveis, tais como, consulta de imóveis e informação geral sobre a empresa.  
-
Permite também consultar a '''Ajuda''', ver uma pequena descrição sobre a plataforma ou os contactos da equipa de desenvolvimento.  
+
-
Permite também que se '''registe''' na própria plataforma, através do simples preenchimento de um formulário, em que é necessário preencher diferentes campos, desde do nome à password, passando pelo sua foto. Depois de submetido o formulário de registo na plataforma o utilizador tem à sua disposição as funcionalidades de '''login''' (entrar na aplicação Web com os seus dados) e '''logout''' (sair da aplicação Web depois de efectuado o Login).
+
Para utilizadores assíduos existe a possibilidade de '''Registo''' através de formulário para o efeito. Após o respectivo registo, através da área de '''Login''' com os dados pessoais, é possível ao utilizador entrar na plataforma e usufruir das funcionalidades disponíveis na aplicação web com as respectivas restrições. Este tipo de utilizador não poderá adicionar, editar ou apagar qualquer imóvel.
-
Cada utilizador registado tem o seu próprio perfil com nome, idade e imagem do próprio, sendo que a página de entrada é um '''widget personalizado''' pelo utilizador.
+
O '''Editor''' tem permissão para adicionar novos imóveis ou editar a informação dos imóveis associados à sua conta sem que, no entanto, lhe seja permitido eliminar registos.
-
Ao encontrar-se na aplicação Web logado o utilizador tem a sua disposição funcionalidades que os utilizadores não registados não encontram, por exemplo a função de “Inserir Local”, isto é, o utilizador pode introduzir locais para outros utilizadores poderem consultar, '''adicionar noticias''' sobres estes locais e propor estes locais a votação. Também podem votar em locais propostos por outros utilizadores e '''comentar''' os locais já introduzidos permanentemente na rede.
+
o utilizador registado como '''Administrador''' tem permissões para adicionar, apagar ou editar imóveis sem qualquer restrição.
== Mapa de páginas ==
== Mapa de páginas ==
-
Ao entrar na plataforma Web 2.0 “Orienta-te” o utilizador encontra a '''Página Ínicial''' na qual encontra um menu do lado esquerdo do ecrã (locais por zona geográfica, locais por categorias, registar e fazer login), a barra de pesquisa no canto direito do header, Na zona de conteúdos encontra-se os últimos locais adicionados e as últimas notícias. No footer encontramos informação sobre a plataforma e os contactos da equipa de desenvolvimento.
 
-
Nas restantes páginas da plataforma “Orienta-te” a única zona que se altera é a zona de conteúdos, visto que teremos sempre presente o header, menu e footer.
 
-
'''Página de Registo''' a zona de conteúdos é composta por um formulário em que é necessário introduzir os dados pessoais (nome, foto de perfil, idade, username, password, entre outros).
+
[[File:Imolive mapa.png]]
-
'''Página Utilizador''' como nas restantes páginas o que muda é a zona de conteúdos, nesta página temos presente 6 painéis sendo que 5 destes painéis são personalizáveis de acordo com as preferências do utilizador, pode escolher entre: zona geográfica, categoria do local (café, loja ou restaurante), amigos, sugestões, notícias, inserir local. O painel predefinido é o do perfil do utilizador.
 
-
'''Página Perfil''' a zona de conteúdos é composta pela foto do utilizador e os seus dados (nome e idade), um botão onde é possível adicionar como amigo, os amigos do utilizador, os locais submetidos pelo próprio e os comentários do próprio.
+
Na página '''Home''' o utilizador encontra em destaque imagens dos mais recentes imóveis inseridos na base de dados. De igual forma ao seu dispor um menu com '''Sobre''', '''Imóveis''', '''Informações''' e '''Contactos'''.
 +
Na '''Home''' ainda se encontra:
 +
*'''Registo''' - direccionando para a um formulário em que é necessário introduzir os dados pessoais (nome, ''username'', password, entre outros);
 +
*'''Login''' - para utilizadores com conta criada onde devem inserir o seu ''username'' e password;
 +
*'''Logout''' - para encerrar a conta do usuário;
 +
*'''Procura''' - página onde se pode pesquisar imóveis de diversos segmentos.
-
'''Página Amigos''' encontramos as fotos e o nome dos amigos do utilizador.
+
Na zona de conteúdos vemos em destaque, através de um ''slideshow'', imagens dos mais recentes imóveis inseridos na base de dados. Nas restantes páginas da plataforma a zona que se altera é a zona de conteúdos, visto que teremos sempre presente o header, menu e footer.
-
'''Página Inserir Local''' tal como na página de registo esta é composta por um formulário com os itens necessários para se inserir um novo local na base de dados da plataforma
+
No '''header''' está o logotipo da empresa bem como os menus comuns às diversas paginas.
-
'''Página Noticias''' é uma simples página onde encontramos todas as notícias adicionadas por ordem decrescente fase à data.
+
No '''footer''' encontra-se a informação sobre a equipa que desenvolveu o site.
-
Página de cada Local nesta página encontramos toda a descrição do local seleccionado, onde é apresentada a categoria do local, a localização, imagens do local, a descrição, o horário de funcionamento, os contactos, os comentários ao local e sugerir a um amigo.
+
 +
Na página '''Sobre''' encontra-se a informação respeitante à empresa: a localização, notícias e a versão Mobile para download.
-
[[File:mapaOrientate.gif]]
+
A página '''Informações''' contém detalhes sobre a empresa e serviços prestados por esta.
-
=== Server Behaviours utilizados ===
+
A página '''Contactos''' detém a informação relativa à morada, contactos telefónicos, localização e outros.
-
Foram utilizados vários Server Behaviours ao longo do desenvolvimento da plataforma, nomeadamente:
+
Na página '''Imóveis''' temos a informação relativa à comercialização dos imóveis.
-
'''Insert Record''' – para inserir dados na BD, através do registo de utilizadores ou da submissão de locais, por exemplo <br />
+
'''Página Inserir''' tal como na página de registo esta é composta por um formulário com os itens necessários para se inserir novos conteúdos na base de dados da plataforma, incluindo o ''upload'' de imagens;
-
'''Update Record''' – para actualizar dados já anteriormente inseridos ("Editar Perfil")<br />
+
-
'''Dynamic Text''' - mostra os dados armazenados na BD<br />
+
-
'''Dynamic Text''' Field – Para a introdução de dados que são dinamicamente armazenados na BD<br />
+
-
'''Repeat Region''' – para repetir determinados excertos de código / conjuntos de dados, nomeadamente na página de amigos (repetição da foto e do nome de todos os amigos que o user tem, obtidos através do número de registo na tabela "amigos")<br />
+
-
'''Show if Recordset is Empty''' – utilizado, por exemplo, na secção de comentários para mostrar uma mensagem de aviso caso o utilizador não tenha feito comentários (não existem, assim, comentários para aquele user_id). Se já o tiver feito, procede-se a um "do...while" para repetir a formatação aplicada a cada comentário existente. <br />
+
-
'''Dynamic Attribute''' - Atribui dinamicamente um valor  <br />
+
'''Página Editar''' para que se proceda a qualquer alteração à informação previamente inserida na base de dados;
-
'''Restrict Access To Page''' – torna o acesso restrito a determinados utilizadores. Por exemplo, só um utilizador registado pode ver a sua página de utilizador <br />
+
'''Página Eliminar''', como o nome indica serva para eliminar definitivamente os registos anteriormente. Uma mensagem ''popup'' de confirmação será exibida ao utilizador.
-
=== Recordsets/Queries utilizados ===
 
-
De forma a carregar, inserir e manipular dinamicamente os dados existentes na Base de Dados da plataforma, foram criados vários Recordsets e várias queries que permitem chegar à informação pretendida. Uma vez que as diferentes páginas foram sendo desenvolvidas por diferentes membros do grupo, recordsets semelhantes tinham nomes diferentes. No entanto, os principais são:
+
=== Server Behaviours utilizados ===
-
'''rs_user-''' permite aceder à tabela "utilizador" para preencher o perfil de cada user como nome, idade, o id (útil para passagem de parâmetros), username e password (necessários para o login), e também para ir buscar estas informações para todos as outras tabelas em que são necessários dados do user, como notícias e locais (quem submeteu), comentários, etc. <br />
+
Foram utilizados vários Server Behaviours ao longo do desenvolvimento da plataforma, nomeadamente:
-
Para preencher os dados do perfil do utilizador, utilizamos a seguinte query:<br />
+
'''Insert Record''' – inserção dados na base de dados, através do registo de utilizadores ou da submissão de imóveis;
-
<pre style="color:blue"> SELECT id_user, username
+
'''Check Username''' - verificação a utilização do mesmo ''username'';
-
FROM utilizador
+
-
WHERE username = colname </pre>
+
-
em que colname corresponde ao id do utilizador com sessão iniciada. <br />
+
'''Repeat Region''' – repetição de determinados excertos de código;
-
Por exemplo, para conseguir interligar esta tabela com a tabela de amigos, para assim ir buscar as respectivas informações dos amigos, utilizamos a seguinte query: <br />
+
'''Update Record''' – actualização de dados inseridos;
-
<pre style="color:blue"> SELECT *
+
'''Dynamic Text Field''' – introdução de dados que são dinamicamente armazenados na base de dados
-
FROM amigos
+
-
WHERE utilizador_id_user ='$user_actual' </pre>
+
-
em que a variável $user_actual corresponde ao id_user do utilizador em sessão. <br />
+
'''Restrict Access To Page''' – para o acesso restrito a determinados utilizadores. Por exemplo, só o administrador pode apagar conteúdos.
-
<pre style="color:red"> <?php //IR BUSCAR O USERNAME E A FOTO DO AMIGO               
+
=== Recordsets/Queries utilizados ===
-
$amigoid= $row_rs_amigos['utilizador_id_amigo'];
+
-
            mysql_select_db($database_db_orientate, $db_orientate);
+
-
$query_RS_dados_user = "SELECT id_user, username, foto FROM utilizador WHERE id_user = '$amigoid'";
+
-
$RS_dados_user = mysql_query($query_RS_dados_user, $db_orientate) or die(mysql_error());
+
-
$row_RS_dados_user = mysql_fetch_assoc($RS_dados_user);
+
-
$totalRows_RS_dados_user = mysql_num_rows($RS_dados_user);
+
-
?> </pre><br />
+
Para se proceder ao carregar, inserir e manipular dinamicamente os dados existentes na Base de Dados da plataforma, foram criados vários Recordsets e várias queries que permitem chegar à informação pretendida.
-
Através do código anteriormente citado, conseguimos ir buscar à tabela de "utilizador" os dados relativos ao ''id_user'' que corresponde ao ao ''utilizador_id_amigo'' na tabela "amigos", ou seja, conseguimos depois imprimir o seu username e a sua foto na página de amigos e de perfil de cada utilizador. <br />
+
'''rs_registar''': para o registo de novo utilizador;
-
+
-
'''rs_local-''' Este recordset permite obter os dados de cada local. <br />
+
'''rs_adicionar''': para se proceder à inserção de novos conteúdos;
-
'''rs_recursos_local-''' Tal como no caso anterior, foi necessário uma query para conseguimos estabelecer ligação entre as duas tabelas e obter assim os recursos de cada local mediante o id passado dinamicamente. <br />
+
-
<pre style="color:blue"> SELECT *
+
'''rs_update''': fazer actualização dos imóveis;
-
FROM recursos
+
-
WHERE local_id = '$local_select' </pre>
+
-
'''rs_noticias-''' Este recordset vai buscar as informações relativas às notícias submetidas na BD <br />
+
'''rs_login''': efectuar o registo do utilizador;
-
'''rs_comentarios-''' Neste recordset são chamados os dados sobre os comentários <br />
+
'''rs_imoveis''': dispor a informação dos imóveis;
-
'''rs_categorias-'''<br />
+
'''rs_imoveis1''': mostrar imóveis;
-
'''rs_distritos-'''Estes recordsets foram criados no sentido de implementar nos formulários um menu com várias opções de escolha. Podemos assim, colocar como values os nomes dos distritos ou categorias, mas passar o id como parâmetro. <br />
+
 
 +
'''rs_detalhespage''': mostra detalhes de conteúdos.
=== Parâmetros passados entre páginas ===
=== Parâmetros passados entre páginas ===
-
Para passar parâmetros entre páginas, utilizamos três métodos: o método GET, POST, por url, e através da Session, ou seja, do id do utilizador que tem, no momento, a sessão iniciada. <br />
+
Utilizaram-se três métodos para passar parâmetros entre páginas: o método GET, POST, por url, e através da Session, ou seja, do id do utilizador que tem, no momento, a sessão iniciada.  
-
Para visualizar um perfil de um utilizador, por exemplo, utilizamos o método GET para passar o seu id, e assim carregar dinamicamente o perfil. <br />
+
Utilizamos o método GET através de ''$action'' para registo e para login e o ''$result'' para detectar se a função criada foi bem desempenhada.
-
O método POST foi usado, principalmente, no preenchimento de formulários, como o de registo. <br />
+
O método POST foi usado, principalmente, no preenchimento de formulários, como o de registo.  
-
Para perceber que utilizador fez login e mostrar assim a sua página de widgets actualizada, utilizamos o parâmetro de Session "MM_Username", que corresponde ao username, único para cada utilizado. <br />
+
Para perceber que utilizador fez login e mostrar assim a sua página de widgets actualizada, utilizamos o parâmetro de Session "MM_Username", que corresponde ao username, único para cada utilizador.
== Integração  ==
== Integração  ==
-
No desenvolvimento do projecto, para além do PHP, linguagem fundamental na incorporação do conteúdo dinâmico nas páginas (carregamento de informação do utilizador da base de dados, manipulação dessa informação, realização de pesquisas, etc.), foram utilizadas outras tecnologias, fundamentais no desenvolvimento para a internet.
+
No desenvolvimento desta aplicação, para além do PHP, fundamental na incorporação dos conteúdos dinâmicos entre páginas, foram utilizadas outras tecnologias, para o desenvolvimento da plataforma:
-
'''Html''' -  Utilizamos no desenvolvimento de todas as páginas presentes na nossa plataforma Web 2.0, por forma a estruturar as mesmas.
+
'''Html''' -  usado no desenvolvimento e estruturação de todas as páginas presentes na nossa plataforma
-
'''Css''' – O Css foi utilizado na formatação de todo conteúdo apresentado, através de ficheiros externos, conseguindo assim uma maior organização dos documentos. Exemplo de formatação em css das caixas do formulário:
+
'''Css''' – utilizado para a uniformização do layout no que diz respeito a cores, fontes, tamanhos, etc...;
-
[[File:cssorientate.png]]
+
'''Javascript''' – para a validação de formulários;
-
 
+
'''Ajax''' - solução para o ''refresh'' das páginas.
-
'''Javascript''' – Utilizamos no desenvolvimento do Footer e do Menu de modo a conseguirmos implementar um slider. Para conseguirmos efectuar os sliders mais rapidamente utilizamos a Framework designada de '''Mootools'''.
+
-
Também utilizarmos para efectuar as validações dos formulários, por exemplo, (de registo, adicionar notícia, adicionar local) através do ''Spry Validation Text Field'' e ''Spry Validation Textarea'' presentes no menu do Form  do ''Dreamweaver''. De modo a que certos campos dos formulários fossem de preenchimento obrigatório e também para algumas restrições quanto ao tipo de caracteres inseridos.
+
-
[[File:javascriptOrientate.png]]
+
= Desenvolvimentos Futuros =
= Desenvolvimentos Futuros =
-
Uma vez que não concluímos tudo o que gostaríamos de ter implementado na plataforma, há diversas questões que, no futuro, gostaríamos de ver implementadas. <br />
+
Em plena era web 2.0, um dos desenvolvimentos que consideramos mais marcantes para futura implementação seria a integração de uma funcionalidade que directamente ligasse a aplicação às redes sociais, bem como a criação de aplicações específicas para as mesmas. De igual modo a criação de uma aplicação mobile para dispositivos móveis.
-
Uma das primeiras coisas a implementar seria a classificação.Uma das metas que gostávamos de ter atingido era a possibilidade de classificar locais num ranking de uma a cinco estrelas, por exemplo. <br />
+
Outro dos desenvolvimentos considerados será a criação de um espaço onde uma ligação através do Google Maps, dê a localização exacta do imóvel que é consultado.
-
Outra das funcionalidades que era importante implementar seria a recuperação de password, pois um utilizador que não se lembre da sua password não tem, hoje, como reavê-la ou obter outra automaticamente na nossa plataforma. <br />
+
Inovador seria igualmente a inserção na página de um espaço para conversação/“chat” em tempo real entre os utilizadores. Seria o espaço para colocar todas as dúvidas e esclarecer qualquer detalhe em relação às consultas.
-
Seria necessário também acrescentar mais dois tipos de utilizadores, os '''Utilizadores Empresa'''  que poderiam publicar o local do qual são proprietários, poderiam também adicionar noticias (recrutamento, descontos e festas temáticas, por exemplo) referentes ao seu estabelecimento (bar, restaurante, loja), mas mediante um pagamento (ou seja, seria necessário implementar um sistema de validação de empresas que já tivessem feito os pagamentos), e um utilizador '''Administrador''', fundamental para fazer a gestão da plataforma. Este último, implicaria a existência e desenvolvimento de um back-office. Era de interesse também criar um banner de publicidade lateral, onde as empresas submeteriam os seus anúncios, também mediante pagamentos simbólicos.<br />
+
 
 +
Consideramos ainda a colocação de um formulário de inscrição para recrutamento de colaboradores e candidaturas a franchisings.
= Conclusões =
= Conclusões =
-
Uma vez que a melhor forma de adquirimos conhecimentos é aplicá-los, este foi um trabalho bastante enriquecedor, e permitiu-nos pôr à prova as aprendizagens que adquirimos não apenas ao longo da Unidade Curricular de Laboratório Multimédia V mas também em Laboratório Multimédia IV.
+
A aplicação na prática das teorias aprendidas é, quanto a nós e sem qualquer dúvida, o melhor meio de consolidar a aprendizagem. Naturalmente por esta razão tornou-se importantíssimo o desenvolvimento deste projecto.
-
Foi possível percepcionar a necessidade de estudo das tecnologias client-side e server-side numa plataforma Web 2.0
+
No desenvolvimento deste trabalho e na implementação da aplicação, sentiu o grupo a satisfação de consolidar as matérias leccionadas ao longo do semestre. O protótipo apresentado carece no entanto de algumas funcionalidades e características reais que gostaríamos de ver implementadas, embora nos pareça que seja um produto muito próximo daquele que poderia ser apresentado a uma empresa do mercado.  
-
Poderemos dizer que representou um desafio para todos os membros do grupo e que o resultado final poderia ter sido melhor, uma vez que tínhamos em mente elevadas expectativas e devido à falta de tempo (mais concretamente o acumular de tarefas para outras unidades curriculares) e tarefas extra curriculares que se tornaram mais um obstáculo para o desenvolvimento do trabalho. Assim, este não correspondeu aquilo que tínhamos esperado, e vários erros que nos foram surgindo pelo caminho foram atrasando o seu desenvolvimento.
+
Cumpre-nos ainda agradecer aos professores, Licínio Mano, Helder Caixinha e Nuno Ribeiro, a disponibilidade, sapiência e paciência com que nos orientaram ao longo dos últimos meses em mais este percurso académico. Bem haja!
-
No entanto, foi fonte de aprendizagem não só no domínio da utilização das tecnologias como nas dificuldades adjacentes à sua interligação.
+
= Referências bibliográficas =
= Referências bibliográficas =
-
Consultados ao longo do desenvolvimento do projecto: http://mootools.net/demos/?demo=Fx.Slide
+
Consultados ao longo do desenvolvimento do projecto:  
-
                                                    http://www.w3schools.com
+
-
CAIXINHA, Hélder & MANO, Lícinio – Aulas teóricas e práticas de Laboratório Multimédia 5, 2010/2011
+
*http://www.php.net/manual/en/index.php
 +
*http://www.w3schools.com
 +
*http://www.century21.pt/
 +
*http://www.era.pt
 +
*http://www.remax.pt/
 +
*http://www.arcada-imobiliaria.com/

Latest revision as of 06:08, 20 January 2012

RELATÓRIO
LABORATÓRIO MULTIMÉDIA 5

2011/2012


ImoLIVE lett.png



Realizado por: 21281 – Diana Moreira | 46277 – João Pedro Santos | 47317 – Paulo Brites



Contents

Introdução

No âmbito da unidade curricular de Laboratório Multimédia 5 do curso de Novas Tecnologias da Comunicação da Universidade de Aveiro, serve o presente relatório como descrição e registo de processos resultantes da criação e implementação de uma nova aplicação online enquadrada nas tecnologias web 2.0.

Objectivo do documento

Com recurso aos conteúdos programáticos e às tecnologias lecionadas, o presente documento tem como principal objectivo o suporte e descrição dos passos dados na implementação do projecto proposto na U.C. bem como a contextualização das ferramentas e processos utilizados. Pretende-se descrever todo o processo de criação da aplicação nomeadamente a concepção da base de dados, a sua implementação, a programação utilizada como: Server Behaviours, Queries e Recordsets bem como a integração com outras tecnologias como Javascript, Ajax ou HTML.

Visão geral do projecto

ImoLIVE consiste numa aplicação online, associada a uma empresa do ramo imobiliário, para a comercialização de imóveis. Pretende-se que o seu aspecto agradável e as suas funcionalidades tornem mais fácil e acessível a quem procura um negócio imobiliário, pesquisar e conhecer as possibilidades ao seu dispôr numa lógica de prosumer (produtor e consumidor). Através de uma área de pesquisa, o utilizador poderá encontrar diversas soluções enquadradas ao seu interesse ordenadas pelos parâmetros previamente seleccionados.

Estudos gráficos

Procurou-se desde o início do projecto uma imagem simples e eficaz que fosse explícita do objectivo da aplicação. Neste sentido optou-se por um design sóbrio em fundo negro. Já para a imagem do lettering bem como do logótipo, optou-se por criar uma imagem marcante que fosse de fácil identificação e com uma identidade bem definida que mantivesse o destaque em todo o layout. Para o tipo de letra, optou-se por uma que fosse diferenciadora. A fonte Geomancy foi a escolhidade de entre mais de 100 diferentes e foi alvo de uma ligeira personalização no ponto do i.

Estudos de imagem imoLIVE
Imagem e lettering imoLIVE
Logótipo imoLIVE


.

Base de dados desenvolvida

Imagem das tabelas da Base de Dados desenvolvida.

A base de dados criada é constituida por 11 tabelas e foi desenvolvida através da aplicação MySQLWorkbench.

Partindo da principal tabela, Imóveis, é aí guardada toda a informação relativa aos imóveis: morada, preço, ano de construção, área, data de angariação e detalhes. A esta tabela encontra-se directamente ligada a tabela de Proprietários, onde constarão a informações dos mesmos, sendo que um proprietário pode ter vários imóveis. E ainda a Natureza do mesmo, ou seja, apartamento, escritório ou moradia, etc. A localização por Concelho e Freguesia, o Estado e a sua Disponibilidade também se encontram previstas nas tabelas directamente relacionadas com os Imóveis. Associada ainda à tabela Imóveis, encontra-se a tabela do ramo de Negócio que será distinto em cada imóvel inserido e directamente ligado à tabela Utilizadores onde será guardada a informação relativa aos mesmos: nome, email, morada, contactos, username e password.

O tipo de utilizador, (administrador, editor e utilizador registado) cada um com permissões distintas, as quais são definidas através da tabela Utilizadores onde também se inserem os seus dados pessoais. O tipo de utilizador define todo o resto da interacção com a aplicação, como as permissões, o que é mostrado, e o que é possível alterar na mesma.

Implementação

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

A aplicação imoLIVE caracteriza-se por um design limpo de aspecto sóbrio com o objectivo claro de direccionar a atenção dos utilizadores para as funcionalidades aí implementadas. Numa primeira abordagem ao site, na página Home, o utilizador tem a possibilidade navegar pelas funcionalidades disponíveis, tais como, consulta de imóveis e informação geral sobre a empresa.

Para utilizadores assíduos existe a possibilidade de Registo através de formulário para o efeito. Após o respectivo registo, através da área de Login com os dados pessoais, é possível ao utilizador entrar na plataforma e usufruir das funcionalidades disponíveis na aplicação web com as respectivas restrições. Este tipo de utilizador não poderá adicionar, editar ou apagar qualquer imóvel.

O Editor tem permissão para adicionar novos imóveis ou editar a informação dos imóveis associados à sua conta sem que, no entanto, lhe seja permitido eliminar registos.

Já o utilizador registado como Administrador tem permissões para adicionar, apagar ou editar imóveis sem qualquer restrição.

Mapa de páginas

Imolive mapa.png


Na página Home o utilizador encontra em destaque imagens dos mais recentes imóveis inseridos na base de dados. De igual forma ao seu dispor um menu com Sobre, Imóveis, Informações e Contactos. Na Home ainda se encontra:

Na zona de conteúdos vemos em destaque, através de um slideshow, imagens dos mais recentes imóveis inseridos na base de dados. Nas restantes páginas da plataforma a zona que se altera é a zona de conteúdos, visto que teremos sempre presente o header, menu e footer.

No header está o logotipo da empresa bem como os menus comuns às diversas paginas.

No footer encontra-se a informação sobre a equipa que desenvolveu o site.

Na página Sobre encontra-se a informação respeitante à empresa: a localização, notícias e a versão Mobile para download.

A página Informações contém detalhes sobre a empresa e serviços prestados por esta.

A página Contactos detém a informação relativa à morada, contactos telefónicos, localização e outros.

Na página Imóveis temos a informação relativa à comercialização dos imóveis.

Página Inserir tal como na página de registo esta é composta por um formulário com os itens necessários para se inserir novos conteúdos na base de dados da plataforma, incluindo o upload de imagens;

Página Editar para que se proceda a qualquer alteração à informação previamente inserida na base de dados;

Página Eliminar, como o nome indica serva para eliminar definitivamente os registos anteriormente. Uma mensagem popup de confirmação será exibida ao utilizador.


Server Behaviours utilizados

Foram utilizados vários Server Behaviours ao longo do desenvolvimento da plataforma, nomeadamente:

Insert Record – inserção dados na base de dados, através do registo de utilizadores ou da submissão de imóveis;

Check Username - verificação a utilização do mesmo username;

Repeat Region – repetição de determinados excertos de código;

Update Record – actualização de dados inseridos;

Dynamic Text Field – introdução de dados que são dinamicamente armazenados na base de dados

Restrict Access To Page – para o acesso restrito a determinados utilizadores. Por exemplo, só o administrador pode apagar conteúdos.

Recordsets/Queries utilizados

Para se proceder ao carregar, inserir e manipular dinamicamente os dados existentes na Base de Dados da plataforma, foram criados vários Recordsets e várias queries que permitem chegar à informação pretendida.

rs_registar: para o registo de novo utilizador;

rs_adicionar: para se proceder à inserção de novos conteúdos;

rs_update: fazer actualização dos imóveis;

rs_login: efectuar o registo do utilizador;

rs_imoveis: dispor a informação dos imóveis;

rs_imoveis1: mostrar imóveis;

rs_detalhespage: mostra detalhes de conteúdos.

Parâmetros passados entre páginas

Utilizaram-se três métodos para passar parâmetros entre páginas: o método GET, POST, por url, e através da Session, ou seja, do id do utilizador que tem, no momento, a sessão iniciada.

Utilizamos o método GET através de $action para registo e para login e o $result para detectar se a função criada foi bem desempenhada. O método POST foi usado, principalmente, no preenchimento de formulários, como o de registo. Para perceber que utilizador fez login e mostrar assim a sua página de widgets actualizada, utilizamos o parâmetro de Session "MM_Username", que corresponde ao username, único para cada utilizador.

Integração

No desenvolvimento desta aplicação, para além do PHP, fundamental na incorporação dos conteúdos dinâmicos entre páginas, foram utilizadas outras tecnologias, para o desenvolvimento da plataforma:

Html - usado no desenvolvimento e estruturação de todas as páginas presentes na nossa plataforma

Css – utilizado para a uniformização do layout no que diz respeito a cores, fontes, tamanhos, etc...;

Javascript – para a validação de formulários;

Ajax - solução para o refresh das páginas.

Desenvolvimentos Futuros

Em plena era web 2.0, um dos desenvolvimentos que consideramos mais marcantes para futura implementação seria a integração de uma funcionalidade que directamente ligasse a aplicação às redes sociais, bem como a criação de aplicações específicas para as mesmas. De igual modo a criação de uma aplicação mobile para dispositivos móveis. Outro dos desenvolvimentos considerados será a criação de um espaço onde uma ligação através do Google Maps, dê a localização exacta do imóvel que é consultado. Inovador seria igualmente a inserção na página de um espaço para conversação/“chat” em tempo real entre os utilizadores. Seria o espaço para colocar todas as dúvidas e esclarecer qualquer detalhe em relação às consultas.

Consideramos ainda a colocação de um formulário de inscrição para recrutamento de colaboradores e candidaturas a franchisings.

Conclusões

A aplicação na prática das teorias aprendidas é, quanto a nós e sem qualquer dúvida, o melhor meio de consolidar a aprendizagem. Naturalmente por esta razão tornou-se importantíssimo o desenvolvimento deste projecto. No desenvolvimento deste trabalho e na implementação da aplicação, sentiu o grupo a satisfação de consolidar as matérias leccionadas ao longo do semestre. O protótipo apresentado carece no entanto de algumas funcionalidades e características reais que gostaríamos de ver implementadas, embora nos pareça que seja um produto muito próximo daquele que poderia ser apresentado a uma empresa do mercado.

Cumpre-nos ainda agradecer aos professores, Licínio Mano, Helder Caixinha e Nuno Ribeiro, a disponibilidade, sapiência e paciência com que nos orientaram ao longo dos últimos meses em mais este percurso académico. Bem haja!

Referências bibliográficas

Consultados ao longo do desenvolvimento do projecto:

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox