Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
felixlaryssa committed Dec 11, 2024
2 parents 23ec0c2 + b8708e4 commit 7224cbe
Show file tree
Hide file tree
Showing 5 changed files with 142 additions and 18 deletions.
Binary file removed docs/docs/architecture/Arquitetura.jpg
Binary file not shown.
40 changes: 27 additions & 13 deletions docs/docs/architecture/architecture.md
Original file line number Diff line number Diff line change
@@ -1,18 +1,32 @@
## Arquitetura

### 1. View
Todo código relacionado a estrutura do front-end. Usaremos o tailwind.
### 2. Lógica
Camada que controla o fluxo de dados e camada de *manipulação* e *view*. Também controla partes do funcionamento da *view*. Usaremos principalmente o Django.
### 3. Manipulação
Lida com toda a parte de processamento, leitura e salvamento na *base de dados*. É aqui que toda a parte de análise de sentimento e outras features estarão. Usaremos python com bibliotecas de Inteligência Artificial (OpenAI)
### 4. Base de Dados
Armazena informações de forma permanente. Usaremos o PostGRE.
### 5. Representação gráfica
![Arquitetura](Arquitetura.jpg)
Para o desenvolvimento do nosso projeto, utilizaremos o framework Django como base.
## Diagrama de arquitetura
![Diagrama de Arquitetura](arquitetura_v2.png)
## Módulos arquiteturais
A arquitetura escolhida foi uma variação da arquitetura MVC (Model - View - Controller) utilizada pelo Django.
### View
Aqui é onde os resultados são apresentados aos usuários finais:

1. **Streamlit**: Ferramenta para a construção de aplicativos web interativos em Python. Exibe visualmente os resultados da classificação de sentimentos de forma acessível e fácil de interpretar.

2. **Interface Web**: A conexão entre o Streamlit e os usuários finais. Proporciona um meio para que os usuários interajam com o sistema, visualizem análises e dados processados.
### Manipulação
Esta seção é responsável pelo processamento e preparação dos dados para análise:

1. **Airflow**: Uma plataforma de fluxo de trabalho que gerencia o fluxo de dados. Coordena a extração dos dados do banco de dados e realiza transformações necessárias, garantindo que estejam prontos para o Classificador.

2. **Classificador**: O núcleo do sistema de análise de sentimentos. Utiliza engenharia de prompt para LLM's para categorizar e atribuir sentimentos (positivo, negativo, neutro) aos dados processados. É integrado com a **OpenAI API** para utilizar modelos de linguagem na execução da análise de sentimento.
### Dados
Nessa seção, encontramos as fontes de dados primárias:

1. **PostGre**: Banco de dados PostgreSQL. É responsável por armazenar os dados brutos que serão utilizados no processo de análise junto com todos os dados que já foram analisados.

2. **Metabase**: Fonte dos dados brutos com todos os comentários e propostas do Brasil Participativo.

## Tabela de Versionamento

| Versão | Data | Descrição | Autor(es) |
|--------|------------|---------------------------------------------------------------|--------------|
| 1.0 | 01/12/2024 | Criação inicial | Caio Pacheco |
| Versão | Data | Descrição | Autor(es) |
|--------|------------|--------------------------|--------------|
| 1.0 | 01/12/2024 | Criação inicial | Caio Pacheco |
| 2.0 | 10/12/2024 | Arquitetura de 3 modulos | Caio Pacheco |
Binary file added docs/docs/architecture/arquitetura_v2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/docs/architecture/arquiteturav2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
120 changes: 115 additions & 5 deletions docs/docs/configuracao/configuracao.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,121 @@
## Configuração de ambiente
# Guia de Configuração e Execução do Projeto

Nesta seção, você encontrará todas as instruções necessárias para configurar seu ambiente de desenvolvimento e começar a contribuir com o projeto. Aprenda como clonar o repositório, instalar as dependências e realizar suas primeiras alterações.
Este guia fornece instruções detalhadas para configurar e executar o projeto Lumina. Você pode optar por configurar o projeto em um ambiente local ou utilizar Docker para simplificar o processo. Recomendamos o uso do Docker para uma configuração mais rápida e consistente, garantindo que todos os serviços necessários estejam disponíveis.

---

## Pré-requisitos

Certifique-se de ter os seguintes pré-requisitos instalados:

### Ambiente Local

- **Python 3.13** ou superior
- **PostgreSQL**
- **pip** e **venv**
- **Git** (opcional, para gerenciar o repositório)

### Docker

- **Docker**
- **Docker Compose**

---

## Configuração e Execução

Nossa aplicação é composta por dois serviços: `web` (Django) e `db` (PostgreSQL). A configuração e execução do projeto pode ser feita de duas formas: localmente ou usando Docker. Siga as instruções abaixo de acordo com a sua preferência.

## 1. Docker

É necessário a instalação do Docker e Docker Compose para executar o projeto com Docker. Você pode instalar o Docker Desktop para Windows e Mac ou o Docker Engine para Linux. Para instalar o Docker Compose, siga as instruções disponíveis na [documentação oficial](https://docs.docker.com/compose/install/).

### Passo 1: Clonar o repositório

```bash
git clone https://github.com/unb-mds/2024-2-Squad05.git
cd 2024-2-Squad05
```

### Passo 2: Construir e iniciar os contêineres

Primeiramente, verifique se o Docker está rodando. Em seguida, execute o comando abaixo para construir e iniciar os contêineres:

```bash
docker-compose up --build
```

### Passo 3: Verificar logs e garantir que tudo está funcionando

Monitore os logs:

```bash
docker-compose logs -f
```

### Passo 4: Acessar a aplicação

Acesse em: [http://127.0.0.1:8000](http://127.0.0.1:8000).

> **Dica:** Para facilitar o processo de desenvolvimento, considere utilizar extensões do VS Code como o [**Python**](https://marketplace.visualstudio.com/items?itemName=ms-python.python) e o [**Docker**](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker). Essas extensões fornecem suporte avançado para desenvolvimento em Python e gerenciamento de contêineres Docker diretamente do editor. Além disso, o **Docker Desktop** oferece uma interface gráfica amigável para gerenciar seus contêineres e imagens Docker.
## 2. Desenvolvimento Local

### Passo 1: Clonar o repositório

```bash
git clone https://github.com/unb-mds/2024-2-Squad05.git
cd 2024-2-Squad05
```

### Passo 2: Configurar o ambiente virtual e instalar dependências

Após clonar o repositório, crie um ambiente virtual e instale as dependências. Isso garante que as dependências do projeto não entrem em conflito com outras aplicações Python instaladas no seu sistema. Execute os comandos abaixo:

```bash
python -m venv venv

source venv/bin/activate # Para Linux/Mac
venv\Scripts\activate # Para Windows

pip install --upgrade pip
pip install -r requirements.txt
```

### Passo 3: Configurar o banco de dados local

Esta eta é necessária apenas se você optar por configurar o banco de dados localmente. Será necessário instalar o PostgreSQL e criar um banco de dados e um usuário para o projeto. Um tutorial de como fazer a instalação do PostgreSQL pode ser encontrado [aqui](https://www.postgresql.org/download/).

Configure o PostgreSQL com os seguintes dados:

- Banco de dados: `lumina_db`
- Usuário: `lumina_user`
- Senha: `lumina_password`

Atualize a variável `HOST` no arquivo `settings.py` para `127.0.0.1` ou `localhost`. O PostgreSQL deve estar rodando localmente.

### Passo 4: Executar as migrações

O projeto utiliza o Django ORM para gerenciar o banco de dados, então é necessário executar as migrações para criar as tabelas necessárias. Execute os comandos abaixo:

```bash
python manage.py makemigrations
python manage.py migrate
```

### Passo 5: Executar o servidor local

```bash
python manage.py runserver
```

Acesse em: [http://127.0.0.1:8000](http://127.0.0.1:8000).

---

Tabela de Versionamento

| Versão | Data | Descrição | Autor(es) |
|--------|------------|---------------------------------------------------------------|------------------|
| 1.0 | DD/MM/AAAA | Criação inicial | NOME SOBRENOME |
| Versão | Data | Descrição | Autor(es) |
| ------ | ---------- | ---------------------- | ------------- |
| 1.0 | 09/12/2024 | Criação inicial | Luiz Henrique |
| 1.1 | 10/12/2024 | Atualização das etapas | Luiz Henrique |

0 comments on commit 7224cbe

Please sign in to comment.