Ficha daw2020-e1

Avaliação: Desenvolvimento de Aplicações Web

Desenvolvimento de Aplicações Web (MIEI)

O objectivo principal desta ficha é testar os conhecimentos obtidos durante as aulas no desenvolvimento de aplicações Web e outras tarefas afins.

Os resultados finais deverão ser enviados ao docente da seguinte forma:

  • Enviar por email para: jcr@di.uminho.pt
  • Colocar no subject/assunto: DWEB2019::Teste::Axxxxx
  • Em que Axxxxx corresponde ao número do aluno;
  • Enviar um PR.xml onde descreve o que fez e inclui os 2 pontos seguintes;
  • Coloque todos os ficheiros das suas resoluções numa pasta com nome "TESTE" no GitHub que usou para os TPC;
  • Enviar link do GitHub onde guardou os ficheiros de resolução (não tente enviar ficheiros JS por email, mesmo dentro dum ZIP são detetados e barrados pelo servidor da UM);
  • Para os exercícios em que recorrer a mais do que um servidor, por exemplo, servidor node e servidor Mongo, explique como se pode colocar a funcionar a sua App;
  • As aplicações desenvolvidas serão testadas recorrendo à sequência de comandos:
    • $ npm i
    • $ npm start
  • As respostas pedidas às queries podem ser colocadas num ficheiro de texto ou diretamente no texto do PR.xml.


A CLAV é uma plataforma em desenvolvimento no DI/UM em parceria e sob encomenda da Direção Geral do Livro, Arquivos e Bibliotecas (DGLAB) que visa a classificação e a avaliação de toda a documentação circulante na administração pública portuguesa.

Uma das faces visíveis do projeto é o catálogo dos processos da administração pública portuguesa, designado por Lista Consolidada. Juntamente com este catálogo há outros: o catálogo legislativo, que contem as entidades da Administração Pública Portuguesa, o catálogo das tipologias, que contem a lista de agrupamentos de entidades, e o catálogo legislativo, que contem a lista de diplomas legislativos que regulam os processos.

Já se encontra disponível para consulta online: site oficial A respetiva API de dados e respetiva documentação encontra-se acessível em: API de dados .

Para user a API poderás usar a APIKEY disponibilizada , exemplo: http://clav-api.dglab.gov.pt/api/tipologias?apikey=...

É sobre o catálogo de entidades que irás desenvolver este exercício.

A API de dados disponível contem entre outras as seguintes possibilidades:

  • GET http://clav-api.dglab.gov.pt/api/entidades - Devolve a lista de entidades com várias opções de configuração;
  • GET http://clav-api.dglab.gov.pt/api/entidades/{id} - Devolve a informação de uma entidade com identificador igual a id;
  • GET http://clav-api.dglab.gov.pt/api/entidades/{id}/tipologias - Devolve a lista de tipologias a que a entidade id pertence;
  • GET http://clav-api.dglab.gov.pt/api/entidades/{id}/intervencao/dono - Devolve a lista de processos de que a entidade é dona;
  • GET http://clav-api.dglab.gov.pt/api/entidades/{id}/intervencao/participante - Devolve a lista de processos de que a entidade é participante;

Desenvolve então as seguintes alíneas:

  1. Testa a API de dados com o Postman ou diretamente no link da API e dá resposta às seguintes questões:
    • Quantas Entidades estão catalogadas?
    • A que Tipologias pertence a Entidade "Autoridade para as Condições de Trabalho" (ent_ACT)?
    • Em que processos a entidade "Autoridade Nacional de Segurança Rodoviária" (ent_ANSR) participa como Iniciador?
    • De que processos é dona a entidade "Colégio Militar" (ent_CMil)?

Depois deste "aquecimento", desenvolve uma aplicação em nodejs que permita navegar nesta estrutura de entiddes e respetiva informação:

  1. Na página inicial, para além de um título e outra informação de contexto, deverá aparecer a lista de entidades (sigla e designação);
  2. Todos os campos de informação com códigos de entidades, tipologias ou outros devem ser transformados em links com as chamadas à API respetivas; Ao clicar numa linha desta tabela o utilizador deve ser dirigido para a página da Entidade;
  3. Na página de cada entidade, deve ser mostrada a informação base da entidade, a lista de tipologias a que pertence, os processos em que é dona e os processos em que é participante;
  4. Em todas as páginas deverá haver um link para voltar à página inicial e outro para a página anterior (nos casos em que justifique);
  5. Usa a tua imaginação e criatividade...