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

Guardar dados de scraping no banco de dados #125

Closed AdneMoretti closed 2 years ago

AdneMoretti commented 2 years ago

Descrição

Essa issue tem como objetivo pegar os dados de scraping da Faculdade do Gama já obtidos em src/scraping/QtdeAlunosMatriculados.py. Se necessário, também é possível refatorar as funções de scraping para se adequar aos modelos do banco de dados.

Tarefas

Critérios de aceitação

vitorekr commented 2 years ago

Encontrei um site explicando bem como inserir dados de scraping dentro do banco de dados(PostgreSQL). Link: https://kb.objectrocket.com/postgresql/scrape-a-website-to-postgres-with-python-938

AdneMoretti commented 2 years ago

Vou dar uma olhada. Nesse link ele utiliza o sql puro né? Tava dando uma olhada na documentação do django e acho que dá pra gente fazer com esses making queries. https://docs.djangoproject.com/en/4.0/topics/db/queries/

AdneMoretti commented 2 years ago

Fiz algumas alterações e acredito que o código já possa ser revisado.

  1. Mudanças no arquivo QtdeAlunosMatriculados, para percorrer e pegar todas as informações da materia, turma, toda vez que passar por uma materia.
  2. Junção de todos as informações necessárias de scraping da Faculdade do Gama em um único arquivo.
  3. Remoção dos dicionários em python criados para utilização do Django ORM.
  4. Criação do arquivo indicaa-api/api/services.py onde, utilizando as funções do django ORM, os dados ssão colocados dentro do banco de dados.
  5. Mudança da pasta de srcaping para dentro de indicaa-api, pois a importação não estava sendo permitida.
  6. Atualização do requirements.txt com as libs necessárias.
AdneMoretti commented 2 years ago

Para testar e revisar o código acima, é necessário seguir os seguintes passos: Após entrar na branch, rodar os seguintes comandos

cd src
cd indicaa-api
pip install requirements.txt
python manage.py runserver

Os comandos pip e python, podem ser subsituidos por pip3 e python3. O servidor estará iniciando e fazendo o scraping, depois basta clicar no link ou entrar no localhost:8000, e verificar se os dados de sraping estão no db.

vitorekr commented 2 years ago

Estava analisando o código, e todos os 6 tópicos sinalizados estão de acordo e os dados estão sendo colocados dentro do banco de dados.

AdneMoretti commented 2 years ago

Issue já revisada e dentro da develop. Sendo assim, já foi concluída.