{"id":16709271,"url":"https://github.com/deividsousan/receitasgov","last_synced_at":"2026-01-30T20:03:53.105Z","repository":{"id":255832379,"uuid":"849032558","full_name":"DeividSouSan/ReceitasGov","owner":"DeividSouSan","description":"Automação com Interface Gráfica para baixar o arquivo de receitas do Portal da Transparência, manipula-lo e envia-lo a API.","archived":false,"fork":false,"pushed_at":"2024-10-12T16:47:06.000Z","size":16919,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-24T06:51:47.249Z","etag":null,"topics":["clean-architecture","configuration-files","custom-tkinter","json","logging","oriented-object-programming","pandas","python","selenium","selenium-webdriver","tkinter"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DeividSouSan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-08-28T21:16:01.000Z","updated_at":"2024-10-12T16:47:10.000Z","dependencies_parsed_at":"2025-02-13T11:43:10.948Z","dependency_job_id":null,"html_url":"https://github.com/DeividSouSan/ReceitasGov","commit_stats":{"total_commits":77,"total_committers":2,"mean_commits":38.5,"dds":0.07792207792207795,"last_synced_commit":"d51798096476e4c63ea1ea96020cef7c34283ed5"},"previous_names":["deividsousan/botautomacaoreceitas"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeividSouSan%2FReceitasGov","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeividSouSan%2FReceitasGov/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeividSouSan%2FReceitasGov/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DeividSouSan%2FReceitasGov/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DeividSouSan","download_url":"https://codeload.github.com/DeividSouSan/ReceitasGov/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248163555,"owners_count":21057964,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clean-architecture","configuration-files","custom-tkinter","json","logging","oriented-object-programming","pandas","python","selenium","selenium-webdriver","tkinter"],"created_at":"2024-10-12T20:04:10.710Z","updated_at":"2026-01-30T20:03:53.072Z","avatar_url":"https://github.com/DeividSouSan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ReceitasGov 🧾\n\nO *ReceitasGov* é um software de automação que captura receitas do governo, processa os dados e os envia para um API.\n\n## Tecnologias e Bibliotecas Utilizadas 📝\n- **Python** (3.12.2)\n- **Selenium:** biblioteca para automação de tarefas em navegadores.\n- **Pandas:** biblioteca para manipulação e análise de dados.\n- **Requests**: biblioteca para fazer requisições HTTP.\n- **Custom Tkinter**: biblioteca para criar interfaces com Python.\n\nOutras bibliotecas que foram utilizadas encontram-se no arquivo `requirements.txt`.\n\n## Outras Funcionalidades ➕\n### Logging\nA biblioteca built-in `logging` do Python foi utilizada para fornecer algumas informações do status da execução do programa.\n\n## Arquitetura 🏗\nO 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:\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/4a15ab22-e56f-4b3f-ac28-f52adb104687\"/\u003e\n\u003c/div\u003e\n\n## Desafios 🥊\n### Importação Circular\nDurante 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`.\n\n## Screenshots 📷\n### Janela Principal\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/cc873038-afeb-4a02-a151-e918750b4242\"/\u003e\n\u003c/div\u003e\n\n### Janela Configurações\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/f1aaacaa-0282-4d06-b616-c4d23bf944c9\"/\u003e\n\u003c/div\u003e\n\n### Janela Logs\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/807617f5-4219-4fdd-9c27-c4b7225a3a72\"/\u003e\n\u003c/div\u003e\n\n## Como rodar o projeto?\n\n### Clonando\n\nPrimeiro clone o repositório. Isso pode ser feito baixando-o ou utilizando o comando:\n\n```bash\ngit clone git@github.com:DeividSouSan/ReceitasGov.git\n```\n\nUtilizando sua IDE ou Editor de Texto, abra o projeto. Se estiver pelo terminal acesse a pasta onde baixou ou clonou o projeto e digite:\n\n```bash\ncd ReceitasGov\n```\n\n### Ambiente Virtual\n\nDentro 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:\n\n```bash\npython3 -m venv \u003cnome_do_ambiente_virtual\u003e\n```\n\nGeralmente o nome utilizado é `.venv`, mas isso é de sua escolha.\n\nPara ativar o ambiente virutal no linux:\n\n```bash\nsource .venv/bin/activate\n```\n\nOu\n\n```bash\n. .venv/bin/activate\n```\n\nPara desativa-lo:\n\n```bash\ndeactivate\n```\n\nNo windows:\n```bash\n.venv/Scripts/activate\n```\n\nPara desativa-lo:\n\n```bash\n.venv/Scripts/deactivate\n```\n\n### Bibliotecas\nPara baixar as bibliotecas utilizadas, verifique se o ambiente virtual está ativado e digite no terminal:\n\n```bash\npip install -r requirements.txt\n```\n\nAssim, todas as dependencias que estão dentro do arquivo `requirements.txt` serão baixadas para o ambiente virtual.\n\n### Rodando\nPara rodar a aplicação entre no diretório do repositório (`ReceitasGov`) e digite no terminal:\n\n```bash\npython3 source/main.py\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeividsousan%2Freceitasgov","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeividsousan%2Freceitasgov","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeividsousan%2Freceitasgov/lists"}