Skip to content

fadv-tech/TaskFlow

Repository files navigation

Sistema de Gestão de Alvarás Judiciais

Sistema completo de gestão de fluxo de caixa para escritórios de advocacia brasileiros, com automação de cálculos de alvarás judiciais, importação de extratos bancários e relatórios financeiros completos.


🚀 Quick Start

Desenvolvimento Local (Replit/Dev Environment)

npm install
npm run db:push
npm run dev

Acesse: http://localhost:5000

Produção (Ubuntu Server)

Veja o guia completo abaixo.


📋 Índice


📦 Instalação em Produção (Ubuntu)

Pré-requisitos

  • Ubuntu 20.04 LTS ou superior
  • Acesso sudo/root
  • Conexão com internet

Passo 1: Instalar Dependências do Sistema

# Atualizar sistema
sudo apt update && sudo apt upgrade -y

# Instalar Node.js 20.x
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

# Verificar versões
node --version  # Deve mostrar v20.x.x
npm --version   # Deve mostrar 10.x.x

# Instalar PostgreSQL
sudo apt install -y postgresql postgresql-contrib

# Iniciar e habilitar PostgreSQL
sudo systemctl start postgresql
sudo systemctl enable postgresql

Passo 2: Configurar Banco de Dados

# Trocar para usuário postgres
sudo -i -u postgres

# Criar usuário do banco (ESCOLHA UMA SENHA FORTE!)
createuser --interactive --pwprompt alvara_user
# Digite a senha quando solicitado
# Responder: n (não superuser), n (não criar databases), n (não criar roles)

# Criar banco de dados
createdb -O alvara_user alvara_db

# Sair do usuário postgres
exit

# Testar conexão (use a senha que você criou)
psql -U alvara_user -h localhost -d alvara_db
# Digite \q para sair

Passo 3: Instalar Aplicação

# Criar diretório
mkdir -p ~/aplicacoes
cd ~/aplicacoes

# Opção A: Descompactar arquivo ZIP
unzip alvara-system.zip
cd alvara-system

# Opção B: Clonar repositório Git
git clone [URL_DO_REPOSITORIO] alvara-system
cd alvara-system

# Instalar dependências
npm install

Passo 4: Configurar Variáveis de Ambiente

# Criar arquivo .env
cat > .env << 'EOF'
DATABASE_URL=postgresql://alvara_user:SUA_SENHA_AQUI@localhost:5432/alvara_db
PGHOST=localhost
PGPORT=5432
PGUSER=alvara_user
PGPASSWORD=SUA_SENHA_AQUI
PGDATABASE=alvara_db
NODE_ENV=production
EOF

# Gerar secret de sessão aleatório
echo "SESSION_SECRET=$(openssl rand -base64 32)" >> .env

# Verificar arquivo
cat .env

⚠️ IMPORTANTE: Substitua SUA_SENHA_AQUI pela senha que você criou no Passo 2!

Passo 5: Criar Estrutura do Banco

# Aplicar schema do banco de dados
npm run db:push

# Deve mostrar: Schema pushed successfully!

Passo 6: Compilar para Produção

npm run build

# Deve mostrar ao final:
# ✓ built in XXs
# dist/index.js  42.5kb

Passo 7: Iniciar Aplicação

# Testar manualmente primeiro
npm start

# Deve mostrar:
# ✅ Environment variables loaded from .env file
# Server listening on port 5000

Se aparecer essa mensagem, SUCESSO! Pressione Ctrl+C para parar e continue para configurar como serviço.


👤 Primeiro Acesso - Setup Automático

1. Acessar a Aplicação

Abra o navegador:

http://localhost:5000

Ou de outra máquina na rede:

http://IP_DO_SERVIDOR:5000

2. Tela de Configuração Inicial

A tela "Configuração Inicial" aparecerá automaticamente!

O sistema detecta que não há usuários cadastrados e exibe o formulário de setup.

3. Criar Primeiro Administrador

Preencha os dados:

  • Email: Seu email profissional (ex: admin@seuescritorio.com.br)
  • Nome: Seu primeiro nome
  • Sobrenome: Seu sobrenome
  • Senha: Crie uma senha forte (mínimo 6 caracteres, recomendado 12+)
  • Confirmar Senha: Digite a senha novamente

Clique em "Criar Administrador"

4. Fazer Login

Você será redirecionado automaticamente para a tela de login.

Use o email e senha que você acabou de criar.

✅ PRONTO! Sistema funcionando!


🔄 Configuração como Serviço (Systemd)

Para manter a aplicação rodando permanentemente e iniciar automaticamente no boot:

Criar Arquivo de Serviço

sudo nano /etc/systemd/system/alvara-system.service

Cole o seguinte conteúdo (ajuste os caminhos conforme necessário):

[Unit]
Description=Alvara Judicial Management System
After=network.target postgresql.service

[Service]
Type=simple
User=seu_usuario
WorkingDirectory=/home/seu_usuario/aplicacoes/alvara-system
ExecStart=/usr/bin/npm start
Restart=on-failure
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

⚠️ Substitua seu_usuario pelo seu nome de usuário do Ubuntu.

Salve com Ctrl+X, depois Y, depois Enter.

Habilitar e Iniciar Serviço

# Recarregar systemd
sudo systemctl daemon-reload

# Habilitar para iniciar no boot
sudo systemctl enable alvara-system

# Iniciar serviço
sudo systemctl start alvara-system

# Verificar status
sudo systemctl status alvara-system
# Deve mostrar: Active: active (running)

Comandos Úteis do Serviço

# Ver logs em tempo real
sudo journalctl -u alvara-system -f

# Reiniciar serviço
sudo systemctl restart alvara-system

# Parar serviço
sudo systemctl stop alvara-system

# Ver status
sudo systemctl status alvara-system

🔒 Backup e Segurança

Configurar Firewall

# Permitir SSH (IMPORTANTE!)
sudo ufw allow 22/tcp

# Permitir porta 5000 (aplicação)
sudo ufw allow 5000/tcp

# Habilitar firewall
sudo ufw enable

# Verificar status
sudo ufw status

Backup do Banco de Dados

Backup Manual

# Criar diretório para backups
mkdir -p ~/backups

# Fazer backup
pg_dump -U alvara_user -h localhost alvara_db > ~/backups/alvara_backup_$(date +%Y%m%d).sql

# Comprimir backup
gzip ~/backups/alvara_backup_$(date +%Y%m%d).sql

Restaurar Backup

# Descomprimir
gunzip ~/backups/alvara_backup_YYYYMMDD.sql.gz

# Restaurar
psql -U alvara_user -h localhost -d alvara_db < ~/backups/alvara_backup_YYYYMMDD.sql

Automatizar Backups Diários

# Criar script de backup
cat > ~/backup-alvara.sh << 'EOF'
#!/bin/bash
BACKUP_DIR="$HOME/backups"
mkdir -p "$BACKUP_DIR"
pg_dump -U alvara_user -h localhost alvara_db | gzip > "$BACKUP_DIR/alvara_backup_$(date +%Y%m%d_%H%M%S).sql.gz"
# Manter apenas backups dos últimos 30 dias
find "$BACKUP_DIR" -name "alvara_backup_*.sql.gz" -mtime +30 -delete
EOF

# Tornar executável
chmod +x ~/backup-alvara.sh

# Adicionar ao crontab (executar diariamente às 2h da manhã)
(crontab -l 2>/dev/null; echo "0 2 * * * $HOME/backup-alvara.sh") | crontab -

🆘 Solução de Problemas

Erro: "DATABASE_URL must be set"

# 1. Verificar se .env existe
ls -la ~/aplicacoes/alvara-system/.env

# 2. Verificar conteúdo
cat ~/aplicacoes/alvara-system/.env

# 3. Se não existir ou estiver incorreto, recrie:
cd ~/aplicacoes/alvara-system
cat > .env << 'EOF'
DATABASE_URL=postgresql://alvara_user:SUA_SENHA@localhost:5432/alvara_db
PGHOST=localhost
PGPORT=5432
PGUSER=alvara_user
PGPASSWORD=SUA_SENHA
PGDATABASE=alvara_db
NODE_ENV=production
EOF
echo "SESSION_SECRET=$(openssl rand -base64 32)" >> .env

Erro: Não Consigo Conectar ao Banco

# Verificar se PostgreSQL está rodando
sudo systemctl status postgresql

# Se não estiver rodando
sudo systemctl start postgresql

# Testar conexão manual
psql -U alvara_user -h localhost -d alvara_db

Tela de Setup Não Aparece

Isso significa que já existe usuário no banco.

Opção 1: Ver qual usuário existe

psql -U alvara_user -h localhost -d alvara_db -c "SELECT email, role FROM users"

Opção 2: Limpar e criar novo (CUIDADO: apaga todos os usuários!)

sudo systemctl stop alvara-system
psql -U alvara_user -h localhost -d alvara_db -c "DELETE FROM audit_logs; DELETE FROM users;"
sudo systemctl start alvara-system
# Acesse http://localhost:5000 novamente

Esqueci a Senha do Admin

Opção mais fácil: Limpar e criar novo

sudo systemctl stop alvara-system
psql -U alvara_user -h localhost -d alvara_db -c "DELETE FROM audit_logs; DELETE FROM users;"
sudo systemctl start alvara-system
# Acesse http://localhost:5000 e crie novo admin

Aplicação Não Inicia

# Ver logs detalhados
sudo journalctl -u alvara-system -n 50

# Verificar se porta 5000 está em uso
sudo lsof -i :5000

# Testar manualmente
cd ~/aplicacoes/alvara-system
npm start

Erro 500 ao Fazer Login

# 1. Verificar logs
sudo journalctl -u alvara-system -f

# 2. Verificar .env
cat ~/aplicacoes/alvara-system/.env

# 3. Verificar conexão ao banco
psql -U alvara_user -h localhost -d alvara_db -c "SELECT 1"

# 4. Reiniciar serviços
sudo systemctl restart postgresql
sudo systemctl restart alvara-system

🔄 Atualizar Aplicação

# Parar serviço
sudo systemctl stop alvara-system

# Baixar nova versão
cd ~/aplicacoes/alvara-system

# Se usar git
git pull

# Ou descompactar novo ZIP
unzip -o alvara-system-new.zip

# Instalar novas dependências
npm install

# Aplicar mudanças no banco
npm run db:push

# Recompilar
npm run build

# Reiniciar serviço
sudo systemctl start alvara-system

# Verificar logs
sudo journalctl -u alvara-system -f

⚡ Funcionalidades

Gestão de Alvarás Judiciais

  • Importação de extratos bancários (CSV, texto, OFX)
  • Identificação automática de CNJ
  • Cálculo de honorários (3 tipos de alvará)
  • Cálculo automático de IR e INSS/PSS
  • Rastreamento de pagamentos
  • Geração de prestação de contas (PDF)

Gestão de Caixa

  • Múltiplos caixas independentes
  • Categorias personalizadas
  • Lançamentos de entrada/saída
  • Saldo em tempo real

Relatórios

  • DRE (Demonstração do Resultado do Exercício)
  • Integração entre transações bancárias e caixa
  • Filtros por período

Auditoria

  • Log completo de todas as ações
  • Rastreamento de alterações
  • Identificação de usuário e IP
  • Visualizador de logs (admin)

Gestão de Usuários

  • Dois níveis de acesso (admin/funcionário)
  • Redefinição de senha
  • Autenticação local segura (bcrypt)

📞 Suporte

Para problemas:

  1. Verifique a seção Solução de Problemas
  2. Verifique os logs: sudo journalctl -u alvara-system -f
  3. Verifique o status: sudo systemctl status alvara-system

✅ Checklist de Instalação

  • Node.js 20.x instalado
  • PostgreSQL instalado e rodando
  • Banco alvara_db criado
  • Usuário alvara_user criado
  • Arquivo .env criado com senha correta
  • npm install executado
  • npm run db:push executado com sucesso
  • npm run build executado
  • Serviço systemd configurado
  • Serviço iniciado e rodando
  • Acessou http://localhost:5000
  • Tela de "Configuração Inicial" apareceu
  • Criou usuário admin
  • Fez login com sucesso
  • Firewall configurado
  • Backup automático configurado

Se todos os itens estiverem marcados: ✅ Instalação completa!


Versão: 1.0 Final (Testada)
Data: Novembro 2025
Status: ✅ Pronto para Produção

About

TaskFlow

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages