Ficha daw-2020-especial

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::ExameEspecial::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, "DAW2019-ExameEspecial";
    • Dentro do repositório deverá haver um ficheiro, "PR.xml", contendo uma descrição de 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.

Recursos:

Recursos disponíveis para a realização da ficha:

Exercícios:

  1. Filmes americanos
  2. CLAV: Classificação e Avaliação da Informação Pública

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 de testes . A respetiva API de dados e respetiva documentação encontra-se acessível em: API de dados .

No topo da página da API de dados precisarás de selecionar o servidor do DI: http://clav-test.di.uminho.pt/v2

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

É sobre o catálogo de entidades e tipologias (agrupamentos de entidades, por exemplo, juntas de freguesia) que irás desenvolver este exercício.

A API de dados disponível contem entre outras as seguintes possibilidades (lê a documentação na interface swagger):

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

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 Tipologias estão catalogadas?
    • Quantos Entidades pertencem à Tipologia tip_FSS?
    • Em que processos a tipologia tip_FA participa como Comunicador?
    • A que tipologias pertence a entidade ent_SEF?

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

  1. Na página inicial, para além de um título e outra informação de contexto, deverá aparecer a lista de tipologias;
  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;
  3. Na página de cada tipologia, deve ser mostrada a informação base da tipologia, a lista de entidades de que é composta, 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...