Cyou
From Laboratório MM 5
| Line 142: | Line 142: | ||
== Desenvolvimentos Futuros == | == Desenvolvimentos Futuros == | ||
| + | <blockquote>''“We realize that we can still play better. Were still improving. We make advances every day and we continue to make advances.” BELSKY, Andrew''</blockquote> | ||
Sobre base de dados | Sobre base de dados | ||
==Conclusões == | ==Conclusões == | ||
Revision as of 00:42, 16 January 2011
Contents |
Introdução
The Web is more a social creation than a technical one. I designed it for a social effect—to help people work together—and not as a technical toy. —Tim Berners-Lee, Weaving the Web (1999)
A proliferação mundial da tecnologia, da Internet e o boom tecnológico fez com que se procedesse à evolução da criação de páginas para a Web. A explosão da Web 2.0 levou a ter presente os seguintes conceitos: páginas dinâmicas, partilha de conhecimento, formas de interacção, criação e edição de conteúdos, grupos, comunicação (as)síncrona e identidade.
Objectivo do documento
Face a esta realidade, serve o presente documento como suporte ao projecto, que surge no âmbito das unidades curriculares Laboratório Multimédia V, Implementação e Controlo de Projectos e Gestão de Empresas e, que tem por objectivo conceber e desenvolver um website que se insira no contexto Web 2.0. No que diz respeito à sua implementação tem como coordenadores, os docentes Hélder Caixinha e Lícinio Mano.
Definiram-se como objectivos gerais do projecto:
- Apresentação do processo de concepção e desenvolvimento do website;
- Implementação técnica de todas as componentes leccionadas na u.c. Laboratório Multimédia;
- Criação de um website server-side, dinâmico e funcional;
Definiram-se como objectivos específicos:
- Conseguir autonomia no desenvolvimento de layouts para páginas Web;
- Integração da arquitectura das 3 camadas no Website (multitier architecture): armazenamento de dados, lógica e apresentação;
- Criação e conexão à Base de Dados associada à própria aplicação;
- Criação de conteúdos, sofisticação do layout através de ferramentas de CSS, JS e utilização de frameworks;
Visão geral do projecto
Cyou é o nome da rede social que pretende aproximar as pessoas e reconhecê-las em tempo real. Através da API da Google, o utilizador consegue partilhar a sua localização em tempo real, interagindo com os diferentes membros através de mensagens no mural e visualização das suas diferentes localizações.
De forma sucinta, esta apresenta as seguintes funcionalidades:
- Publicação de mensagens no Mural (comunicação assíncrona);
- Edição de dados/perfil;
- Inserção de comentários ao perfil e fotos;
- Serviço de localização do utilizador;
- Acesso ao mapa de localização dos amigos, conhecidos e desconhecidos;
- Procura de localizações;
- Acesso ao sistema de ajuda do tipo FAQ e inserção de novas questões, reguladas por um administrador interno;
>>> FALTA TEXTO
Base de dados desenvolvida
“Web users ultimately want to get at data quickly and easily. They don't care as much about attractive sites and pretty design.” —Tim Berners-Lee, 1955
A Base de Dados Cyou armazena os dados de treze tabelas, apresentando como Sistema de Gestão de Base de Dados Relacional, o MySQL.Assim, prosseguiu-se à determinação de:
1.Tabelas
As tabelas apresentam-se como sendo a estrutura básica em que a informação é armazenada. As entidades que foram identificadas no momento em que se repensaram as funcionalidades da rede social, foram:
1.1.Profile
A entidade profile é onde se encontra a informação relativa ao utilizador que acede à rede social. Diferentes tipos de informação são armazenados:
- Informação pessoal que provém do registo na aplicação (ex.: nome, apelido, data de nascimento, descrição);
- Informação de registo e login (ex.: email e password);
- Informação de edição de perfil (ex: fotografia, status);
No que concerne à parametrização de dados, a maior parte dos campos são do tipo varchar, algumas variáveis booleanas como auto-login, gender e active e int como o id_profile e a privacidade.
1.1.1.Friends_profile_AA
Em Web 2.0, encontra-se muito presente o conceito de colaboração. Para tal, é preciso que o perfil do utilizador esteja ligado a outros perfis e é a entidade friends_profile_AA que armazena as informações dessa relação. Os ids de cada perfil são do tipo INT e o estado_amizade, do tipo varchar.
1.2.Location
A entidade location armazena informação relativa à latitude, longitude e a morada definida aquando o registo. Os dados são do tipo float e a morada é do tipo varchar.
1.3.Msg
A tabela com a designação msg armazena a informação relativa a mensagens de mural próprias de cada perfil como a localização, o texto, a pessoa, imagem e o id do profile a que se destina. Os ids são do tipo int e o texto da mensagem são do tipo TEXT, a fim de não haver uma grande limitação de caracteres na mensagem.
1.3.1.Msg_like
De forma a proporcionar a concordância e discordância entre utilizadores, implementou-se o mecanismo de (dis) likes nas mensagens. Assim, é armazenado o id da mensagem, o id do perfil (do tipo int) e a variável booleana like.
1.4.Photo
A tabela photo armazena o id da foto, o id da localização e os atributos próprios para armazenar a fotografia (filename e texto). Como tal, os ids são do tipo int, o filename do tipo varchar (que irá buscar o caminho da imagem) e a descrição/texto do tipo text.
1.4.1.Photo_like
O mesmo mecanismo que se segue para msg_like, passa-se com photo_like. Assim passa a ser armazenado o identificador da fotografia, o id do perfil (do tipo int) e o estado booleano like.
1.5.Plan
Uma nova tabela surge com a integração do tipo de plano escolhido pelo utilizador. Esta irá armazenar o tipo de plano (free e premium) e, também, a data inicial e final em que o utilizador passou a ser premium. Por essa razão em que só se armazena apenas a data inicial e final do que o utilizador é premium, o plano deixa de ser atributo do perfil e faz parte de uma nova tabela. No que diz respeito à parametrização de dados, o id e o tipo de plano são inteiros e a data inicial e final são do tipo date.
1.6.Faq
Uma das formas de prestar auxílio ao utilizador na rede social cyou é através de FAQ. Assim é armazenada a pegunta do tipo text, o estado booleano de activo ou não, nome da pessoa e email (varchar).
1.6.1.Id_categoria
Dado que se pode inserir novas categorias a rotular novas questões no faq, serve a tabela do id da categoria do tipo inteiro e a descrição do tipo varchar.
1.6.2. Resposta_faq
É o administrador que responde às questões de FAQ, sendo necessária uma entidade que armazene o id da resposta, a resposta e o id do perfil. Os ids são do tipo inteiro e a resposta do tipo text.
1.7. Privacy
O utilizador pode controlar a privacidade, indicando o que quer ou não tornar público – control settings (perfil, mensagens de mural, fotografia, localização e amigos). Assim, para as diferentes tabelas, é acrescentado o atributo de privacidade. Estas são dp tipo inteiro.
Uma vez identificadas as entidades e as propriedades armazenadas, segue-se a determinação das relações existentes entre elas, dependências e tabelas de relação.
Implementação
“A good idea is about ten percent and implementation and hard work and luck is 90 percent" —KAWASAKI, Guy
<source lang="php">
<?php
class Person {
function __construct() {
print "O construtor é chamado automaticamante quando o objeto é instanciado!";
} /* Constutor */
function __destruct() {
print "Destruímos o objecto...";
} /* Isto de colocar aqui código atrofia 1 pouco */
}
?>
</source>
echo <?php if( $a == 1 || $a == 2 ) {
if( $b == 3 || $b == 4 ) {
if( $c == 5 || $ d == 6 ) {
//Do something here.
}
}}?> You could just simply do this:
<?php
if( ($a==1 || $a==2) && ($b==3 || $b==4) && ($c==5 || $c==6) ) {
//do that something here.
}
?>
Descrição das principais funcionalidades da aplicação Web
Mapa de páginas
Integração (e.g. Flash, AJAX Frameworks, etc)
Desenvolvimentos Futuros
“We realize that we can still play better. Were still improving. We make advances every day and we continue to make advances.” BELSKY, Andrew
Sobre base de dados
Conclusões
Bibliografia
Livros
- CRUMLISH, Christian; MALONE, Erin, Designing Social Interfaces-Principles, Patterns and Practices for Improving the User Experience, O’Reilly. ISBN:978-0-596-15492-9
- GILMORE, JASON – Beginning PHP and MySQL: From Novice to Professional. 3ª ed. EUA: Apress, 2008. ISBN: 1590598628.
- WHITEHORN, Mark – Inside Relational Databases with Examples in ACCESS. 2ª ed. EUA.: Springer, 2001. ISBN: 1852334010.
- POWERS, David – PHP Solutions – Dynamic Web Design Made Easy. ISBN-13 (pbk): 978-1-59059-731-6
Web
Índice Remissivo
| ÍNDICE REMISSIVO | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
|
