Skip to content

Repository files navigation

WPP Sync

Aplicação para gerenciamento colaborativo de conversas do WhatsApp. Cada workspace possui uma instância independente do WhatsApp Web, permitindo que vários usuários compartilhem o mesmo atendimento simultaneamente.

Warning

Este projeto está em fase inicial de desenvolvimento. Funcionalidades, estrutura, contratos da API e instruções de implantação ainda podem mudar sem aviso. Não é recomendado utilizá-lo em produção neste momento.

Tecnologias

  • React, Vite e Tailwind CSS no client
  • Fastify no server
  • Prisma e PostgreSQL no banco de dados
  • TypeScript
  • pnpm workspaces e Turborepo
  • dotenvx para carregar variáveis de ambiente
  • Docker Compose para o PostgreSQL local

Requisitos

Antes de começar, instale:

  • Node.js 22 ou superior
  • pnpm 11
  • Docker com Docker Compose

Configuração local

  1. Clone o repositório e acesse a pasta do projeto:
git clone https://github.com/ImString/wpp-sync
cd wpp-sync
  1. Instale as dependências:
pnpm install
  1. Crie os arquivos de ambiente a partir do exemplo:
cp .env.example .env
cp .env.example .env.development

No PowerShell:

Copy-Item .env.example .env
Copy-Item .env.example .env.development

Revise os valores antes de continuar, principalmente as credenciais do PostgreSQL e as portas das aplicações. Os arquivos .env não devem ser enviados para o Git.

  1. Inicie o PostgreSQL:
docker compose up -d postgres
  1. Gere o Prisma Client e sincronize o schema de desenvolvimento:
pnpm db:generate
pnpm db:push:dev
  1. Inicie o projeto:
pnpm dev

Por padrão, os serviços ficam disponíveis em:

Também é possível iniciar cada aplicação separadamente:

pnpm dev:client
pnpm dev:server

Comandos disponíveis

Comando Descrição
pnpm dev Inicia as aplicações em modo de desenvolvimento
pnpm dev:client Inicia somente o client
pnpm dev:server Inicia somente o server
pnpm build Gera o build de produção do monorepo
pnpm start Inicia os artefatos de produção após o build
pnpm db:generate Gera o Prisma Client
pnpm db:push:dev Sincroniza o schema usando .env.development
pnpm db:push Sincroniza o schema usando .env
pnpm db:studio:dev Abre o Prisma Studio em desenvolvimento
pnpm db:studio Abre o Prisma Studio usando o ambiente padrão

Build de produção

Configure o arquivo .env com os valores do ambiente de produção e execute:

pnpm install --frozen-lockfile
pnpm build

Os principais artefatos serão gerados em:

apps/client/dist/       Aplicação web estática
apps/server/dist/       Server compilado
packages/database/dist/ Prisma Client compilado
packages/shared/dist/   Pacote compartilhado compilado

Para testar o build localmente:

pnpm start

Hospedagem

Client

O conteúdo de apps/client/dist pode ser publicado em qualquer hospedagem de arquivos estáticos, CDN ou servidor web. Configure o fallback para index.html quando forem adicionadas rotas no lado do client.

Server

O server precisa de Node.js, das dependências do workspace e das variáveis presentes no .env. Após instalar e buildar o monorepo, execute:

pnpm --filter @wppsync/server start

Banco de dados

Utilize uma instância PostgreSQL acessível pelo server e configure DATABASE_URL. Antes de uma implantação real, recomenda-se adotar migrations versionadas do Prisma no lugar de depender somente de prisma db push.

Nota sobre o desenvolvimento

O front-end atual está sendo desenvolvido com o auxílio de ferramentas de inteligência artificial e funciona como uma implementação inicial da interface. Futuramente, ele será revisado e reescrito.

Toda a arquitetura e a implementação do back-end foram desenvolvidas integralmente pelo autor do projeto, sem geração de código por inteligência artificial.

Licença

Este projeto está configurado sob a licença MIT.

About

Open-source multi-workspace chat platform with WhatsApp and external web chat integrations.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages