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.
- 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
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.pydocker-compose up -d
# http://localhost:8501| 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 |
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/
pytest tests/ -vStreamlit Cloud:
- Fork o repositório
- Conecte em share.streamlit.io
- Selecione
app.py