Projeto Final de Engenharia Web 2012-2013

Micro Web Applications


@Copyright José Carlos Ramalho - DI/UM - Nov. 2012

Vivemos tempos difíceis com restrições a todos os níveis e com o tempo super acelerado. Neste contexto, ser-se competitivo é cada vez difícil e exigente.

Quando se pensa no mercado de desenvolvimento de software é cada vez mais difícil descobrir nichos de mercado ainda virgens. No entanto, é sempre possível descobrir nichos de necessidades específicas: muitas vezes as instituições adquirem grandes soluções que estão concebidas para o grande mercado genérico e que descuram as necessidades mais específicas. Ora, se rapidamente fosse possível desenvolver um componente que interoperasse com a grande aplicação e que resolvesse aquelas necessidades específicas poderiam sair daqui alguns pequenos produtos com uma economia de escala associada.

É neste contexto microaplicacional que se vem propôr este projeto.

Para tal fixou-se um tema (estando no entanto os alunos livres de contrapôr outros se o entenderem) que resultou de algumas conversas e vivências do docente: uma escola de música. Já existem várias aplicações para a gestão de escolas mas nenhuma resolve bem as especificidades de uma escola de música. Assim, depois de uma reunião com a direção de uma escola de música identificaram-se algumas necessidades específicas que poderão ser solucionadas por microaplicações: um gestor de audições/concertos e um gestor de programas específicos.

Praticamente nenhuma das aplicações existentes para gerir escolas tem a funcionalidade de gerir audições ou concertos. Esta é uma necessidade específica de uma escola de música que ao longo de um ano letivo poderá ter que organizar dezenas ou centenas de audições e concertos.

O gestor de audições deverá ter as funcionalidades básicas de um sistema de informação:

Criar:
cria uma audição a partir de informação fornecida pelo utilizador;
Alterar:
permite alterar a informação associada a uma audição desde que esta ainda não tenha ocorrido;
Consultar:
permite consultar toda a informação relativa a uma audição;
Listar:
permite listar todas as audições armazenadas, distinguindo as que ocorreram das que ainda irão ocorrer e paginando quando o número de audições for elevado.

A estas funcionalidades básicas acrescem as seguintes relativas à interoperabilidade e disseminação de informação:

Importar alunos:
importar a informação dos alunos a partir de um ficheiro externo (CSV ou XML);
Importar professores:
importar a informação dos professores a partir de um ficheiro externo (CSV ou XML);
Gerar página Web:
gerar uma página web para a audição com design apelativo;
Gerar PDF:
gerar um documento PDF com o programa da audição (usando XSL-FO);
Redes sociais:
gerar o anúncio do evento nalgumas redes sociais (para já o facebook).

Primeiro há que especificar o modelo de dados de uma audição.

Uma audição é composta por:

  • um conjunto de metadados: título, subtítulo, data e hora, local, organizador/responsável;
  • uma lista de intervenções;
  • cada intervenção é realizada por um ou mais alunos que pode ser acompanhado ou dirigido por um ou mais professores e é composta por uma lista de peças a executar;
  • cada peça é composta pelo título da peça, compositor e data (opcional).

Do exposto, pode-se concluir que apesar de simples este componente terá de suportar a gestão de alguns subsistemas de informação: gestão de peças, gestão de alunos (já implícita em cima), gestão de professores e gestão de audições.

Comece por especificar o modelo relacional para o problema.