Este repositório é privado e destinado somente ao time autorizado da Norte MT Sistemas.
Não compartilhe código, credenciais, URLs internas, dumps de banco ou prints de operação fora dos canais oficiais.
- Uso estritamente interno e confidencial.
- Nunca versionar segredos reais em arquivos
.env, scripts ou pipelines. - Em incidentes de segurança, comunicar imediatamente os responsáveis técnicos.
Plataforma multi-tenant de atendimento WhatsApp da Norte MT Sistemas, com backend em Node.js + Express + TypeScript, frontend em Vue 3 e persistência em MariaDB. O projeto também integra n8n para automações e expõe a documentação da API via Swagger.
- O backend concentra autenticação, gestão da operação, tickets, fluxos e a integração simulada com a Evolution API.
- O frontend entrega o painel operacional, telas de login e cadastro, administração de usuários, instâncias WhatsApp, tickets e construtor visual de automações.
- O repositório foi organizado para execução local com Docker Compose e para deploy em ambiente com subdomínios separados.
- Frontend: Vue 3, Vite, Vue Router, Pinia, Tailwind CSS, Axios.
- Backend: Node.js, Express, TypeScript, Sequelize, JWT, Zod, Swagger UI.
- Banco: MariaDB.
- Automação: n8n.
- WhatsApp: Evolution API, atualmente com modo mock no backend.
- Infra: Docker, Docker Compose e pipelines de CI/CD.
- Guia de localizacao do projeto
- Modularizacao do projeto
- Arquitetura
- Decisoes arquiteturais
- UML e diagramas
- Operacao e confiabilidade
- Seguranca e LGPD
- Politica de privacidade - modelo
- Termos de uso - modelo
- DPA controlador/operador - modelo
- Procedimento de incidente
- Documentação detalhada
backend/: API, modelos, middlewares, controllers, serviços, testes e OpenAPI.frontend/: SPA em Vue 3 com layout, rotas, stores e builder de workflow.infrastructure/: scripts SQL e apoio de banco.prompts/: prompts de sistema usados pela solução.bot_data/: dados auxiliares gerados em ambiente local ou de operação.
- Copie o arquivo de variáveis de ambiente apropriado para
.enve ajuste os valores do banco, JWT, URLs e integrações. - Suba a stack com
docker compose -f docker-compose.local.yml up -d --build. - Acesse o frontend na porta configurada pelo compose local e a API em
/api/health. - O Swagger fica disponível em
/api/docse o JSON OpenAPI em/api/docs.json.
- O backend possui testes unitários e de integração com Jest e Supertest.
- O frontend possui testes unitários com Vitest, além de lint, build com Vite e validação de tipos com Vue TSC.
- Para validação local completa do frontend, execute
npm run test,npm run lintenpm run builddentro defrontend/.
As migrações são gerenciadas automaticamente com Sequelize Migrations:
- As migrações executam automaticamente no startup da aplicação
- Histórico completo é rastreado na tabela
sequelizemeta - Rollback seguro disponível com um único comando
# Ver status de todas as migrações
npm run migrate:status
# Executar migrações pendentes (manual)
npm run migrate
# Reverter última migração
npm run migrate:undo# Copiar template
cp backend/src/migrations/TEMPLATE.ts backend/src/migrations/$(date +%Y%m%d%H%M%S)-descricao.ts
# Implementar up() e down()
# Executar: npm run dev (executa automaticamente)📖 Documentação completa: docs/migracao-banco-dados.md
O projeto utiliza GitHub Actions com um fluxo simplificado:
- CI: build do backend, build do frontend e validacao do
docker-compose.simple.yml. - Deploy: workflow manual via SSH que atualiza o servidor e sobe a stack simples.
- Release Automática: Cria releases em tags
v*
📖 Documentação:
- WORKFLOWS.md - Guia de uso dos workflows
- DEPLOYMENT.md - Setup de secrets e configuração
Resumo do fluxo:
- Push/PR → CI ✅
- Actions → Deploy → Run workflow 🚀
- Servidor executa
git pulledocker compose ... up -d --build - Smoke test valida
/healthe/api/health
- A integração com a Evolution API está em modo mock no serviço de revolução, útil para desenvolvimento e testes locais.
- O construtor visual de workflows salva o modelo em persistência dedicada por fluxo no backend.
- O frontend usa token JWT em
localStoragee injeta automaticamente o cabeçalhoAuthorizationnas requisições. - A base de realtime com Socket.IO v4 está habilitada no backend (
/socket.iopor padrão) e o frontend conecta automaticamente na inicialização.
- Backend: inicializa Socket.IO junto do servidor HTTP e publica eventos
server:welcomeeserver:pong. - O handshake do Socket.IO exige JWT valido (mesmo token do login HTTP), enviado em
auth.tokenno cliente. - Conexoes autenticadas entram automaticamente nas salas por empresa e usuario (
company:{id}euser:{id}). - O cliente pode assinar uma sala de conversa com
client:join-ticketpara receber eventos segmentados por ticket. - Frontend: conecta com
socket.io-cliente exibe status no dashboard. - Eventos de dominio emitidos:
server:ticket.created,server:ticket.updatedeserver:message.created. - Variáveis opcionais de ambiente:
SOCKET_IO_PATH: caminho do endpoint Socket.IO no backend (padrão:/socket.io).VITE_SOCKET_URL: URL completa do servidor Socket.IO no frontend (padrão: origem atual da página).VITE_SOCKET_PATH: caminho do endpoint Socket.IO no frontend (padrão:/socket.io).VITE_DEBUG_SOCKET=true: habilita logs de debug no console do navegador.
- Swagger UI:
/api/docs - OpenAPI JSON:
/api/docs.json
- Consolidar as integrações reais com Evolution API e n8n.
- Expandir a cobertura de testes do frontend para componentes e fluxos completos de tela.