Skip to content

vitorfigueiredo94/JurisMonitor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

144 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JurisMonitor

SaaS jurídico para monitoramento automático de processos, publicações e prazos em 91 tribunais brasileiros.

Python Django Version


📋 Descrição

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

🛠️ Tecnologias

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

⚡ Como Rodar (Desenvolvimento)

Pré-requisitos

  • Python 3.11+
  • PostgreSQL 15+
  • Redis 7+

1. Clone e configure o ambiente

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.txt

2. Configure o .env

cp .env.example .env
# Edite .env com suas credenciais

Variáveis obrigatórias:

DB_NAME=jurismonitor
DB_USER=postgres
DB_PASSWORD=sua_senha
DB_HOST=localhost
SECRET_KEY=sua_secret_key

3. Banco de dados

python manage.py migrate
python manage.py createsuperuser

4. Inicie os serviços

# 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 Celery

📁 Estrutura do Projeto

JurisMonitor/
├── 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

🔄 Pipeline de Monitoramento

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

🧪 Testes

# 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

🛠️ Scripts Úteis

# 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

🏗️ Boas Práticas do Projeto

  • Commits: seguir Conventional Commits (feat:, fix:, docs:, refactor:)
  • Branches: main (produção) ← developfeature/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

📝 Licença

Proprietário — todos os direitos reservados.

About

Sistema completo de gestao juridica Django + Next.js 16. Processos, publicacoes, agenda, contratos, honorarios, NFS-e, certificado digital A3.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors