API e regras de negócio da plataforma Omnichannel
Go to file
Rafael Lopes d39a03c05f
Some checks are pending
Deploy Dev / deploy (push) Waiting to run
Merge branch 'dev' into feature/meta-whatsapp-api
2026-06-18 13:53:48 -03:00
.gitea/workflows FIX: Corrige caminho do Workflow 2026-04-02 16:38:42 -03:00
scripts FEAT: Implementa controle de notas de agentes e contatos de clientes 2026-05-19 17:58:48 -03:00
src Merge branch 'dev' into feature/meta-whatsapp-api 2026-06-18 13:53:48 -03:00
.env.example FEAT: Implementada segurança JWT e controle de acesso 2026-05-29 12:13:44 -03:00
.gitignore CHORE: Atualizado gitignore do backend 2026-05-27 17:02:05 -03:00
Dockerfile CI/CD: Permitindo que o docker instale o chromium em qualquer ambiente 2026-06-10 18:42:09 -03:00
nest-cli.json FEAT: Implementa módulo de autenticação com JWT 2026-05-08 17:10:50 -03:00
package-lock.json FEAT: Implementada segurança JWT e controle de acesso 2026-05-29 12:13:44 -03:00
package.json CI/CD: Ajustado Para rodar com docker 2026-06-10 18:33:20 -03:00
README.md CHORE: Release versão 1.0.0 2026-06-09 18:14:55 -03:00
test-api.js FEAT: Implementa chat funcional Whatsapp com atribuição de usuario 2026-05-18 11:14:17 -03:00
test-chats.js FEAT: Implementa chat funcional Whatsapp com atribuição de usuario 2026-05-18 11:14:17 -03:00
tsconfig.build.json FEAT: Implementa módulo de autenticação com JWT 2026-05-08 17:10:50 -03:00
tsconfig.json FEAT: Implementa módulo de autenticação com JWT 2026-05-08 17:10:50 -03:00

Omnichannel Backend

Node.js NestJS TypeScript PostgreSQL Socket.IO JWT WhatsApp

Backend da plataforma Omnichannel da Sothis, responsavel por autenticacao, atendimento, integracao com WhatsApp, gestao administrativa, contatos, base de conhecimento e servicos de apoio ao painel web.

Este repositorio contem apenas a API. Para subir o projeto completo com frontend, backend e configuracao de deploy, utilize o repositorio de orquestracao:

https://chaleiradev.sothistelecom.com/Sothis/omnichannel-deploy

Stack

  • Node.js
  • NestJS
  • TypeScript
  • PostgreSQL
  • Socket.IO
  • whatsapp-web.js, com Puppeteer/Chrome para controlar o WhatsApp Web
  • JSON Web Token para autenticacao
  • LDAP/AD e Microsoft OAuth como provedores de login configuraveis

Documentacao da API

A documentacao detalhada das rotas fica disponivel no Swagger do backend no ambiente publicado.

Para documentacao tecnica complementar do backend, decisoes, modulos e operacao, acesse a wiki:

https://chaleiradev.sothistelecom.com/Sothis/omnichannel-backend/wiki

Execucao local

Instale as dependencias:

npm install

Crie o arquivo de ambiente a partir do exemplo:

cp .env.example .env.development

Configure as variaveis de banco, JWT, CORS e integracoes no .env.development.

Para usar o canal WhatsApp, o backend tambem precisa conseguir iniciar Chrome/Chromium.

O whatsapp-web.js usa Puppeteer para abrir o WhatsApp Web em modo headless, autenticar por QR Code e manter a sessao local em whatsapp-session.

Em ambiente Docker/producao, persista esse diretorio em volume para nao perder a sessao a cada recriacao do container.

Execute em modo desenvolvimento:

npm run dev

Por padrao, a API usa a porta configurada em PORT ou BACKEND_PORT. Se nenhuma variavel for definida, utiliza 3001.

Build e producao

Gere o build:

npm run build

Execute a versao compilada:

npm start

Estrutura principal

  • src/infra: configuracao, banco de dados, logger e infraestrutura compartilhada.
  • src/modules/auth: autenticacao, JWT, LDAP/AD e Microsoft OAuth.
  • src/modules/admin: recursos administrativos, base de conhecimento, contatos e controles de acesso.
  • src/modules/whatsapp: conexao WhatsApp, QR Code, mensagens, transferencia e eventos em tempo real.
  • src/modules/attendance: apoio as regras de atendimento.
  • src/modules/call, src/modules/chat e src/modules/home: modulos de apoio as telas e fluxos do frontend.

Observacoes

  • O banco de dados nao e criado por este repositorio. A configuracao deve apontar para uma instancia PostgreSQL existente.
  • Arquivos locais como .env*, logs, dist, dumps e sessoes do WhatsApp ficam fora do Git.
  • Para operacao completa, deploy e atualizacao em producao, consulte o repositorio omnichannel-deploy.