Portal do Sistema de Análise e Acompanhamento do Processo Legislativo
MonitorIA Legislativa é um sistema completo de monitoramento e análise do processo legislativo brasileiro, com foco na Câmara dos Deputados. O sistema utiliza inteligência artificial para análise de proposições, discursos e votações, fornecendo insights valiosos sobre a atividade parlamentar.
-
Monitoramento Automático de Dados Legislativos
- Integração com API de Dados Abertos da Câmara dos Deputados
- Sincronização automática de proposições, votações e discursos
- Atualização em tempo real de informações parlamentares
-
Análise com Inteligência Artificial
- Resumos automáticos de proposições legislativas
- Análise de impacto de proposições
- Busca semântica inteligente
- Análise de sentimento em discursos
- Extração de temas e entidades
-
Dashboard de Perfil Parlamentar
- Estatísticas de votação e presença
- Histórico de proposições apresentadas
- Análise de discursos e posicionamentos
- Comparação entre deputados
- Relatórios de atividade periódicos
-
Gestão de Tarefas e Workflow
- Criação e atribuição de tarefas
- Gerenciamento de equipes
- Comentários e anexos em tarefas
- Diferentes níveis de prioridade
- Acompanhamento de status
-
Portal de Notícias Categorizado
- Publicação de notícias sobre o processo legislativo
- Sistema de categorias e tags
- Relacionamento com proposições e deputados
- Destaque de notícias principais
- Sistema de comentários
- Django 4.2: Framework web Python
- PostgreSQL: Banco de dados relacional (com fallback para SQLite em desenvolvimento)
- Django REST Framework: API REST
- OpenAI API: Integração com modelos de linguagem (GPT-3.5/GPT-4)
- Celery: Processamento assíncrono de tarefas
- Redis: Cache e broker para Celery
- HTML5: Estrutura das páginas
- CSS3: Estilização
- Bootstrap 5: Framework CSS responsivo
- JavaScript: Interatividade
- jQuery: Manipulação do DOM e AJAX
- Chart.js: Visualização de dados (opcional)
- Python 3.8 ou superior
- PostgreSQL (opcional, pode usar SQLite em desenvolvimento)
- Redis (opcional, para Celery)
- Clone o repositório:
git clone https://github.com/aferraz1/MonitorIA-Legislativa.git
cd MonitorIA-Legislativa- Crie um ambiente virtual:
python -m venv venv
source venv/bin/activate # No Windows: venv\Scripts\activate- Instale as dependências:
pip install -r requirements.txt- Configure as variáveis de ambiente:
cp .env.example .env
# Edite o arquivo .env com suas configurações- Execute as migrações:
python manage.py migrate- Crie um superusuário:
python manage.py createsuperuser- Colete arquivos estáticos:
python manage.py collectstatic --noinput- Inicie o servidor de desenvolvimento:
python manage.py runserver- Acesse o sistema em: http://localhost:8000
Edite o arquivo .env com as seguintes configurações:
# Django
SECRET_KEY=sua-chave-secreta-aqui
DEBUG=True
ALLOWED_HOSTS=*
# Database (PostgreSQL)
DB_NAME=monitoria_legislativa
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=localhost
DB_PORT=5432
# Use SQLite em desenvolvimento
USE_SQLITE=True
# OpenAI API (opcional, para funcionalidades de IA)
OPENAI_API_KEY=sua-chave-api-openai
# Celery (opcional, para processamento assíncrono)
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/0O sistema está configurado para consumir a API de Dados Abertos da Câmara dos Deputados:
- Base URL: https://dadosabertos.camara.leg.br/api/v2
- Documentação: https://dadosabertos.camara.leg.br/swagger/api.html
MonitorIA-Legislativa/
├── monitoria_legislativa/ # Configurações do projeto Django
├── legislative_monitor/ # App de monitoramento legislativo
│ ├── models.py # Modelos: Deputado, Proposição, Votação, etc.
│ ├── views.py # Views para listagem e detalhes
│ ├── services/ # Serviços de integração com API
│ └── admin.py # Interface administrativa
├── ai_analysis/ # App de análise com IA
│ ├── models.py # Modelos: ResumoIA, AnaliseImpacto, etc.
│ ├── services/ # Serviços de IA (OpenAI)
│ └── views.py # Views para análises
├── parliamentary_dashboard/ # App de dashboard parlamentar
│ ├── models.py # Modelos: PerfilParlamentar, Relatórios
│ └── views.py # Views para dashboards
├── task_management/ # App de gestão de tarefas
│ ├── models.py # Modelos: Equipe, Tarefa, Comentário
│ └── views.py # Views para tarefas
├── news_portal/ # App de portal de notícias
│ ├── models.py # Modelos: Notícia, Categoria, Tag
│ └── views.py # Views para notícias
├── templates/ # Templates HTML
│ ├── base.html # Template base
│ ├── news_portal/ # Templates do portal
│ ├── legislative_monitor/ # Templates de monitoramento
│ └── ...
└── static/ # Arquivos estáticos
├── css/ # Estilos CSS
├── js/ # Scripts JavaScript
└── img/ # Imagens
- Portal de Notícias: Página inicial com notícias sobre o processo legislativo
- Proposições: Lista e detalhes de proposições legislativas
- Deputados: Perfis parlamentares com estatísticas
- Dashboard: Análises e visualizações de dados
- Busca IA: Busca semântica inteligente
- Tarefas: Gestão de tarefas e workflow (requer login)
- Admin: Interface administrativa Django (requer login admin)
Acesse /admin/ com suas credenciais de superusuário para:
- Gerenciar deputados, proposições e votações
- Criar e editar notícias
- Gerenciar equipes e tarefas
- Configurar categorias e tags
- Visualizar análises de IA
O sistema utiliza Django REST Framework. Endpoints disponíveis:
- Deputados, proposições, votações (via views)
- Análises de IA
- Notícias e categorias
Para sincronizar dados da Câmara dos Deputados, utilize o serviço CamaraAPIService:
from legislative_monitor.services.camara_api import CamaraAPIService
api = CamaraAPIService()
# Listar deputados
deputados = api.listar_deputados()
# Obter proposições
proposicoes = api.listar_proposicoes(ano=2024)
# Detalhes de uma votação
votacao = api.obter_votacao(id_votacao)O sistema inclui modelos e integração com a API de Localidades do IBGE para gerenciar dados geográficos brasileiros:
- Regiao: Representa as 5 regiões brasileiras (Norte, Nordeste, Centro-Oeste, Sudeste, Sul)
- Estado: Representa os 26 estados e o Distrito Federal
- Municipio: Representa os municípios brasileiros, com indicador de capital
Para sincronizar os dados de localidades do IBGE:
# Sincronizar todas as localidades (regiões, estados e municípios)
python manage.py sync_ibge_localidades
# Sincronizar apenas regiões
python manage.py sync_ibge_localidades --apenas-regioes
# Sincronizar apenas estados
python manage.py sync_ibge_localidades --apenas-estados
# Sincronizar apenas municípios
python manage.py sync_ibge_localidades --apenas-municipiosfrom legislative_monitor.services.ibge_api import IBGELocalizacoesService
from legislative_monitor.models import Regiao, Estado, Municipio
# API do IBGE
api = IBGELocalizacoesService()
# Listar regiões
regioes = api.listar_regioes()
# Listar estados
estados = api.listar_estados()
# Listar municípios de um estado
municipios_sp = api.listar_municipios_por_estado(35) # São Paulo
# Consultar modelos
regiao_sudeste = Regiao.objects.get(sigla='SE')
estado_sp = Estado.objects.get(sigla='SP')
capital_sp = Municipio.objects.get(estado=estado_sp, is_capital=True)
print(f"{capital_sp.nome} é a capital de {estado_sp.nome}")Características dos Modelos:
- Constraint único garante que cada estado tem apenas uma capital
- Relacionamentos:
Regiao→Estado→Municipio - IDs são os códigos oficiais do IBGE
- Sincronização automática via comando de management
Para utilizar as funcionalidades de IA, configure a chave da OpenAI no arquivo .env:
from ai_analysis.services.ai_service import AIAnalysisService
ai = AIAnalysisService()
# Gerar resumo
resumo = ai.gerar_resumo(texto_proposicao)
# Analisar impacto
analise = ai.analisar_impacto(texto_proposicao)
# Busca semântica
embedding = ai.gerar_embedding(texto)python manage.py testpython manage.py makemigrations
python manage.py migratecelery -A monitoria_legislativa worker -l info
celery -A monitoria_legislativa beat -l info- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nova-feature) - Commit suas mudanças (
git commit -am 'Adiciona nova feature') - Push para a branch (
git push origin feature/nova-feature) - Crie um Pull Request
Este projeto está sob a licença especificada no arquivo LICENSE.
Para mais informações, entre em contato através do GitHub.