Closed danielmitre closed 5 years ago
Dei uma olhada no repositório, seria mto bom ter um endpoint aqui no laguinho que servisse os horários de CC de cada período, tipo, 2019.1 foram orfertadas essas disciplinas com esses horários, com esse csv do teu repo. algo como /v1/schedule/2019/1
e continuariamos fazendo isso pros próximos tbm. Seria mto top top
gostaria de adicionar meu repositório na lista de repositórios abertos de CC@UFCG.
Pode fazer um PR adicionando aqui esse e outros repositórios que tu quiser divulgar no @OpenDevUFCG/issueai !!!
Sobre criar o endpoint com a lógica do horarinator, talvez seja melhor ter um projeto específico pra isso (no caso o teu mesmo) porque é uma lógica muito específica 🤔 o que vcs acham?? @thayannevls @danielmitre @JuanBarros2
Ter os dados de horários dos períodos seria muito bom! E também acho que a parte de criar horários pode ser algo a parte, talvez pudéssemos nos ajudar e o seu projeto @danielmitre usar os dados daqui mas fazer a lógica de horários por lá, o que acha? Se tiver outra sugestão pode falar
seria massa demais isso aí, inclusive era uma das ideias que a gente tinha pra o futuro do roadmap
Gostei da discursão que foi iniciada nessa issue e no gitter. Como nenhuma decisão foi tomada e vi uma divergência de ideias na comunidade, tomei a liberdade de agregar os prós e contras citados por vocês e adicionar alguns próprios.
Adicionar como endpoint as matérias processadas do .csv.
Adicionar como endpoint o algoritmo que lista os possíveis horários a partir das matérias/turmas escolhidas.
Com base nos dados e nas sugestões reunidas, vamos tentar amadurecer alguma ideia para tentar chegar a algum consenso.
Por favor, deem suas próprias opiniões e sugestões para incrementar que eu edito para condensar as informações em um único comentário
Acredito que sobre o processamento das disciplinas podemos agregar mais informação juntos com o outro CSV que estarei adicionando à API essa semana. Sobre a lógica do criador de horários acredito que é bom deixar ela separada deste repositório, pois acredito que a aplicação tem um potencial maior. Vejo um cenário que talvez, no futuro, faça sentido adicionar técnicas de IA para auxiliar a gerar o horário, se baseando nos dados de consultas anteriores e até mesmo nos índices de aprovação e informações extras que poderiamos extrair dos dados disponíveis. Acho que seria válido colocar no README do laguinho isso que @danielmitre falou sobre processamento. O quanto pudessemos livrar a API de lógica de negócio, melhor ficaria para pessoas conseguirem consumir dela.
Isso, acho que @JuanBarros2 resumiu tudo. No caso adicionarei ao README.md que a ideia de adicionar endpoints é mais sobre adicionar dados para serem consumidos, sem lógica de negócio e etc.
Massa, então todos concordam com a API dos horáros né? Antes de fechar essa issue, gostaria de confirmar o formato da API, imagino algo como:
[GET] /v1/horario/20191
{
20191: [
nome-materia1: {
disciplina: "nome-materia1",
alias: "Nome da Matéria",
categoria: "obrigatoria",
periodo: "5;4"
turmas: {
1: {
professor: "professor1",
sala: "sala1",
horario: ['s08', 'x10']
},
2: {
professor: "professor2",
sala: "sala2",
horario: ['i08', 's10']
}
}
},
...
],
...
}
Alguma sugestão? A parte de alias posso fazer a mão para as matérias que já tem, mas vocês acham que isso se encaixaria melhor em outro endpoint?
@danielmitre, por mim pode ser esse formato mesmo. É necessário um objeto interno indicando o período 2019.1, tendo em vista que o período é descrito na URL? e sobre a URL, hoje foi merjado o PR #6 que adiciona o endpoint v1/subjects
que diz todas as disciplinas da nova PPC, o teu poderia ser dentro desse tbm, algo como v1/subjects/schedule/{periodo}
. O que acha?
Outra coisa que me chamou atenção agr que tu fez foi sobre deixar as coisas em português o que faz muito sentido já que é uma coisa pra CC UFCG e que a gente quer incentivar a contribuição :thinking: mas vou criar uma outra issue pra isso.
[EDIT]: Criei a issue pra discutir a nossa lingua padrão kkkkkk #10
@JoseRenan, realmente eu misturei as ideias. para a rota em questão seria logo o array mais interno, sem o objeto indicando os períodos.
Esse objeto mais externo foi pensado para guardar a informação no data.js e para uma rota como /schedule/all, assim como imagino uma rota /schedule/latest para retornar o período mais recente.
[EDIT]: Vejo um problema de compatibilidade entre os nomes utilizados para referenciar as matérias entre os CSV's, devo adicionar um schedule-alias na v1/subjects
?
@danielmitre, tu vai fazer esse endpoint ainda? eu tava pensando em criar uma issue separada com as coisas que foram definidas aqui caso eu possa disponibilizar ela pra outras pessoas fazerem.
Infelizmente algumas atividades aconteceram e vou demorar a conseguir focar em algo assim novamente, pode distribuir à vontade. Se alguém não quiser começar do 0, tenho um repositório com a API do horarinator, deve ser bem similar à lógica que ele usa por baixo, mudando as alterações discutidas aqui. Bom jogo e boa sorte a todos.
Devido a reformulação do laguinho #31, vou fechar a issue. Era uma boa submeter esse projeto pra lista de publicações depois
Criei uma API horarinator pra ajudar a criar horários (interface gráfica em andamento) e proponho adicionar esse endpoint ao projeto do laguinho.
Caso rejeitado (ou talvez até mesmo aprovado), gostaria de adicionar meu repositório na lista de repositórios abertos de CC@UFCG.
Caso aceita a proposta, posso fazer a adaptação da API para um endpoint do laguinho.