SaaS jurídico para monitoramento automático de processos, publicações e prazos em 91 tribunais brasileiros.
O JurisMonitor permite que advogados e escritórios de advocacia:
- Importem processos automaticamente via número de OAB ou certificado digital A3
- Monitorem publicações em DJE, DOU, DOESP, DJEN e DataJud CNJ
- Recebam alertas sobre prazos processuais e novos andamentos
- Gerenciem clientes, honorários, agenda, contratos e documentos
| Tecnologia | Uso |
|---|---|
| Django 4.2 | Framework principal |
| PostgreSQL | Banco de dados |
| Celery + Redis | Tarefas assíncronas e agendamento |
| Selenium | Scraping de portais com captcha |
| BeautifulSoup | Parsing de HTML |
| DataJud CNJ | API pública de processos (91 tribunais) |
| PyMuPDF | Extração de texto de PDFs (DJE TJSP) |
| Django OTP | Autenticação 2FA |
| WhiteNoise | Servir arquivos estáticos |
- Python 3.11+
- PostgreSQL 15+
- Redis 7+
git clone <repo>
cd JurisMonitor
# Cria ambiente virtual
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Linux/Mac
# Instala dependências
pip install -r requirements.txtcp .env.example .env
# Edite .env com suas credenciaisVariáveis obrigatórias:
DB_NAME=jurismonitor
DB_USER=postgres
DB_PASSWORD=sua_senha
DB_HOST=localhost
SECRET_KEY=sua_secret_key
python manage.py migrate
python manage.py createsuperuser# Windows — script automático
.\iniciar.ps1
# Ou manualmente:
python manage.py runserver # Django em :8000
celery -A config worker -l info # Worker Celery
celery -A config beat -l info # Agendador CeleryJurisMonitor/
├── apps/
│ ├── accounts/ # Autenticação, perfil, importação OAB
│ ├── processos/ # CRUD de processos judiciais
│ ├── publicacoes/ # Publicações em diários oficiais
│ ├── scraper/ # Scrapers de tribunais (91 tribunais)
│ │ ├── datajud.py # API pública CNJ (91 tribunais)
│ │ ├── tjsp.py # TJSP via eSAJ HTTP
│ │ ├── dje_tjsp.py # DJE TJSP (caderno eletrônico)
│ │ ├── diario_oficial.py # DOU + DOESP
│ │ ├── djen.py # Webhook DJEN/CNJ
│ │ └── tasks.py # Tarefas Celery agendadas
│ ├── notifications/ # Sistema de notificações
│ ├── agenda/ # Compromissos e audiências
│ ├── financeiro/ # Lançamentos financeiros
│ ├── honorarios/ # Controle de honorários
│ ├── crm/ # Clientes e relacionamento
│ ├── contratos/ # Contratos e documentos
│ ├── nfse/ # Emissão de NFS-e (ABRASF 2.01)
│ └── licensing/ # Planos e assinaturas
├── config/
│ ├── settings/
│ │ ├── base.py # Configurações base
│ │ ├── development.py
│ │ └── production.py
│ ├── celery.py # Configuração Celery + Beat Schedule
│ └── urls.py
├── templates/ # Templates Django
├── static/ # Arquivos estáticos
├── logs/ # Arquivos de log (git-ignorados)
│ ├── scraper.log # DEBUG+ scraping/importação
│ ├── import.log # INFO+ importações OAB
│ ├── app_info.log # INFO+ processos/contas/publicações
│ ├── errors.log # ERROR+ todos os módulos
│ └── security.log # WARNING+ segurança
├── scripts/ # Scripts SQL utilitários
└── docs/ # Documentação
Celery Beat Schedule
├── A cada 10 min → monitorar_publicacoes_ativas (DataJud)
├── A cada 30 min → monitorar_andamentos_ativos (DataJud)
├── 07:00 diário → varrer_diarios_oficiais (DOU + DOESP + DJE TJSP)
├── 07:30 seg-sex → executar_ciclo_de_captura (DJEN por OAB)
├── 15:30 seg-sex → executar_ciclo_de_captura
├── 17:00 seg-sex → varrer_diarios_oficiais (tarde)
├── 08:00 diário → notificar_prazos_proximos
└── Domingo 02:00 → limpar_logs_antigos
# Roda todos os testes
python manage.py test
# Módulos com cobertura
python manage.py test apps.scraper
python manage.py test apps.publicacoes_pdf
python manage.py test apps.financeiro
# Com pytest
pytest# Importar dados de teste
psql -U postgres -d jurismonitor -f scripts/criar_cliente_teste.sql
# Limpar dados de teste
psql -U postgres -d jurismonitor -f scripts/limpar_dados_teste.sql
# Consultas de dev
psql -U postgres -d jurismonitor -f scripts/consultas_dev.sql
# Varrer DJE TJSP manualmente
python manage.py varrer_dje --processo=1051117-33.2025.8.26.0100
python manage.py varrer_dje --dias=3
# Monitoramento manual (sem Celery)
python manage.py monitorar_publicacoes --modo=tudo
python manage.py monitorar_publicacoes --modo=diarios- Commits: seguir Conventional Commits (
feat:,fix:,docs:,refactor:) - Branches:
main(produção) ←develop←feature/nome - Logs: sempre usar
logger = logging.getLogger('apps.módulo')nas views - Tarefas: toda operação longa vai para Celery (nunca bloqueie o request)
- Savepoints: usar
transaction.savepoint()em loops de INSERT com FK
Proprietário — todos os direitos reservados.