MyGowl
From Laboratório MM 5
Página do projecto MyGowl.com.
Contents |
Introdução
Objectivo do documento
O presente documento tem por objectivo relatar o planeamento, concepção e desenvolvimento da plataforma MyGowl, objecto de avaliação da disciplina, clarificando as técnicas metodológicas utilizadas para a solução de problemas e correcção de erros.
Visão geral do projecto
O projecto MyGowl trata-se de uma plataforma online de bookmarking social, seguindo o conceito da web 2.0, desenvolvida no âmbito da disciplina de Laboratório Multimédia 5, curso de Novas Tecnologias da Comunicação, da Universidade de Aveiro. Trata-se de um projecto desenvolvido recorrendo a tecnologias server-side (PHP), e a tecnologias client-side (HTML/XHTML, CSS e JavaScript), sobre a docência de Hélder Caixinha e Licínio Mano. O projecto em questão foi realizado em conjunto com as disciplinas de Implementação e Controlo de Projectos Multimédia, docência por Margarifa Almeida, e Gestão de Empresas, disciplina leccionada por Vera Vale.
Base de dados desenvolvida
Após discutidas as principais funcionalidades presentes na nossa plataforma, procedeu-se ao estudo da forma mais eficiente e simples para implementar a base de dados da mesma. De forma geral, podem existir diferentes alternativas de implementação da base de dados, levando à necessidade de estudar aprofundadamente as possibilidades. Tratando-se a nossa plataforma de uma aplicação web de bookmarking social, na qual cada utilizador tem a possibilidade de gerir as suas bookmarks, por diferentes categorias, ver actualizações dos amigos, comentar as suas categorias, inserir keywords, optamos pelo seguinte modelo físico:
Link para o modelo físico da BD: [1]
Entidades
O modelo acima proposto é composto por um conjunto de 18 entidades (2 das quais de relação), destacando-se 6 principais:
User - entidade relativa ao utilizador e aos dados do seu login na plataforma. É a primeira entidade a ser alvo do utilizador, durante o seu registo. Esta entidade é composta pelos campos de "user_id", único para cada utilizador em especifico; "username", nome do utilizador na aplicação; "password", relativa ao login único do utilizador; "email", no qual o utilizador escolhe o email pessoal para conseguir efectuar a activação da conta, receber tonificações e recuperar password; "registry_date", preenchido através de timestamp (data e hora) no momento de registo e "status", por defeito com o valor 0, sendo este valor alterado para 1 quando o user activa a sua conta pessoal.
Tab - o utilizador poderá criar várias tabs (categorias), nas quais poderá guardar diferentes páginas de acordo com a organização que pretende. Esta entidade é composta pelos campos "tab_id", auto-incrementado consoante as criações efectuadas pelo utilizador; "nome", limitado a 12 caracteres de forma a não quebrar a linguagem gráfica; "mature", do tipo boolean, que identifica as páginas como de conteúdo adulto, através da identificação do ICRA na página; "creation_date_tipe", que regista a data e hora de criação da tab; "user_id", como chave externa que associa as diferentes tabs a um utilizador em concreto.
url - na barra de pesquisa o utilizador pode digitar um url e será redireccionado para o mesmo e esse url é guardado na base de dados para posterior consulta do utilizador através do histórico (ver próximo tópico). Nesta entidade existem o "url_id", que identifica o url na base de dados; "url", "title", "author", "description", "copyright", "language", que são campos do tipo varchar e são preenchidos automaticamente recorrendo a um cronjob; "mature", como já referido de identificação de conteúdos adultos.
historic - em cada uma das tabs existirá um histórico especifico onde serão guardados todos os url's visitados pelo utilizador. Nesta entidade existem os campos "idhistoric"; "timestamp", que identifica as horas correspondentes a cada registo efectuado na tabela historic; como chaves-estrangeiras os campos "tab_id", que relaciona o histórico com determinado id a uma determinada tab; e "url_id", que relaciona o histórico com os url's que pertencem ao mesmo.
search - na barra de pesquisa o utilizador também pode digitar palavras ou frases e esses caracteres são guardados na base de dados para depois estarem disponiveis num index de pesquisas efectuadas. Nesta tabela existem os campos "idsearch" que atribuiu a cada palavra/frase uma identificação única (independentemente se é a mesma palavra pesquisada 2 vezes); "phrase", campo do tipo varchar com um grande número de caracteres de forma a guardar frases mais extensas; "timestamp", que regista a data e hora em que os users fizeram as pesquisas.
historic_search - nesta tabela são guardadas as palavras/frases introduzidas na pesquisa. Os campos presentes nesta entidade são "idhistory_search"; "timestamp", com as mesmas funcionalidades que o campo da tabela historic; como chaves-estrangeiras "tab_id" e "search_id", permitindo a identificação do histórico de palavras/frases, como histórico de determinada tab e de forma a guardar as palavras/frases nesse histórico concreto.
User & Friends & Profile
User & Help
Profile & Hobby
Url & Comment & User
Domain
Websnap
Order & Tab
Section
NOTA: os ids das diferentes tabelas não respeitam as mesmas regras de nomenclatura.
Implementação
Descrição das principais funcionalidades da aplicação Web
A aplicação desenvovida tem como principais funcionalidades
Mapa de páginas
Server Behaviours utilizados
Recordsets/Queries utilizados
Parâmetros passados entre páginas
Integração (e.g. Flash, AJAX Frameworks, etc)
Desenvolvimentos Futuros
Conclusões
Glossário
cron job is an automated program developed for Unix and Linux systems. It allows the user to execute several commands at a specific time on a precise date. A cron job is an important tool that can be used for anything from running scripts and re-indexing a web page to providing backup for a database.