Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(periodos): melhoria na obtenção de períodos #232

Open
9 tasks
caio-felipee opened this issue Aug 14, 2024 · 0 comments
Open
9 tasks

feat(periodos): melhoria na obtenção de períodos #232

caio-felipee opened this issue Aug 14, 2024 · 0 comments
Labels
API related to API communication back-end related to back-end development feature request New feature or request

Comments

@caio-felipee
Copy link
Collaborator

caio-felipee commented Aug 14, 2024

Problema

Na Universidade de Brasília, nem sempre os semestres estão alinhados com o calendário. Por exemplo, ainda estamos no período 2024/1 e esse período não é mais listado.

Por conta disso, o Sua Grade UnB pode não funcionar de maneira satisfatória por um certo período de tempo. Tempos atrás, não existia nem mesmo as matérias previstas para o semestre 2024/2. No site do projeto, apareciam apenas os períodos de 2024/2 e 2025/1. Ou seja, estava totalmente inutilizado.

Outra coisa interessante, é que o site de listagem mostra períodos de férias (e até mesmo além, um quarto período 🤔 ), coisa que o Sua Grade também não acoberta atualmente.

A listagem de períodos deveria ser aqueles que temos (e que estejam atualizados) no banco de dados.

Solução desejada

Realizar a listagem normalmente do período em que estamos, além de acobertar futuros semestres, incluindo aqueles de verão. Essa listagem de períodos deve considerar apenas aqueles que estão no nosso banco de dados.

Alternativas consideradas

Atualmente, a obtenção de períodos é realizada fielmente através da data atual, sendo os semestres delimitados através do mês do ano. Ao invés disso, acredito que a solução de todos os problemas supracitados, seria a pesquisa (através do webscraping) de todos os períodos a partir do ano atual e dos anos vizinhos (antecessor e sucessor).

O que deve ser pensado

  • É possível realizar esse aumento de requisições para o SIGAA sem nenhuma mudança?
  • Como seria uma forma eficiente de realizar as chamadas de listagem de período dentro e fora da API?
    • É viável realizar essas consultas usando agrupações por período, no banco de dados? (provavelmente, não)
    • Algo interessante seria o uso de apenas uma única consulta depois de uma atualização (utilizando o comando updatedb), e termos isso salvo em cache.

Contexto adicional

O site de listagem possui uma característica um tanto quanto interessante. A medida em que os períodos passam, eles não são mais mostrados. Por conta disso, este poderia ser o nosso "parâmetro" para deleção automática das matérias do banco de dados. Se não é mais possível realizar a atualização, significa que o dado não é mais útil no ponto de vista da universidade.

Checklist

Todas as alterações são a nível de back-end.

  • Criar função de apresentar os possíveis períodos a serem verificados
  • Listagem de períodos disponíveis no banco de dados
    • Função com retorno salvo em cache
    • Adaptação da API de períodos
  • Adaptação da função de atualização de períodos no banco de dados
    • Deletar períodos antigos (não recebem mais atualizações)
    • O usuário poderá apagar certos períodos manualmente
    • O usuário poderá adicionar certos períodos manualmente
    • O usuário poderá escolher o ano de referência para atualização
@caio-felipee caio-felipee added feature request New feature or request back-end related to back-end development API related to API communication labels Aug 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
API related to API communication back-end related to back-end development feature request New feature or request
Projects
Status: 🆕 New
Development

No branches or pull requests

1 participant