description
DocSystem
arrow_back Voltar ao site

Documentação Técnica

Referência completa da plataforma DocSystem — arquitetura, segurança, API, controle de acesso e conformidade regulatória.

v2.0 Atualizado em 22/10/2026

Visão Geral

O DocSystem é uma plataforma web de gestão documental construída para escritórios de contabilidade, advocacia, engenharia e empresas que precisam gerenciar documentos sensíveis com segurança e conformidade regulatória.

Módulos Principais
  • check Gestão de Documentos
  • check Assinatura Digital (Art. 10 MP 2.200-2/2001)
  • check Workflows Kanban
  • check Suporte com Chat em Tempo Real
  • check Financeiro & Faturamento
  • check Auditoria & Relatórios
  • check Portal do Cliente
  • check Backup & Restore
Métricas de Segurança
  • check 0 vulnerabilidades XSS
  • check 0 SQL injection
  • check 100% endpoints protegidos por CSRF
  • check Rate limiting no login
  • check Session fixation prevenido
  • check Path traversal bloqueado
  • check Cookie HttpOnly + Secure
  • check Prepared statements em 100% das queries

Arquitetura do Sistema

Aplicação PHP monolítica com separação clara entre camadas, padrão MVC simplificado e API JSON centralizada.

# Estrutura de diretórios
doceddy/
├── public/ # Ponto de entrada (web root)
│ ├── api/ # Endpoints JSON (REST-like)
│ │ ├── actions.php # Dispatcher central (18 ações)
│ │ ├── upload.php # Upload multipart
│ │ ├── sign.php # API de assinatura
│ │ ├── backup.php # Backup/restore
│ │ └── file.php # Servir arquivos
│ ├── assets/ # CSS, JS, imagens
│ ├── uploads/ # Arquivos enviados
│ └── backups/ # Backups gerados
├── src/
│ ├── config/ # database.php, session.php
│ └── helpers/ # auth.php, format.php
├── templates/
│ ├── layouts/ # dashboard.php, public.php, auth.php
│ └── partials/ # head.php, sidebar.php, flash-messages.php
└── db/
├── schema.sql # Schema completo
└── seed.sql # Dados de teste
Frontend

Tailwind CSS (CDN), Material Symbols, M3 Design Tokens, JavaScript vanilla com SPA-like interactions.

Backend

PHP 8+ com strict types. PDO com prepared statements. Session-based auth. CSRF token dinâmico.

Banco de Dados

MySQL 8 (InnoDB). 13 tabelas com foreign keys. Índices otimizados para queries de auditoria e busca.

Segurança Detalhada

Implementação completa de defesas contra os vetores de ataque do OWASP Top 10.

lock

CSRF Protection

Token CSRF gerado por sessão e inserido como meta tag em todas as páginas. Validado em todos os endpoints POST.

# PHP - Geração do token (session.php)
function generateCSRFToken(): string
function validateCSRFToken(string $token): bool
# HTML - Meta tag (head.php)
<meta name="csrf-token" content="<?= generateCSRFToken() ?>">
# JS - Header em cada requisição (app.js)
headers: { 'X-CSRF-Token': getCsrfToken() }
# PHP - Validação server-side (actions.php)
if (!validateCSRFToken($_SERVER['HTTP_X_CSRF_TOKEN'])) exit;
timer

Rate Limiting

Proteção contra brute force no login. Session-based com bloqueio progressivo.

5
tentativas máx
15 min
de bloqueio
Reset
após login OK
security

Sessão & Cookies

  • check session_regenerate_id(true) no login — previne session fixation
  • check Cookie com httponly — JavaScript não acessa o cookie
  • check Cookie com secure em HTTPS — não trafega em HTTP
  • check SameSite=Lax — proteção contra CSRF via cookies
code_off

Injeção de Código

  • check SQL Injection: 100% das queries usam prepare() + execute() com bind de parâmetros
  • check XSS Reflected/Stored: Saídas escapadas com sanitize() em PHP + escape em JS para template literals
  • check Path Traversal: Validação com realpath() + prefixo de diretório
  • check Backup SQL: Whitelist de tabelas permitidas, dump via $db->quote()

Controle de Acesso

Sistema de 4 papéis com validação server-side em cada endpoint. Clientes não acessam dados de outros clientes.

Ação Admin Gerente Operador Cliente
Criar/editar clientescheckcheckcloseclose
Criar faturascheckcheckcloseclose
Excluir documentoscheckcheckcloseclose
Criar en assinaturacheckcheckcheckclose
Gerenciar workflowscheckcheckcheckclose
Criar tickets de suportecheckcheckcheckcheck
Atualizar status do ticketcheckcheckcheckclose
Enviar msg no ticketcheckcheckcheckcheck
Criar/gerenciar usuárioscheckcheckcloseclose
Backup / Restorecheckcheckcloseclose
Acessar logs de auditoriacheckcheckcloseclose

info Gerente: só vê e edita clientes atribuídos a ele. Cliente: só vê seus próprios tickets e documentos.

Funcionalidades Detalhadas

folder_copy Gestão de Documentos

  • Upload drag-and-drop com barra de progresso em tempo real (até 50MB)
  • 13 tipos de arquivo: PDF, PNG, JPG, GIF, SVG, WebP, DOC, DOCX, XLS, XLSX, CSV, TXT, PPTX
  • Visualizador inline com fallback para tipos não-visualizáveis
  • Vault de documentos por cliente com busca e paginação
  • Exclusão soft (status = deleted) com confirmação em modal
  • Trilha de auditoria em cada operação

draw Assinatura Digital

  • Duas formas: desenho na tela ou digitação do nome
  • Assinatura armazenada como imagem base64 com validação de formato
  • Links externos com token único (sem necessidade de login)
  • Tokens com data de expiração configurável
  • IP e timestamp registrados na assinatura
  • Cálculo automático de completion rate do envelope
  • Conforme Art. 10 da MP 2.200-2/2001 (validade jurídica)

account_tree Workflows Kanban

  • 4 colunas: A Fazer, Em Andamento, Em Revisão, Concluído
  • Drag-and-drop com reordenação persistente
  • 3 níveis de prioridade: Urgente, Alta, Normal, Baixa
  • Barra de progresso individual por card
  • Data de vencimento com indicador visual de atraso
  • Métrica de eficiência da equipe

confirmation_number Suporte Integrado

  • Sistema de tickets com chat em tempo real
  • Categorias: Suporte Técnico, Financeiro, Comercial, Outro
  • 4 status: Aberto, Em Andamento, Resolvido, Fechado
  • Pontuação CSAT e tempo de resposta
  • Separação visual de mensagens (equipe vs cliente)
  • Contador de mensagens não lidas

computer Portal do Cliente

  • Dashboard dedicado com visão geral de atividades
  • Vault de documentos com upload seguro
  • Timeline de atividades em tempo real
  • Criação de tickets de suporte
  • Acesso isolado — só vê seus próprios dados
  • Layout responsivo e otimizado para mobile

API Endpoints

Todas as requisições usam JSON. POST com body JSON, Headers: Content-Type: application/json + X-CSRF-Token.

POST api/actions.php

Dispatcher central. Body: { "action": "..." }

create-client update-client delete-client create-envelope create-workflow create-invoice create-ticket send-ticket-message delete-document create-user update-user delete-user get-clients get-users get-documents
POST api/upload.php

Upload multipart/form-data. Validação de tipo, tamanho (50MB) e CSRF.

GET POST api/sign.php

API de assinatura. GET para obter envelope por token. POST para submeter assinatura.

GET POST DELETE api/backup.php

Gerenciamento de backups. Somente admin e gerente. Actions: list, create-backup, delete-backup, restore-backup, download-backup.

Assinatura Digital

Implementação conforme Art. 10 da Medida Provisória 2.200-2/2001. Assinatura eletrônica com validade jurídica.

Fluxo de Assinatura
1

Gerente/operador cria envelope vinculando documento, cliente e signatários.

2

Sistema gera link único com token para cada signatário (com ou sem login).

3

Signatário acessa o link, visualiza o documento e assina desenhando ou digitando.

4

Sistema registra: imagem da assinatura, IP, timestamp, email. Token expira após uso.

5

Quando todos assinam, envelope muda para "signed" e completion_rate = 100%.

Backup & Restore

Sistema completo de backup com dump SQL, compressão ZIP e restauração seletiva.

Backup Completo
  • Dump de todas as tabelas (whitelist validado)
  • Schema + dados em SQL formatado
  • Compactação automática em ZIP
  • Data e hora no nome do arquivo
  • Download via API com autenticação
Restore
  • Upload de arquivo SQL ou ZIP
  • Validação de tabelas permitidas
  • Truncamento seguro antes da restauração
  • Path traversal bloqueado com realpath()
  • Operação restrita a admin e gerente

Compliance & Regulatório

gavel MP 2.200-2/2001 — Assinatura Eletrônica

O DocSystem atende ao Art. 10 da Medida Provisória, que equipara a assinatura eletrônica à autógrafa quando utilizados meios idôneos. Cada assinatura é vinculada a: identificação do signatário (email), imagem da assinatura, endereço IP, e data/hora do ato.

shield LGPD — Lei Geral de Proteção de Dados

Isolamento de dados por cliente (um cliente não vê dados de outro). Controle de acesso granular por role. Logs de auditoria com IP para rastreabilidade. Exclusão lógica de dados (soft delete) preservando integridade referencial.

history Trilha de Auditoria

Logs append-only (imutáveis — não podem ser editados ou excluídos). Registro de: ação, tipo de recurso, ID do recurso, user_id, IP, timestamp e detalhes em JSON. Alertas automáticos para ações de falha.

Stack Tecnológica

PHP 8+
Backend + strict types
MySQL 8
InnoDB + FK
Tailwind CSS
M3 Design Tokens
Vanilla JS
Sem frameworks
Material Symbols
Ícones Google
PDO
Prepared statements
Session-based
Auth + CSRF tokens
XAMPP
Apache + PHP

Requisitos de Deploy

Mínimo
  • check PHP 8.1+
  • check MySQL 5.7+ ou MariaDB 10.3+
  • check Apache com mod_rewrite
  • check ext-pdo, ext-pdo_mysql
  • check 512MB RAM
Recomendado
  • check PHP 8.2+
  • check MySQL 8.0+
  • check HTTPS (Let's Encrypt)
  • check OPcache habilitado
  • check 2GB+ RAM

Pronto para conhecer o DocSystem?

Crie sua conta gratuita ou entre em contato para uma demonstração personalizada.