Umquarto

From Laboratório MM 5

(Difference between revisions)
Jump to: navigation, search
(Introdução)
(Mapa de páginas)
 
(8 intermediate revisions not shown)
Line 20: Line 20:
== Base de dados desenvolvida ==
== Base de dados desenvolvida ==
-
 
+
[[File:Bd.jpg]] <br />
-
A base de dados foi criada em torno de três tipos de usuários, Administrador, Senhorio e Inquilino. Na tabela Senhorio são armazenados dados relativos aos utilizadores que se registem nesta categoria, como Nome, Data Nascimento, Localidade, uma variável de referência para o ID de Utilizador, entre outros. Com esta informação preenchida por parte dos utilizadores, cada Senhorio poderá inserir quartos para alugar. Terá ainda a possibilidade de verificar o número de visualizações que os seus imóveis têm por parte de inquilinos. O tipo de utilizador Inquilino é em tudo semelhante ao Senhorio, tendo apenas mais alguns campos. A tabela Inquilino tem ligação com a tabela Favoritos, pois cada uma destas pessoas pode ir criando uma lista de Quartos preferidos, dando rápido acesso a esses Quartos. Isto tudo com o propósito de Alugar um Quarto. É esse o objectivo primordial dos utilizadores registados nesta categoria. Há ainda a possibilidade dos Inquilinos deixarem comentários nos vários Quartos, sendo registado a data em que foi feito e por que utilizador (só registados).
+
A base de dados foi criada em torno de três tipos de usuários, Administrador, Senhorio e Inquilino. Na tabela Senhorio são armazenados dados relativos aos utilizadores que se registem nesta categoria, como Nome, Data Nascimento, Localidade, uma variável de referência para o ID de Utilizador, entre outros. Com esta informação preenchida por parte dos utilizadores, cada Senhorio poderá inserir quartos para alugar. Terá ainda a possibilidade de verificar o número de visualizações que os seus imóveis têm por parte de inquilinos. O tipo de utilizador Inquilino é em tudo semelhante ao Senhorio, tendo apenas mais alguns campos. A tabela Inquilino tem ligação com a tabela Favoritos, pois cada uma destas pessoas pode ir criando uma lista de Quartos preferidos, dando rápido acesso a esses Quartos. Isto tudo com o propósito de Alugar um Quarto. É esse o objectivo primordial dos utilizadores registados nesta categoria. Há ainda a possibilidade dos Inquilinos deixarem comentários nos vários Quartos, sendo registado a data em que foi feito e por que utilizador (só registados).
-
 
+
== Implementação ==
== Implementação ==
Line 32: Line 31:
-procurar quarto por distrito, custo mínimo/máximo,tamanho e visualiza-lo;<br />
-procurar quarto por distrito, custo mínimo/máximo,tamanho e visualiza-lo;<br />
-Gostar de um quarto, dando a possibilidade dos utilizadores verem quantas pessoas gostam do quarto(aplica-se numa visão de Marketing)
-Gostar de um quarto, dando a possibilidade dos utilizadores verem quantas pessoas gostam do quarto(aplica-se numa visão de Marketing)
-
-alugar quarto.<br />
+
-alugar quarto;<br />
 +
-adicionar quartos a Favoritos. <br />
=== Mapa de páginas ===
=== Mapa de páginas ===
Line 38: Line 38:
-index.php              <br />
-index.php              <br />
-login.php <br />
-login.php <br />
 +
-logout.php<br />
-register_inquilino.php <br />
-register_inquilino.php <br />
-register_senhorio.php<br />
-register_senhorio.php<br />
 +
-register_admin.php<br />
-edit_inquilino.php<br />
-edit_inquilino.php<br />
-edit_quarto.php<br />
-edit_quarto.php<br />
Line 47: Line 49:
-resultado_pesquisa.php<br />
-resultado_pesquisa.php<br />
-mostrar_quarto.php<br />
-mostrar_quarto.php<br />
 +
-quarto_pesquisado.php<br />
 +
-favoritos.php<br />
-sitemap.php<br />
-sitemap.php<br />
 +
-quemsomos.php<br />
-ajuda.php<br />
-ajuda.php<br />
-alugar.php<br />
-alugar.php<br />
-contactos.php<br />
-contactos.php<br />
 +
-alert.php<br />
 +
-avisoslegais.php<br />
==== Server Behaviours utilizados ====
==== Server Behaviours utilizados ====
Line 93: Line 100:
-Número visitas que o quarto recebe<br />
-Número visitas que o quarto recebe<br />
-Mínimo/máximo tempo de aluguer de cada imóvel (inserido pelo Senhorio)<br />
-Mínimo/máximo tempo de aluguer de cada imóvel (inserido pelo Senhorio)<br />
-
-Favoritos<br />
 
== Conclusões ==
== Conclusões ==

Latest revision as of 08:51, 18 January 2011

Contents

Introdução

UmQuarto.PT

Grupo:
Fabienne Pimenta,
Licínio Marques,
Miguel Leite.

Objectivo do documento

Este relatório refere-se à execução do projecto final da disciplina de Laboratório Multimédia 5 que consiste na execução de bases de dados relacionais e páginas dinâmicas para a Web, recorrendo às linguagens de programação PHP, JavaScript, CSS, HTML, AJAX e SQL. Abordaremos as várias fases do nosso trabalho, desde a formulação do conceito à posterior execução (desde o design à programação do Site e da Base de dados necessária ao correcto funcionamento do mesmo), passando pelos desafios e problemas com que nos deparámos, assim como as soluções encontradas para ultrapassar estes.


Visão geral do projecto

Como é do conhecimento comum, a maioria dos jovens que ingressa no Ensino Superior pela primeira vez e se depara com o facto de ir viver para outra cidade, encontra no seu destino a dificuldade de encontrar um quarto para habitar. Para além destes, também outros alunos insatisfeitos com a sua casa actual procuram novos quartos, voltando a encontram dificuldades. No nosso projecto propusemo-nos a criar um website que conseguisse reunir o maior número possível de opções, para facilitar a estes possíveis clientes uma forma fácil, rápida e eficaz, á distância de uns cliques, de encontrarem um quarto.

No projecto teremos duas grandes áreas, a dos inquilinos e dos Senhorios. Serão pedidos dados obrigatórios no registo de cada um deles, conforme o estabelecido e pretendido nas Bases de Dados relacionais. A área reservada ao Senhorio tem como objectivo o registo do mesmo, assim como a inserção de quartos para serem futuramente visualizados pelos interessados. Já na área do Inquilino, não será necessário o seu registo para procurar por quartos, estando alguma informação crucial apenas disponibilizada após o seu registo.

Base de dados desenvolvida

Bd.jpg
A base de dados foi criada em torno de três tipos de usuários, Administrador, Senhorio e Inquilino. Na tabela Senhorio são armazenados dados relativos aos utilizadores que se registem nesta categoria, como Nome, Data Nascimento, Localidade, uma variável de referência para o ID de Utilizador, entre outros. Com esta informação preenchida por parte dos utilizadores, cada Senhorio poderá inserir quartos para alugar. Terá ainda a possibilidade de verificar o número de visualizações que os seus imóveis têm por parte de inquilinos. O tipo de utilizador Inquilino é em tudo semelhante ao Senhorio, tendo apenas mais alguns campos. A tabela Inquilino tem ligação com a tabela Favoritos, pois cada uma destas pessoas pode ir criando uma lista de Quartos preferidos, dando rápido acesso a esses Quartos. Isto tudo com o propósito de Alugar um Quarto. É esse o objectivo primordial dos utilizadores registados nesta categoria. Há ainda a possibilidade dos Inquilinos deixarem comentários nos vários Quartos, sendo registado a data em que foi feito e por que utilizador (só registados).

Implementação

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

Este projecto tem como fundamento a integração de um serviço básico de inserção e aluguer de quartos com uma rede social. Os utilizadores têm acesso à pagina de apresentação site,onde podem ver os últimos quartos a serem inseridos,assim como a possibilidade de login ou registo.
-alteração dos dados pessoais, tanto dos senhorios como dos inquilinos;
-inserção de quarto, com fotografia, morada, valor da renda, localidade;
-comentar quarto por parte dos inquilinos. Antigos inquilinos podem tecer opinião sobre o quarto e o senhorio, assim como possíveis interessados;
-procurar quarto por distrito, custo mínimo/máximo,tamanho e visualiza-lo;
-Gostar de um quarto, dando a possibilidade dos utilizadores verem quantas pessoas gostam do quarto(aplica-se numa visão de Marketing) -alugar quarto;
-adicionar quartos a Favoritos.

Mapa de páginas

-header.php e footer.php
-index.php
-login.php
-logout.php
-register_inquilino.php
-register_senhorio.php
-register_admin.php
-edit_inquilino.php
-edit_quarto.php
-edit_senhorio.php
-inserir_quarto.php
-procurar.php
-resultado_pesquisa.php
-mostrar_quarto.php
-quarto_pesquisado.php
-favoritos.php
-sitemap.php
-quemsomos.php
-ajuda.php
-alugar.php
-contactos.php
-alert.php
-avisoslegais.php

Server Behaviours utilizados

- Insert Record : inserir novo registo na BD;
- Update Record : actualizar um registo na BD;
- Repeat Region: resultados da pesquisa e quartos recentes aparecem de forma dinâmica;
- Display Total Records : mostrar o número total de registos de uma Query;
- Show Region : mostrar um conteúdo dependendo de determinada condição;
- Log In: variável de sessão e verificar existência de utilizadores registados e guardados na BD;
- Log Out User: terminar uma variável de sessão;
- Check New Username: verificar a existência de um utilizador(por email);
- User Restrict Access to Page : restrição de acesso a utilizadores com registos de categoria diferentes.

Recordsets/Queries utilizados

SELECT * FROM inquilino WHERE inquilino_id = %s
SELECT * FROM senhorio WHERE senhorio_id = %s
SELECT * FROM quarto WHERE quarto.tamanho >= %s AND quarto.tamanho <= %s AND quarto.preco >= %s AND quarto.preco <= %s AND quarto.localidade = %s AND quarto.livre = %s
SELECT * FROM quarto, favoritos, inquilino WHERE quarto.quarto_id = favoritos.quarto_id AND inquilino.inquilino_id = favoritos.inquilino_id

Parâmetros passados entre páginas

Na página de Pesquisa de quartos, foi implementado um Recordset (rs_pesquisa), onde queríamos que a Querie nos retornasse os quartos cujo tamanho e preço se situavam entre os parâtremos mínimo e máximo pedidos no formulário de pesquisa, e cuja localidade fosse igual à pedida no formulário, por selecção no mapa. Neste Recordset surgiu o problema de o parâmetro “localidade” poder estar ou não definido, pelo que tivemos que criar um critério de decisão entre duas diferentes Queries: uma se estiver definida a zona, e outra se não estivesse definida. Foi também alterado o critério de decisão para a atribuição do valor “zona” passado no formulário de pesquisa, visto que este está sempre definido, com o valor null por defeito. O critério de decisão foi então a desigualdade entre o parâmetro passado por POST e o valor null.

$local_rs_pesquisa = "a";
if ($_POST['localidade'] =! null) {
$local_rs_pesquisa = $_POST['localidade'];
--

if($local_rs_pesquisa == "a") {
$query_rs_pesquisa = sprintf("SELECT * FROM quarto WHERE quarto.tamanho >= %s AND quarto.tamanho <= %s AND quarto.preco >= %s AND quarto.preco <= %s", GetSQLValueString($tamanho_min_rs_pesquisa, "double"),GetSQLValueString($tamanho_max_rs_pesquisa, "double"),GetSQLValueString($preco_min_rs_pesquisa, "double"),GetSQLValueString($preco_max_rs_pesquisa, "double"));
} else {
$query_rs_pesquisa = sprintf("SELECT * FROM quarto WHERE quarto.tamanho >= %s AND quarto.tamanho <= %s AND quarto.preco >= %s AND quarto.preco <= %s AND quarto.localidade = %s", GetSQLValueString($tamanho_min_rs_pesquisa,
"double"),GetSQLValueString($tamanho_max_rs_pesquisa, "double"),GetSQLValueString($preco_min_rs_pesquisa,
"double"),GetSQLValueString($preco_max_rs_pesquisa, "double"),GetSQLValueString($local_rs_pesquisa, "text"));
}
Para além disto, utilizámos a passagem de parâmetros por URL para passar ID’s de Utilizadores, ID’s de Inquilinos, ID’s de Senhorios, ID’s de Quartos ou valores de Acções e Resultados de acções ( action=”login”&result=”true” ).

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

Jquery de SlideShow presente na página de apresentação(index.php) e Jquery do menu de navegação.

Desenvolvimentos Futuros

-API Google Maps
-Confirmação de registo por email
-Procura rápida
-Número visitas que o quarto recebe
-Mínimo/máximo tempo de aluguer de cada imóvel (inserido pelo Senhorio)

Conclusões

Com a realização deste projecto tivemos o desafio de implementar todo o conhecimento adquirido na disciplina de Laboratório 5, numa plataforma 2.0. Forças superiores ao nosso estado de simples mortais, impossibilitaram a total conclusão do projecto, pois com o avançar do trabalho, foram sempre aparecendo novas ideias para discutir e implementar que nos pareciam bastante apropriados ao desafio. Nem tudo é uma derrota porque o conhecimento leccionado foi melhor “interiorizado” e a vontade de querer saber mais para fazer melhor ficou presente nos elementos do grupo. Foi, sem dúvida uma excelente simulação do que nos espera o mundo de trabalho do desenvolvimento de plataformas Web.

Referências bibliográficas

"leigeber",[www.leigeber.com/2008/05/sliding-javascript-menu-highlight]
"csshook",[csshook.com/cssresources/50-jquery-image-showcase-plugins]
"dreamcss",[www.dreamcss.com/2009/04/create-beautiful-jquery-sliders.html]v "wmonline",[www.wmonline.com.br/]
"Custo Justo",[www.custojusto.pt/]
"Fórum Zwame",[forum.zwame.pt/showthread.php?t=553745&page=1]
"W3Schools",[www.w3schools.com]
"phpbuilder",[www.phpbuilder.com]

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox