Help!
From Laboratório MM 5
Contents |
Introdução
Este projeto surge no âmbito da disciplina de Laboratório Multimédia 5, do terceiro ano da licenciatura em Novas Tecnologias da Comunicação da Universidade de Aveiro, e tem como objectivo a concepção de uma rede social baseada em princípios da Web 2.0, com recurso às tecnologias aprendidas durante o semestre, nomeadamente PHP e MySql.
1.1. Objetivos do documento
Este relatório consiste na exposição dos diferentes processos e etapas inerentes à concepção da rede social HELP!, assim como as dificuldades encontradas e perspectivas futuras.
1.2. Visão geral do projeto
Com o intuito de encontrar um tema atual e que fosse útil no dia-a-dia das pessoas, após uma fase de brainstorming decidimos optar por algo relacionado com os estudantes. Tendo em conta as dificuldades que os estudantes têm a níveis económicos, sociais, académicos e pessoais, surgiu a ideia de desenvolver uma interface de ajuda para os mesmos. O projeto, designa-se de “HELP!”, e tem como principal objectivo constituir uma rede social de e para estudantes, em que cada pessoa se regista e pode procurar ajuda ou ajudar os outros. Definiram-se quatro categorias principais (Mind (nível pessoal), Food (receitas), Entertainment (entretenimento) e Fitness (exercício físico), e qualquer pessoa poderá efetuar um post em cada categoria, ou então procurar ajuda, consoante o que precisa. Tal como em qualquer rede social, e tendo em conta os objetivos da disciplina, o utilizador pode criar informação, ler, editar e eliminar (CRUD: create, read, update, delete).
Base de Dados desenvolvida
Como observado na figura, a base de dados é composta por 13 tabelas, no entanto, estas relacionam-se e umas são especificações de outras. Assim sendo, destacam-se as seguintes entidades:
Utilizador: nesta tabela estão presentes os campos que dizem respeito ao utilizador que se registar na plataforma. Existem três tipos de utilizadores: não-registados, registados, administradores. Os não registados naturalmente não constam como dados na BD. Para além disso, cada utilizador pode seguir um ou mais utilizadores sem que estes tenham de aprovar o relacionamento ou não. Ainda, um utilizador pode seguir alguém que não o segue de volta (tabela follow).
Post: cada post poderá conter um título, data de publicação, foto, um url e um autor. Cada post é feito por apenas um autor e cada autor poderá ter mais do que um post. Os campos anteriormente mencionados são comuns a todo o tipo de posts, ou seja, independentemente da categoria a que pertencem, todos os posts têm aqueles campos. No entanto, houve necessidade de criar tabelas que permitissem a especificação dos posts consoante a categoria escolhida: exercício, mind, receita e entretenimento. Por sua vez, estas tabelas poderão estar relacionadas com outras tabelas que permitam especificar ainda mais os seus componentes, é o caso do tempo e custo de uma receita, do tipo de exercício e de entretenimento. Os valores referentes a essas especificações são pré-definidos por nós e não pelo utilizador, são uma espécie de “catálogo”.
Comentário: Ao efetuar um comentário são necessários dados como: data do comentário, a mensagem escrita, o post a que se refere e o seu autor. Um autor poderá escrever vários comentários, mas um comentário apenas pertence a um autor (1:M), assim como cada post poderá ter vários comentários, mas cada comentário só pertence a um post (1:M).
Implementação
3.1. Descrição das principais funcionalidades da aplicação Web
Como referido anteriormente, a aplicação web permite as interações de CRUD (create, read, update, delete). Mais concretamente as funcionalidades que a aplicação oferece são: o registo de utilizadores, assim como a criação da respetiva sessão e alteração do seu perfil; a criação de posts referentes a diversas categorias, ou seja, cada utilizador registado poderá criar (apagar e editar) um número infinito de posts e organizá-los em categorias diferentes (mind, food, entertainment, fitness); comentários dos utilizadores aos posts; adicionar posts aos favoritos do utilizador; seguir utilizadores, o que se assemelha a um sistema de subscrição, isto é, cada utilizador pode escolher “seguir” um outro e assim ter acesso direto aos posts que os utilizadores que segue publicam; pesquisar por palavras em todo o site (utilizadores e posts) ou então fazer uma pesquisa de posts por filtros (categoria e parâmetros específicos em cada categoria).
3.2. Mapa de páginas
3.2.1. Server Behaviours utilizados
Os Server Behaviours são ferramentas automáticas do Dreamweaver que permitem a gestão de conteúdos mais fácil. Contudo, no projeto optámos por não utilizar essa "ajuda" do Dreamweaver escrevendo o código todo de raiz. No entanto os "behaviours" mais utilizados foram:
. Insert Record: permite inserir registos na base de dados;
. Update Record: permite editar e atualizar os registos na base de dados previamente criados;
. Delete Record: permite eliminar registos na base de dados;
. Restrict Page Access: permite verificar se existe uma sessão de utilizador iniciada. Caso não exista o utilizador é redirecionado para o index de modo a efetuar o log in, caso exista, o utilizador tem acesso à página a que pretende aceder;
. LogIn e LogOut: permite o utilizador iniciar ou terminar uma sessão;
. Repeat Region: permite utilizar de uma forma dinâmica o conteúdo de um recordset;
3.2.1. Recordsets/Queries utilizados 3.2.1. Parâmetros passados entre páginas 3.3. Integração (eg: Flash, AJAX, Frameworks, etc)
Desenvolvimentos Futuros
Dado às restrições de tempo que nos foram impostas, ainda ficaram algumas funcionalidades por implementar que considerámos de baixa prioridade. Para começar gostaríamos de desenvolver a página em várias línguas (nomeadamente Português, Francês e Espanhol – decidimos por desenvolver em Inglês dado o seu carácter universal). A área pessoal do utilizador poderá sofrer uma evolução no sentido de ter um relógio alarme e um calendário onde o estudante poderá marcar exames, trabalhos e outros lembretes. No futuro, gostaríamos também de desenvolver um sistema de upload de imagens mais elaborado, em que o utilizador pudesse fazer o crop à foto que faz o upload, e ainda permitir o upload de mais de uma foto por post para que fosse criada uma galeria. Outra ideia a implementar seria o envio automático de uma "newsletter" semanal para cada utilizador com informação dos novos posts criados pelos utilizadores que segue. Esta opção não só iria motivar o utilizador a utilizar a plataforma, como iria mante-lo informado das novidades.
Conclusões
Em suma, o grupo concorda que este projeto foi extremamente enriquecedor tanto a nível pessoal como académico. Um projeto desta dimensão implicou um nível de organização muito alto, além disso, como decidimos não utilizar a ajuda das ferramentas do Dreamweaver e programar o código todo de raiz, sentimos que ganhámos um domínio muito grande sob as linguagens utilizadas. Com a utilização desse método tornamos a página mais ‘programmer-friendly’, isto é, quando for necessário fazer alguma alteração a nível de código, esta será muito mais facilmente executada. Ficamos satisfeitos com o resultado final do projeto e esperamos poder continuar a melhorá-lo e a ganhar utilizadores.