Skip to content

bruno-portfolio/LicitaScan

Repository files navigation

LicitaScan

CI Python 3.10+ Streamlit License: MIT

Scanner de licitações públicas com interface web. Busca oportunidades abertas no Portal Nacional de Contratações Públicas (PNCP) com filtros inteligentes por área de atuação.

Teste aqui: Streamlit App

image image image

Features

  • Interface Web — Streamlit com design responsivo
  • Presets por Área — Agronomia, TI, Engenharia Civil ou personalizado
  • Filtros Avançados — Estados, modalidades, período, blacklist
  • Apenas Abertas — Foco em oportunidades reais
  • Export — Download em Excel e CSV
  • 100% Async — Performance otimizada com httpx

Quick Start

Local

git clone https://github.com/bruno-portfolio/LicitaScan.git
cd LicitaScan

python -m venv .venv
.venv\Scripts\activate  # Windows
# source .venv/bin/activate  # Linux/Mac

pip install -r requirements.txt
streamlit run app.py

Docker

docker-compose up -d
# http://localhost:8501

Stack

Camada Tecnologia
Frontend Streamlit
HTTP Client httpx (async)
Validação Pydantic
Export pandas + openpyxl
Testes pytest + pytest-asyncio
CI/CD GitHub Actions
Deploy Streamlit Cloud / Docker

Estrutura

licitascan/
├── app.py                    # Entry point
├── src/
│   ├── config.py             # Settings + presets
│   ├── api/
│   │   └── pncp_client.py    # Cliente async
│   ├── models/
│   │   └── schemas.py        # Pydantic models
│   ├── filters/
│   │   └── matcher.py        # Regex matching
│   ├── services/
│   │   └── scanner.py        # Orquestração
│   └── export/
│       └── excel.py          # Export xlsx/csv
└── tests/

Testes

pytest tests/ -v

Deploy

Streamlit Cloud:

  1. Fork o repositório
  2. Conecte em share.streamlit.io
  3. Selecione app.py

Licença

MIT


Dados do Portal Nacional de Contratações Públicas

About

Scanner de licitações públicas com interface web.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors