Open isaacmsl opened 8 months ago
Tem uma base de dados que se chama "turmas". Eles permitem uma consula por API, exemplo 2023.2 turmas abertas: https://dados.ufrn.br/api/action/datastore_search?resource_id=d7bf085a-40f2-4733-8780-7fcad14f75d6&q={"situacao_turma":"ABERTA"}
O problema é que é bem bugada... Mesmo GRAFOS (id do componente é 52866) tendo sida ofertada em 2023.2 e constando também no .csv do recurso de Turmas, a consulta: https://dados.ufrn.br/api/action/datastore_search?resource_id=d7bf085a-40f2-4733-8780-7fcad14f75d6&q={"id_componente_curricular":"52866"} não consegue encontrá-la.
Modelar as disciplinas para que fiquem de acordo com o backend
Impossível. Faltam muitas informações. Faz mais sentido trabalhar em um novo modelo SubjectClass
.
Dessa forma podemos linkar uma turma com uma disciplina através do component ID.
Um script que faz sentido quando já foram buscadas disciplinas em "Consultar Turmas" no SIGAA
const subjects = [];
document.querySelectorAll('.listagem tbody tr').forEach(d => {
if(d.classList.contains('destaque')) {
subjects.push({
name: d.innerText,
classes: []
});
} else if (d.style.display != 'none') {
const tds = d.querySelectorAll('td');
const subjectClass = {
semester: tds[0].innerText,
classId: tds[1].innerText,
professorName: tds[2].innerText,
type: tds[3].innerText,
modality: tds[4].innerText,
situation: tds[5].innerText,
hour: tds[6].innerText,
location: tds[7].innerText,
matCap: tds[8].innerText
}
subjects[subjects.length - 1].classes.push(subjectClass);
}
});
console.log(subjects);
Motivo
Devido a dificuldade que é ter acesso a API da UFRN pois é necessário ter como responsável um docente, uma alternativa ambiciosa/hardcode é fazer mineração de informações (web scrapping) no site do SIGAA.
Objetivo
Modelar as disciplinas para que fiquem de acordo com o backendDescreva alternativas que você considerou
Encontrar alguma fonte de dados que possa nos informar essas turmas ofertadas por semestre.