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.
Já se encontra disponível para consulta online:
site de teste
.
É sobre este catálogo que irás desenvolver este exercício.
A API de dados disponível contem entre outras as seguintes possibilidades:
- GET http://clav-test.di.uminho.pt/api/classes - Devolve uma estratura hierárquica em JSON com a informação base de todas as
classes/processos da Lista Consolidada. Note que, os níveis 1 e 2 correspondem a funções e subfunções da Administração Pública, existem
essencialmente para arrumar a case e facilitar o acesso aos processo, o nível 3 corresponde ao processo e o nível 4 a uma divisão do
processo quando, por determinado motivo partes da documentação desse processo têm conservações e destinos diferentes;
- GET http://clav-test.di.uminho.pt/api/classes/nivel/3 - Devolve uma lista em JSON com a informação base de todos os
processos;
- GET http://clav-test.di.uminho.pt/api/classes/nivel/1 - Devolve uma lista em JSON dos primeiros níveis, funções da AP;
- GET http://clav-test.di.uminho.pt/api/classes/nivel/2 - Devolve uma lista em JSON dos segundos níveis, subfunções da AP;
- GET http://clav-test.di.uminho.pt/api/classes/lista - Devolve uma lista em JSON de todas as classes (linearização da árvore
inicial);
- GET http://clav-test.di.uminho.pt/api/classes/c100.10.001 - Devolve em JSON a informação base da classe com código:
c100.10.001;
- GET http://clav-test.di.uminho.pt/api/classes/c100.20/descendencia - Devolve uma lista em JSON das classes filhas da classe passada
no pedido, neste caso, C100.20;
- GET http://clav-test.di.uminho.pt/api/classes/c150.10.702/procRel - Uma classe de nível 3 pode ter relações com outra classe de
nível 3. Este pedido devolve uma lista dos processos (classes de nível 3) que têm relações com o processo 150.10.702. São devolvidos: o
identificador, o código, o título e o código da relação (deste é possível extrair a designação da relação, a sua parte final);
- GET http://clav-test.di.uminho.pt/api/classes/c150.10.702/dono - Um processo, classe de nível 3, pode ter um mais donos. Um dono é
uma entidade pública que é responsável por aquele processo administrativo. Neste pedido, é devolvida uma lisat de entidades em que cada
entidade é caracterizada pelos seguintes campos: id, tipo, sigla e designacao.
Desenvolve então as seguintes alíneas:
- Testa a API de dados com o Postman e dá resposta às seguintes questões:
- Quantos processos (nível 3) e quais são (obtem uma lista em JSON; podes concatenar sublistas invocando várias queries), existem na
descendência da classe 700.10?
- Quantos subprocessos existem? (classes de nível 4) na descendência de 750.10?
- Quantas subfunções (classes de nível 2) tem a função 700 e quais são os seus títulos/designações?
- Quantos e quais são os donos de 750.10.002?
Depois deste "aquecimento", desenvolve uma aplicação em nodejs que permita navegar nesta estrutura de classes. :
- Na página inicial, para além de um título e outra informação de contexto, deverá aparecer a lista de classes de nível 1;
- Todos os campos de informação com códigos de classes devem ser transformados em links que realizam pedidos à tua aplicação de nova
página;
- Na página de cada classe, deve ser mostrada a informação base da classe, uma lista dos seus descendentes caso existam e, se a classe
for de nível 3 uma lista dos seus donos (id, sigla e designação);
- 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);
- Usa a tua imaginação e criatividade...