Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/deividsousan/botautomacaoreceitas

Automação com Interface Gráfica para baixar o arquivo de receitas do Portal da Transparência, manipula-lo e envia-lo a API.
https://github.com/deividsousan/botautomacaoreceitas

clean-architecture configuration-files custom-tkinter json logging oriented-object-programming pandas python selenium selenium-webdriver tkinter

Last synced: 4 months ago
JSON representation

Automação com Interface Gráfica para baixar o arquivo de receitas do Portal da Transparência, manipula-lo e envia-lo a API.

Awesome Lists containing this project

README

        

# ReceitasGov 🧾

O *BotAutomacaoReceitas* é um software de automação que captura receitas do governo, processa os dados e os envia para um API.

## Tecnologias e Bibliotecas Utilizadas 📝
- **Python** (3.12.2)
- **Selenium:** biblioteca para automação de tarefas em navegadores.
- **Pandas:** biblioteca para manipulação e análise de dados.
- **Requests**: biblioteca para fazer requisições HTTP.
- **Custom Tkinter**: biblioteca para criar interfaces com Python.

Outras bibliotecas que foram utilizadas encontram-se no arquivo `requirements.txt`.

## Outras Funcionalidades ➕
### Logging
A biblioteca built-in `logging` do Python foi utilizada para fornecer algumas informações do status da execução do programa.

## Arquitetura 🏗
O sistema foi desenvolvido tentando seguir boas práticas de programação e arquitetura limpa. A maneira final como as classes do sistemas estão organizadas e estão relacionadas é a seguinte:



## Desafios 🥊
### Importação Circular
Durante o desenvolvimento das interfaces do projeto, foi necessário lidar com *importações circulares*. A interface `WindowControllerI` e a classe `BaseView` se importavam de maneira paradoxal. Para solucionar isso utilizei o `TYPE_CHECKING` da biblioteca `typing` como condição para fazer as importações. Dessa maneira, somente durante a checagem de tipos é que ambas bibliotecas seriam importadas, evitando, assim, problemas durante a execução do código. As soluções podem ser verificadas dentro dos arquivos `window_controller_i.py` e `base_view.py`.

## Screenshots 📷
### Janela Principal



### Janela Configurações



### Janela Logs



## Como rodar o projeto?

### Clonando

Primeiro clone o repositório. Isso pode ser feito baixando-o ou utilizando o comando:

```bash
git clone [email protected]:DeividSouSan/BotAutomacaoReceitas.git
```

Utilizando sua IDE ou Editor de Texto, abra o projeto. Se estiver pelo terminal acesse a pasta onde baixou ou clonou o projeto e digite:

```bash
cd BotAutomacaoReceitas
```

### Ambiente Virtual

Dentro da pasta do projeto, inicie um ambiente virtual. É recomendado instalar as bibliotecas em um ambiente virtual para evitar conflitos de versões com os pacotes instalados globalmente. Pelo terminal, crie um ambiente virtual utilizando:

```bash
python3 -m venv
```

Geralmente o nome utilizado é `.venv`, mas isso é de sua escolha.

Para ativar o ambiente virutal no linux:

```bash
source .venv/bin/activate
```

Ou

```bash
. .venv/bin/activate
```

Para desativa-lo:

```bash
deactivate
```

No windows:
```bash
.venv/Scripts/activate
```

Para desativa-lo:

```bash
.venv/Scripts/deactivate
```

### Bibliotecas
Para baixar as bibliotecas utilizadas, verifique se o ambiente virtual está ativado e digite no terminal:

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

Assim, todas as dependencias que estão dentro do arquivo `requirements.txt` serão baixadas para o ambiente virtual.

### Rodando
Para rodar a aplicação entre no diretório do repositório (`BotAutomacaoReceitas`) e digite no terminal:

```bash
python3 source/main.py
```