GovernoSombra
From Laboratório MM 5
(→Mapa de páginas) |
(→Mapa de páginas) |
||
| Line 98: | Line 98: | ||
| - | ''"Que os vossos esforços desafiem as impossibilidades, lembrai-vos de que as grandes coisas do Homem foram conquistadas do que parecia impossível."'' Charlie Chaplin | + | ''"Que os vossos esforços desafiem as impossibilidades, lembrai-vos de que as grandes coisas do Homem foram conquistadas do que parecia impossível."'' - Charlie Chaplin |
====Server Behaviours utilizados==== | ====Server Behaviours utilizados==== | ||
Revision as of 16:35, 19 January 2012
Contents |
Agradecimentos
Para que este projecto fosse possível de concretizar, várias pessoas deram um contributo fundamental em diversas etapas da sua construção. Queremos agradecer especialmente ao Nelson Silva, colega de grupo que participou activamente na construção de todo o conceito da ideia nas unidades curriculares de Gestão de Empresas e de Implementação e Controlo de Projectos Multimédia. Agradecemos também a todos os docentes das respectivas unidades curriculares, nomeadamente aos docentes Hélder Caixinha, Licínio Mano, Nuno Ribeiro (Laboratório Multimédia 5) à docente Ana Margarida Almeida (Implementação e Controlo de Projectos Multimédia) e também à docente Vera Vale (Gestão de Empresas). Por último queremos também prestar os devidos agradecimentos aos consultores do nosso projecto, neste caso ao docente Vânia Baldi (Departamento de Comunicação e Arte) e ao docente Carlos Jalali (Secção Autónoma de Ciências Sociais, Jurídicas e Políticas)
Introdução
No âmbito da unidade curricular de Laboratório Multimédia 5, foi proposto ao grupo de trabalho a realização de um projecto em articulação com as unidades curriculares de Gestão de Empresas e Implementação e Controlo de Projectos Multimédia. O principal objectivo deste projecto é criar o website "Governo Sombra" recorrendo aos conhecimentos adquiridos ao longo do semestre a nível de base de dados, gestão de recursos humanos e recursos técnicos.
Objectivo do documento
O objectivo do presente relatório é a retratação de todas as etapas que constituem o processo de criação do website "Governo Sombra", desde o seu planeamento, decisões tomadas, concepção e implementação, até aos desenvolvimentos futuros passíveis de serem aplicados ao website.
Visão geral do projecto
O website "Governo Sombra" desde cedo se revelou uma proposta deveras interessante e aliciante pela sua complexidade mas sobretudo pela capacidade de gerar pontos de vista bastante diversos, não só entre os elementos do grupo, mas também entre os docentes das unidades curriculares e até dos próprios consultores do projecto. "Governo Sombra" acaba por evidenciar influências de um pouco de todas as ideias que foram discutidas, provavelmente reunindo o melhor de todas elas. Consiste na criação de um portal democrático com os objectivos de discutir e opinar criticamente sobre propostas coerentes e concretas que possam, tendo em conta os constrangimentos orçamentais que se vivem em Portugal e no restante mundo. Tudo começa por uma simples ideia ou proposta, e em "Governo Sombra" cada indivíduo poderá criar o seu próprio partido, os seus movimentos, recrutar os seus seguidores.
"Um homem pode morrer, lutar, falhar, até mesmo ser esquecido, mas a sua ideia pode modificar o mundo mesmo tendo passado 400 anos." - V for Vendetta
Base de dados desenvolvida
O printscreen apresentado anteriormente foi retirado do programa MySQL Workbench 5.2, onde foi definida e esquematizada toda a arquitectura da base de dados que serve de base ao website.
Mais concretamente, a base de dados é constituída por 22 tabelas:
Cargos- Esta tabela contém um catálogo de possíveis papéis/cargos que o utilizador desempenha no site (moderador, ministro, etc..).
Categorias- Esta tabela contém um catálogo de possíveis categorias de notícias que o utilizador atribui à(s) notícia(s) que publica.
Categorias_opinião- Esta tabela contém um catálogo de possíveis categorias para os utilizadores convidados pelos administradores classificarem os artigos de opinião que publicam.
Categorias_propostas- Esta tabela contém um catálogo de possíveis categorias para os utilizadores classificarem uma proposta que desejem publicar.
Comentários- Esta tabela armazena todos os comentários feitos às propostas, ideias, notícias e artigos de opinião.
Documentos- Esta tabela armazena documentos (tais como documentos de participação cívica, constituição portuguesa, outros) considerados pertinentes pelos administradores do website.
Estado_utilizador- Esta tabela tem o propósito de guardar estados dos utilizadores, tais como activos, não-activos, suspensos ou banidos.
Género- Esta tabela contém um catálogo dos géneros dos utilizadores, apenas justificado pelo intuito de facilitar o carregamento dinâmico de drop-down menus.
Ideias- Esta tabela armazena as ideias publicadas pelos utilizadores.
Ideologia- Esta tabela contém um catálogo de ideologias políticas passíveis de serem escolhidas pelo utilizador, de forma a evitar publicações de ideologias de partidos reais.
Mensagens_privadas- Esta tabela destina-se a armazenar as mensagens privadas que os utilizadores trocam entre si, não estando limitados a posts públicos no website.
Modo_voto- Esta tabela contém um catálogo das escolhas do utilizador quando este vota numa ideia ou proposta, nomeadamente contra ou a favor.
Noticias- Esta tabela armazena as notícias publicadas pelos administradores ou editores nomeados para esse mesmo fim.
Opinião- Esta tabela destina-se a armazenar os artigos de opinião publicados pelos cronistas ou editores convidados.
Perfil- Esta tabela armazena as características do perfil dos utilizadores.
Propostas Esta tabela armazena as propostas publicadas pelos utilizadores do website.
Tipo_utilizadores- Esta tabela contém as categorias de cada utilizador, influenciando directamente as suas permissões dentro do website.
Utilizadores- Esta tabela armazena todos os utilizadores registados.
Utilizadores_has_ideias- Esta tabela foi automaticamente criada pelo Workbench devido à atribuição de uma relação de M:M entre as tabelas "Utilizadores" e "Ideias" .
Utilizadores_has_propostas- Esta tabela foi automaticamente criada pelo Workbench devido à atribuição de uma relação de M:M entre as tabelas "Utilizadores" e "Propostas".
Utilizadores_seguidores- Esta tabela armazena os utilizadores que seguem a actividade de outros utilizadores.
Votos- Esta tabela armazena todos os votos atribuidos a uma determinada ideia ou proposta.
Implementação
Para a implementação do projecto, o grupo recorreu a diversos softwares de desenvolvimento de código Javascript, PHP e MySQL, nomeadamente Adobe Dreamweaver, Coda, PHP Designer e FlySpeed SQL.
"A programação hoje em dia é uma corrida entre os engenheiros de software que tentam fazer programas maiores e melhores à prova de idiotas (...) e o universo que faz idiotas maiores e melhores. Até agora o universo está a ganhar." - Rick Cook
Descrição das principais funcionalidades da aplicação Web
O "Governo Sombra" pretende ser inovador, irreverente, um ponto de partida ou projecção para uma ideia capaz de produzir efeitos no mundo real. Para isso, existe uma quantidade de serviços e funcionalidades que disponibilizamos aos utilizadores do website:
Área de notícias: publicação de notícias da vida política portuguesa com vista a gerar opiniões convergentes ou divergentes por parte dos membros da comunidade. Pondo em prática o direito à informação, esta secção é acessível a todos os internautas, sem necessidade de qualquer registo.
Registo: é através do registo no website que o utilizador passa a ter direito a uma voz activa na comunidade, passando a estar admitido à maior parte das outras secções do "Governo Sombra" que só estão abertas a utilizadores registados. É através do formulário de registo que o utilizador cria o seu perfil, inserindo as suas informações pessoais, que pode posteriormente alterar se o desejar. Nesta fase é feita uma comparação dos dados inseridos pelo utilizador com os existentes na base de dados, evitando assim registos duplicados, com um username já ocupado por outro utilizador ou um e-mail já utilizado para o registo de uma conta.
Ideias: esta é uma das principais funcionalidades do website. Uma das formas de os utilizadores registados darem o seu contributo ao "Governo Sombra" é a partilha das suas ideias. Não são restritas a nível político, são apenas...ideias. Uma ideia à hora certa, no terreno certo pode ter uma força invencível, e o "Governo Sombra" está aberto a ideias construtivas em prol da comunidade e da sociedade. As ideias publicadas estão obviamente abertas a serem votadas e comentadas pelos utilizadores registados.
Propostas: esta secção actua como uma consequência das Ideias. O facto de se fomentar a discussão e votação de uma ideia, irá promover uma consolidação da própria ideia, e até provavelmente a alienação de outras ideias semelhantes à mesma causa. As ideias tornam-se mais coerentes, concisas, completas. Posto isto, estão reunidas as condições para passar do conceito de "apenas uma ideia" para algo mais formal, estruturado : uma proposta. Isto requer um número considerável de apoiantes, apela à união, e caso seja bem sucedida, pode perfeitamente levar à criação de um movimento cívico organizado com os mesmos objectivos e ideais, algo cada vez mais frequente na sociedade contemporânea. As propostas são também sujeitas a votação, e de acordo com estas votações ao longo de um determinado período de tempo, as melhores propostas são registadas e arquivadas como tal, podendo levar a criação de petições ou até serem apresentadas ao governo actual.
Opinião: a secção de opinião é uma secção bastante restrita do "Governo Sombra". Apenas os administradores e os utilizadores/colunistas convidados para participarem, têm a possibilidade de escrever os seus artigos na secção de Opinião. Esta é uma secção onde este grupo restrito de users publica os seus artigos de opinião própria. Todos os outros utilizadores registados apenas têm a possibilidade de ler e comentar os artigos publicados nesta secção.
Mensagens privadas: esta funcionalidade é vista como um incentivo à interacção social entre os utilizadores registados do website, pois permite que os utilizadores contactem mais directa e informalmente com outros utilizadores, sem haver a necessidade de off-topics excessivos nas secções principais da comunidade.
Mapa de páginas
"Que os vossos esforços desafiem as impossibilidades, lembrai-vos de que as grandes coisas do Homem foram conquistadas do que parecia impossível." - Charlie Chaplin
Server Behaviours utilizados
Para uma melhor dinâmica, consolidação e usabilidade, foram utilizados os seguintes server behaviours:
Repeat Region: Criação de zonas de repetição para inserção de conteúdos vindos da base de dados.
Insert Record: Adicionar um novo elemento à base de dados.
Update Record: Alterar/Actualizar um elemento da base de dados.
Delete Record: Remover um elemento da base de dados.
User Authentication: Permitir ao utilizador registado iniciar ou fechar sessão no website.
Dynamic Text: Inserir texto de forma dinâmica, como por exemplo data e hora momentâneas na publicação de uma notícia.
Restrict Acess to Page: Gestão de sessões.
Recordsets/Queries utilizados
Parâmetros passados entre páginas
Os parâmetros que são passados entre as páginas do website são através de dois métodos: POST e GET. Ambos os métodos foram estudados ao longo do semestre, e tanto um como o outro têm vantagens e desvantagens que tiveram de ser avaliadas no momento da decisão sobre qual método utilizar em cada situação específica.
Levando em conta o que foi escrito anteriormente, optamos por passar através do método GET alguns valores de ID's e alterações de estados de eventos, como por exemplo comunicar que uma notícia foi actualizada com sucesso. Já através do método POST foram maioritariamente passados os parâmetros de entrada da submissão de formulários, assim como também alguns valores de variáveis.
Integração (e.g. Flash, AJAX Frameworks, etc)
Um projecto deste calibre implica uma extensa pesquisa e integração de diferentes linguagens nas várias áreas do projecto. Entre os vários tipos testados, apenas os seguintes foram utilizados:
HTML: Estruturação das divisões da página.
Javascript: Validação de formulários.
JQuery: Menus animados e outras animações.
PHP: Interacção com base de dados, actualização de conteúdos de forma dinâmica.
Facebook Comment System: Após várias tentativas de implementação de um sistema de comentários em JSON, acabou por ser utilizado o sistema de comentários disponibilizado pelo Facebook através da sua API (Open Graph) para a adição de comentários aos conteúdos do website.
Desenvolvimentos Futuros
Tendo em conta as limitações temporais e humanas, algumas secções do website não puderam ser tão bem elaboradas e implementadas como inicialmente estava previsto e planeado, sendo relegadas para desenvolvimentos futuros. Pretendíamos implementar um website com integração total com o Facebook, o que acabou por se revelar inviável de cumprir por completo, estando apenas o sistema de comentários integrado com o mesmo. Mais concretamente, pretendíamos oferecer a possibilidade do utilizador poder fazer login com a sua conta do Facebook caso tenha uma, sem haver necessidade de se registar directamente no website. Esta integração tinha também o objectivo de ser um facilitador na tarefa de divulgação e partilha das actividades/acções dos utilizadores no website. Será também interessante oferecer aos utilizadores a possibilidade de no seu perfil do Facebook poderem adicionar o "Governo Sombra" às suas ideologias políticas.