-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' of https://github.com/unb-mds/2024-2-Squad05
- Loading branch information
Showing
5 changed files
with
142 additions
and
18 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |