fga-eps-mds / 2021.2-INDICAA

Este projeto tem como objetivo criar um software para a melhor visualização de informações relacionadas às matérias ofertadas no SIGAA, com o objetivo de melhorar o trabalho da secretaria na volta gradual as aulas.
https://fga-eps-mds.github.io/2021.2-INDICAA-Wiki/
GNU General Public License v3.0
8 stars 7 forks source link

Criação da API com o Django Rest #89

Closed Matheuspimentell closed 2 years ago

Matheuspimentell commented 2 years ago

Descrição

Para o Back-End do projeto, foi determinado que iremos fazer a criação de uma API com o framework Django Rest. Esta issue se dedicará à criação da primeira versão da API citada.

Tarefas

Critérios de aceitação

RochaCarla commented 2 years ago

Essa issue está confusa.. nao está claro o que significa "lógica de scraping".. a falta de escopo bem delimitado aumenta a probabilidade de vcs nao conseguirem fechar a issue em um ciclo de sprint

oCaioOliveira commented 2 years ago

Definida reunião dia 22/03 as 21:30 para melhorar issue e desenvolver.

Mateusvff commented 2 years ago

@Matheuspleal Não seria melhor criarmos um repositório para o Backend igual criamos para o frontend?

Matheuspimentell commented 2 years ago

@Matheuspleal Não seria melhor criarmos um repositório para o Backend igual criamos para o frontend?

Acredito que podemos usar esse repositório aqui mesmo, você acha que é melhor criar um repositório só pro backend mesmo ?

Mateusvff commented 2 years ago

Mas aí pode colocar a pasta da API normalmente dentro do repositório?

oCaioOliveira commented 2 years ago

Reunião realizada e desenvolvimento da API em django rest foi iniciado, após discussão sobre criar um repositório novo ou não será publicada. Participantes: @oCaioOliveira @Mateusvff @Eruel6.

Matheuspimentell commented 2 years ago

Mas aí pode colocar a pasta da API normalmente dentro do repositório?

Se for manter esse repositório, só basta criar uma boa estrutura de pastas bem feita, daí fica tranquilo a organização. O que você acha ??

Mateusvff commented 2 years ago

Pode ser então! Vamos criar uma pasta chamada 'backend' e ir colocando dentro dela, pode ser? Eu, o @Eruel6 e o @oCaioOliveira criamos a estrutura básica aqui da API e já definimos as próximas reuniões e o que devemos fazer até lá. Vamos subir pro repositório. Por enquanto só temos rodando localmente, depois subir para um servidor!

oCaioOliveira commented 2 years ago

Complementando o comentário do @Mateusvff, decidimos fazer um documento com um modelo e diagramas sobre o banco de dados a ser criado.

oCaioOliveira commented 2 years ago

Definida reunião dia 29/03 as 19:00 para evoluir a API do projeto.

oCaioOliveira commented 2 years ago

Diagrama de Entidade-Relacionamento do Projeto:

image

oCaioOliveira commented 2 years ago

Ata da Reunião 29/03

Na reunião do dia 29/09 de duração de 02 horas e participação de @Mateusvff, @mc-gomes, @AdneMoretti e @oCaioOliveira houve a criação do Diagrama de Entidade-Relacionamento do Projeto, desenvolvimento maior do código que já está atualizado com os commits descrevendo o que foi feito em cada atualização.

oCaioOliveira commented 2 years ago

Acredito que o tópico de "Desenvolver a lógica de scraping" está destinado para outras issues já em desenvolvimento no nosso projeto, portanto não faz sentido ser completada aqui, se concordar @Matheuspleal e participantes da issue @Mateusvff @AdneMoretti @vitorekr @Eruel6 podemos retirá-la.

Matheuspimentell commented 2 years ago

Eu concordo!

Eruel6 commented 2 years ago

também acho que faz mais sentido

oCaioOliveira commented 2 years ago

Código foi evoluído e adicionado as entidades que faltavam, encontrei um impedimento onde o banco de dados não aceita chave primária composta, estou correndo atrás para utilizar chaves únicas e contornar o problema, assim que for corrigido isso o código será feito o commit.

oCaioOliveira commented 2 years ago

Código foi evoluido e as entidades que faltavam foram alteradas para caber nas regras do banco de dados determinado pelo Django, dentre as alterações vale ressaltar: entidade Período faz parte da entidade turma, mudança encontrada devido a turma sempre retornar o período no SIGAA, não foi encontrada uma forma de contornar o impedimento da utilização de uma chave primária composta, então foi criado um idTurma para se auto incrementar ao longo da adição de novos dados, a ordenação de dados na API foi alterada também, para seguir um padrão próximo do SIGAA, mostrando as turmas ordenadas por matérias e as matérias por departamento e por último o banco de dados foi populado com dados disponíveis no site da UnB para testes e está funcionando corretamente.

oCaioOliveira commented 2 years ago

Ata da Reunião 04/04

Na reunião do dia 04/04 de duração de 02 horas e participação de @Mateusvff, @Eruel6 e @oCaioOliveira resultou em evoluções em relação ao deploy da API no heroku, no final do processo encontramos alguns erros inesperados e como estávamos todos cansados, decidimos deixar isso para amanhã. Alguns dos conteúdos compartilhados e utilizados: vídeo ensinando como fazer o deploy de uma aplicação Django no Heroku, blog ensinando como fazer o deploy de uma aplicação Django no Heroku

AdneMoretti commented 2 years ago

Boa noite galera, fiz um commit aqui onde eu mudo as pastas da api pra dentro da raiz (src), isso foi feito para que as pastas fiquem mais organizadas e com mais cara de um projeto, além de facilitar a comunicação com os códigos de scraping, para eles, foi criada a pasta scraping. No lugar do arquivo tests.py coloquei uma pasta tests, pois no decorrer do projeto teremos que fazer mais de um arquivo para teste.

Além disso, mudei também o nome das pastas, a pasta myapi passou a ser passou a ser api e a mysite se tornou config, por conter as configurações necessárias da api. A decisão para mudança de nome foi porque mysitee myapi fazem mais sentidos para projetos individuais. Caso vocês tenham alguma dúvida em relação a essas mudanças, podem falar comigo!

AdneMoretti commented 2 years ago

Criei também o arquivo pytest.ini que contém configurações para rodar o pytest com o django e o test_crud_unidade, onde comecei a fazer um teste de criação de uma Unidade do banco de dados.

oCaioOliveira commented 2 years ago

Ata da Reunião 08/04

Na reunião do dia 08/04 de duração de 02 horas e participação de @Mateusvff e @oCaioOliveira resultou em evoluções em relação ao deploy da API no heroku, no final do processo conseguimos fazer o deploy no link a seguir: indicaa-api. Agora todos da equipe tem acesso, entretando tivemos problemas ao fazer o commit das alterações na branch, entendemos que o git não conseguiu inserir o outro repositório criado no heroku, hoje tentaremos novamente fazer o commit com a atualização.

Matheuspimentell commented 2 years ago

A API foi criada e melhorada durante as sprints seguintes. A issue será fechada.