Skip to content

Commit

Permalink
Merge pull request #260 from unb-mds/estudo
Browse files Browse the repository at this point in the history
Estudo
  • Loading branch information
pLopess authored Aug 28, 2024
2 parents 040ba0e + 70e9b10 commit 54a5288
Show file tree
Hide file tree
Showing 6 changed files with 76 additions and 3 deletions.
4 changes: 2 additions & 2 deletions docs/arquitetura/arquitetura.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# **Introdução**
O forUnB tem como objetivo melhorar a comunicação com o estudante e monitor a partir de um fórum. Os alunos poderão participar de comunidades, criar e responder perguntas. A arquitetura escolhida foi a MVT (Model, View, Template) e vai ser utilizada dentro do framework Django.
O forUnB tem como objetivo melhorar a comunicação com o estudante e monitor a partir de um fórum. Os alunos poderão participar de comunidades, criar e responder perguntas. A arquitetura escolhida foi a MVT (Model, View, Template) e vai ser utilizada dentro do framework Django, contamos também com um [Scraping](../scraping/scraping.md).

## **Camadas**

Expand All @@ -11,7 +11,7 @@ O forUnB tem como objetivo melhorar a comunicação com o estudante e monitor a

## **Tecnologias**:

- A nossa aplicação utiliza HTML, CSS e Bootstrap para o front-end, Python com o framework Django no back-end e o banco de dados SQLite3 para o armazenamento de dados, que já vem embutido em nosso framework.
- A nossa aplicação utiliza HTML, CSS e Bootstrap para o front-end, Python com o framework Django no back-end. Usamos dois bancos de dados, o SQLite3 para o armazenamento de dados locais, que já vem embutido em nosso framework, além do PostgreSQL focada na parte da hospedagem.


| **Tecnologia** | **Versão** |
Expand Down
Binary file modified docs/assets/arquitetura.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
39 changes: 39 additions & 0 deletions docs/scraping/scraping.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Raspagem de Disciplinas do Sigaa da UnB
O scraping realizado têm a finalidade de realizar a raspagem de dados das disciplinas disponíveis no site Sigaa da UnB e salvar essas disciplinas como fóruns no banco de dados do projeto Django 'ForUnB', possuindo dois arquivos principais.

## Arquivos Principais

- **main/management/commands/scraping_sigaa.py**
- **main/scraping.py**

## Descrição dos Arquivos

### **1. scraping_sigaa.py**
Esse arquivo é um comando customizado do Django que realiza a raspagem das disciplinas do site Sigaa da UnB e as salva como fóruns no banco de dados do projeto. Ele faz uso de um raspador de dados implementado na classe DisciplineWebScraper, que está definida no arquivo main/scraping.py.

#### Funcionamento:
- **Comando Personalizado:** A classe Command herda de BaseCommand, que permite a criação de comandos personalizados que podem ser executados via terminal usando python manage.py scraping_sigaa.
- **Parâmetros de Configuração:** São definidos parâmetros como os departamentos (departments), o ano (year) e o período (period) para especificar quais disciplinas serão raspadas.
- **Deleção de Fóruns Antigos:** Antes de iniciar a raspagem, o código deleta todos os fóruns existentes no banco de dados para evitar duplicações.
- **Raspagem e Criação de Fóruns:** Para cada departamento especificado, o código utiliza o DisciplineWebScraper para obter as disciplinas. Em seguida, cria um fórum no banco de dados para cada disciplina encontrada. Se um fórum já existir, o código apenas avisa que ele já estava presente.

### **2. scraping.py**
Esse arquivo contém a lógica para a raspagem das disciplinas a partir do site Sigaa da UnB. Ele define a classe DisciplineWebScraper e algumas funções auxiliares para realizar essa tarefa.

#### Funcionamento:
- **Sessão e Cookies:** O raspador inicia criando uma sessão de requisição HTTP e obtendo os cookies necessários para realizar as requisições no site Sigaa.
- **Raspagem das Disciplinas:**

-- ***'get_response_from_disciplines_post_request':*** Essa função faz uma requisição POST ao site Sigaa com os dados do departamento, ano e período para obter a lista de disciplinas.

-- ***'make_web_scraping_of_disciplines':*** Após receber a resposta, essa função analisa o conteúdo HTML da página para encontrar a tabela que contém as disciplinas. Ela extrai as informações de cada disciplina e as organiza em um dicionário onde as chaves são os códigos das disciplinas e os valores são listas com os nomes das disciplinas correspondentes.

- **Retorno dos Dados:** O método get_disciplines retorna o dicionário contendo os códigos das disciplinas como chaves e os nomes das disciplinas como valores.

## Como Usar

Execute o comando de raspagem:

```
$ python manage.py scraping_sigaa
```
32 changes: 32 additions & 0 deletions docs/sprints/sprint10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Sprint 10

Período 12/08/2024 a 19/08/2024

## Descrição

Para essa sprint continuamos implementando novas features, enquanto o frontend focou na estilização de todas as telas e arrumar pequenos detalhes. Nossa equipe de DevOps teve um grande foco na refatoração do código.

## Objetivos

- Refatoração do código
- Implementação de novas features;
- Correção de pequenos bugs;
- Implementação da hospedagem;
- Trabalhar na estilização da aplicação com as novas features;
- Melhoria de features já estilizadas;
- Correção de pequenos detalhes da parte visual.

## Reuniões

### Reunião 1
- Data: 12/08/2024
- Local: Discord
- Ata:
Nessa reunião foram definidos todos os nossos objetivos para a sprint 10 e que o foco inicial deveria ser na refatoração do código para depois realizar as implementações de novas features e finalizar a estilização das páginas.
Nessa reunião também foi abordado de forma ampla o que foi feito durante toda a semana anterior e a sprint 9.
Por último foi organizado em grupo o merge do que havia sido produzido até o momento da branch 'Development' e 'Estudo' com a 'Main'.


## Finalização
Conseguimos finalizar a maior parte das issues, com destaque para a refatoração do código feita com sucesso.
Também debatemos a finalização do projeto, e os últimos detalhes para a apresentação e encerramento da matéria.
2 changes: 1 addition & 1 deletion docs/visao_do_produto/visao_produto.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,6 @@

O forUnB é um projeto da disciplina de Métodos de Desenvolvimento de Software, no qual temos o objetivo de melhorar a comunicação com o **estudante** e **monitor** a partir de um fórum.

A partir dessa vontade, precisávamos organizar todo o escopo do projeto e definir com maior detalhamento quem serão nossos usuários. Além disso, era necessário estruturar quais seriam nossas features. Para resolver esse problema, decidimos utilizar a metodologia [Lean Inception](/lean_inception/lean_inception), que nos guiou durante esse processo.
A partir dessa vontade, precisávamos organizar todo o escopo do projeto e definir com maior detalhamento quem serão nossos usuários. Além disso, era necessário estruturar quais seriam nossas features. Para resolver esse problema, decidimos utilizar a metodologia [Lean Inception](../lean_inception/lean_inception.md), que nos guiou durante esse processo.

Acreditamos em um ambiente em que o aluno da UnB pode **participar de comunidades** de seu próprio interesse e **criar e responder perguntas**. Além disso, o papel de monitor vem como um objetivo de enriquecer ainda mais a comunicação entre os estudantes.
2 changes: 2 additions & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ nav:
- Sprint 7: sprints/sprint7.md
- Sprint 8: sprints/sprint8.md
- Sprint 9: sprints/sprint9.md
- Sprint 10: sprints/sprint10.md

- Estudos:
- Lean Inception: lean_inception/lean_inception.md
Expand All @@ -36,4 +37,5 @@ nav:
- GitFlow: estudos/gitflow.md
- Bibliografia: estudos/bibliografia.md

- Scraping: scraping/scraping.md

0 comments on commit 54a5288

Please sign in to comment.