O DF em Obras é uma plataforma de fiscalização cidadã que monitora investimentos e prazos de obras públicas no Distrito Federal, utilizando dados da API ObrasGov.
Important
Evolução 2.0: Originalmente desenvolvido como um projeto acadêmico da disciplina de MDS (UnB), a versão 2.0 foi totalmente reestruturada por Caio Melo Borges. A nova arquitetura utiliza o conceito de Modern Data Stack, focando em automação, integridade de dados via dbt e inteligência artificial generativa.
- 📍 Links do Projeto
- 🛠️ Arquitetura v2.0
- 📂 Estrutura do Repositório
- 🚀 Como Contribuir
- 👥 Créditos e Histórico
- 📄 Documentação Original
- Mapa Interativo: unb-mds.github.io/DFemObras/
- Perfil de Fiscalização (X/Twitter): @DFemObras
A versão atual abandonou processos manuais por um pipeline de dados automatizado e resiliente:
- Ingestão: Scripts Python com lógica de
MERGE(Upsert) para evitar duplicidade. - Data Warehouse: MotherDuck (DuckDB gerenciado na nuvem).
- Transformação (ELT): dbt (data build tool) para modelagem e testes de qualidade.
- IA Generativa: Google Gemini API para análise inteligente de atrasos e redação de relatórios.
- Orquestração: GitHub Actions gerenciando 4 estágios (CI, Ingestão, Build e Bot).
- Qualidade de Código: Ruff (Linting) e Pytest (Testes Unitários).
.github/workflows/: Automação completa do pipeline e integração contínua.data_eng/: Core da engenharia de dados (ingestão e integração).Bots/: Scripts do bot social e integração com o modelo Gemini.tests/: Suite de testes para garantir a consistência das métricas reportadas.js/: Estrutura e automações do mapa.
Para rodar o projeto localmente ou contribuir com o desenvolvimento:
# Clone o repositório
git clone [https://github.com/unb-mds/DFemObras.git](https://github.com/unb-mds/DFemObras.git)
cd DFemObras
# Crie e ative sua venv
python3 -m venv venv_bot
source venv_bot/bin/activate
# Instale as dependências
pip install -r requirements.txt
pip install -r requirements-dev.txt
Garantir que os testes passem é obrigatório para qualquer Pull Request:
# Verificar estilo de código
ruff check .
# Executar testes unitários
python3 -m pytest
Este projeto nasceu do esforço do Grupo 07 da UnB:
| Nome | GitHub |
|---|---|
| Cayo Felipe Alencar Câmara | @Cayoalencar |
| João Pedro Rodrigues Gomes da Silva | @JpRodrigues2 |
| Julia dos Reis Teixeira Massuda | @JuliaReis18 |
| Caio Melo Borges (Responsável v2.0) | @CaioMelo25 |
| Marcos Vinícius Lima Bezerra | @marcoslbz |
| Nathan Batista Santos | @Nathan-bs |
As definições de requisitos e a documentação técnica inicial da disciplina podem ser acessadas neste link.
Link do nosso perfil no X: neste link.
A arquitetura do projeto pode ser encontrada neste link.
Os requisitos do projeto estão disponíveis neste link
A documentação do projeto pode ser encontrada neste link.
Se encontrar problemas durante a configuração, abra uma issue no repositório ou entre em contato.