Cyou
From Laboratório MM 5
| Line 95: | Line 95: | ||
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. | 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. ''' | + | 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. | É 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. ''' | + | 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. | 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. | ||
| Line 107: | Line 107: | ||
== Implementação == | == Implementação == | ||
| + | <blockquote>''“A good idea is about ten percent and implementation and hard work and luck is 90 percent" —KAWASAKI, Guy''</blockquote> | ||
<pre> | <pre> | ||
Revision as of 00:34, 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
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
|
