Para arquitetos, engenheiros e construtores, a gestão de custos e orçamentos é a espinha dorsal de qualquer projeto bem-sucedido. No entanto, a realidade muitas vezes envolve:
- Horas Perdidas: Coletando, organizando e atualizando manualmente dados do SINAPI.
- Decisões Baseadas em Achismos: A falta de dados precisos e atualizados compromete a assertividade.
- Complexidade: Lidar com a vasta e mutável base de dados do SINAPI é um desafio constante.
O AutoSINAPI surge como a solução definitiva para transformar essa realidade. Somos uma ferramenta open-source completa, projetada para automatizar o ciclo de vida dos dados do SINAPI, desde a coleta até a análise, entregando a você informação precisa e atualizada na palma da mão.
- Automação Inteligente: Diga adeus à tediosa coleta manual. O AutoSINAPI baixa, processa e organiza os dados do SINAPI para você.
- Precisão Inquestionável: Tenha acesso a dados limpos, padronizados e prontos para uso, garantindo orçamentos mais acurados e análises confiáveis.
- Visão Estratégica: Libere seu tempo para focar no que realmente importa: análises estratégicas, otimização de custos e tomadas de decisão embasadas.
- Histórico Completo: Mantenha um registro detalhado das alterações do SINAPI ao longo do tempo, essencial para auditorias e comparações.
- Flexibilidade: Seja você um usuário final buscando uma solução pronta ou um desenvolvedor que precisa integrar dados SINAPI em seus sistemas, o AutoSINAPI se adapta.
Construído com as melhores práticas de engenharia de software, o AutoSINAPI é mais do que uma ferramenta; é um toolkit Python modular, testável e desacoplado.
- Arquitetura Modular: Componentes bem definidos (
downloader,processor,database) facilitam a compreensão, manutenção e extensão. - Testes Abrangentes: Uma suíte de testes robusta garante a estabilidade e a confiabilidade do pipeline, mesmo com as constantes atualizações do SINAPI.
- Integração Simplificada: Projetado para ser facilmente consumido por outras aplicações, como APIs REST (ex: autoSINAPI_API) ou CLIs customizadas.
- Open Source: Transparência total e a possibilidade de contribuir para a evolução da ferramenta.
Existem duas maneiras de rodar o pipeline, escolha a que melhor se adapta ao seu fluxo de trabalho.
A forma mais simples e recomendada de usar o AutoSINAPI. Com um único comando, você sobe um ambiente completo e isolado com o banco de dados PostgreSQL e o pipeline pronto para rodar.
Pré-requisitos:
- Docker e Docker Compose instalados.
Passo a Passo:
-
Clone o repositório:
git clone https://github.com/LAMP-LUCAS/AutoSINAPI.git cd AutoSINAPI -
Configure o Ambiente:
- Dentro da pasta
tools/docker/, renomeie o arquivo.env.examplepara.env. - Abra o arquivo
.enve ajuste as variáveis conforme sua necessidade (ano, mês, senhas, etc.).
- Dentro da pasta
-
(Opcional) Adicione Arquivos Locais:
- Se você já tiver o arquivo
.zipdo SINAPI, coloque-o dentro da pastatools/docker/downloads/. O pipeline irá detectá-lo, renomeá-lo para o padrão correto (se necessário) e pulará a etapa de download.
- Se você já tiver o arquivo
-
Execute o Pipeline: Ainda dentro da pasta
tools/docker/, execute o comando:docker-compose up
Este comando irá construir a imagem, subir o container do banco de dados e, em seguida, rodar o container da aplicação que executará o pipeline. Ao final, os containers serão finalizados.
Para quem prefere ter controle total sobre o ambiente e não usar Docker.
Pré-requisitos:
- Python 3.8+ e PostgreSQL 12+ instalados e configurados na sua máquina.
Passo a Passo:
- Clone o repositório e instale as dependências conforme a seção de instalação do
README.md. - Configure o acesso ao banco de dados no arquivo
tools/sql_access.secrets. - Crie e ajuste um arquivo de configuração (ex:
tools/meu_config.json) a partir dotools/CONFIG.example.json. - Execute o pipeline via linha de comando:
python tools/autosinapi_pipeline.py --config tools/meu_config.json
O AutoSINAPI é projetado como um toolkit modular e desacoplado, focado em processar dados do SINAPI de forma eficiente e robusta. Sua arquitetura é dividida em componentes principais que interagem para formar um pipeline ETL completo.
Para uma compreensão aprofundada do modelo de dados e do fluxo de execução do ETL, consulte os seguintes documentos:
- Modelo de Dados Detalhado: Descreve as tabelas do banco de dados, seus relacionamentos e a estrutura dos dados.
- Fluxo de Execução do ETL: Detalha as fases do processo de Extração, Transformação e Carga, desde a obtenção dos dados até a persistência no banco de dados.
O versionamento deste projeto é totalmente automatizado com base nas tags do Git. Para mais detalhes, consulte a documentação sobre o fluxo de trabalho do Git.
- autoSINAPI_API: API para consumir os dados do banco de dados SINAPI.
O AutoSINAPI é um projeto open-source que cresce com a comunidade! Sua contribuição é fundamental, seja ela qual for. Cada ajuda nos impulsiona a construir uma ferramenta cada vez mais robusta e útil para todos.
Como você pode ajudar?
- Reporte Bugs: Encontrou um problema? Sua observação é valiosa! Abra uma Issue no GitHub descrevendo o bug. Isso nos ajuda a identificar e corrigir falhas rapidamente.
- Sugira Novas Funcionalidades: Tem uma ideia para melhorar o AutoSINAPI? Compartilhe conosco abrindo uma Issue de Feature Request.
- Contribua com Código: Se você é desenvolvedor, suas habilidades são muito bem-vindas! Contribua com novas funcionalidades, correções de bugs ou melhorias no código. Consulte nosso guia de contribuição para começar: Como Contribuir.
- Documentação: Ajude a melhorar nossa documentação, tornando-a mais clara e completa.
- Divulgue: Compartilhe o AutoSINAPI com sua rede! Quanto mais pessoas conhecerem, maior nossa comunidade.
- Apoie com um Cafezinho: Gosta do projeto e quer nos ajudar a manter o ritmo? Considere fazer uma pequena doação para o "cafezinho" da equipe. Seu apoio financeiro, por menor que seja, faz uma grande diferença!
🔑 Chave Pix:a03ffaea-d46f-4dc6-a372-2b4fa8b0385fcopie e cole no seu app bancário ou
📋 Use nosso link de pagamento pelo MercadoPago
Junte-se a nós e faça parte desta jornada!
Para detalhes sobre como configurar seu ambiente de desenvolvimento, padrões de código, fluxo de trabalho e muito mais, consulte nosso guia completo: Como Contribuir.
Distribuído sob a licença GNU General Public License v3.0.