Ficha daw-pri-2020-recurso

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

Desenvolvimento de Aplicações Web (MIEI) e Processamento e Representação de Informação (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::Exame::Axxxxx ou PRI2019::Exame::Axxxxx
  • Em que Axxxxx corresponde ao número do aluno;
  • Enviar ao docente um link do github para um repositório novo criado especificamente para o exame com o seguinte conteúdo (esta preparação vale 1 valor do exame):
    • O repositório no GitHub deverá chamar-se, consoante o caso, "DAW2019-Exame" ou "PRI2019-Exame";
    • Dentro do repositório deverá haver um ficheiro, "PR.xml", contendo uma descriçãode como fez a persistência de dados, do setup de bases de dados, respostas textuais pedidas, instruções de como executar as aplicações desenvolvidas, etc...
    • Dentro do repositório deverão existir duas pastas: "ex1", onde colocarão a aplicação desenvolvida para responder ao primeiro exercício e, "ex2", onde colocarão a aplicação desenvolvida para responder ao segundo exercício.

Os exercícios que envolvam criação de rotas serão testados com as rotas no enunciado, qualquer rota que seja diferente da pedida será avaliada com 0.


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 de entidades, 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 legislativo 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/legislacao - Devolve a lista dos diplomas legislativos com várias opções de configuração, consulte a interface swagger disponibilizada em cima para mais informações;
  • GET http://clav-api.dglab.gov.pt/api/legislacao/{id} - Devolve a informação de um diploma com identificador igual a id;
  • GET http://clav-api.dglab.gov.pt/api/legislacao/{id}/processos - Devolve a lista dos processos regulados pelo diploma com identificador id.

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:
    • Quantos Diplomas Legislativos estão catalogados? (pista: na API há uma rota que dá este número diretamente)
    • Quantos diplomas do tipo "Portaria" estão catalogados?
    • Que processos são regulados pelo diploma "Lei 9/2009"?
    • Que diplomas legislativos estão associados ao processo "c300.10.005"?

Depois deste "aquecimento", desenvolve uma aplicação em nodejs que permita navegar nesta estrutura de diplomas 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 diplomas (data, tipo, número e sumário);
  2. Ao clicar numa linha desta tabela o utilizador deve ser dirigido para a página do Diploma;
  3. Na página de cada diploma, deve ser mostrada a informação base do diploma (data, sumário, link, estado, entidades responsáveis pela sua publicação) e a lista de processos que regula;
  4. As entidades deverã ser links para a página oficial da entidade: http://clav.dglab.gov.pt/...;
  5. Os processos/classes deverão ser listados com os campos código e título e estes devem ser links para a página oficial do processo correspondente: http://clav.dglab.gov.pt/...
  6. Usa a tua imaginação e criatividade...