Documentação — Ecosistema SouCannabis
Projeto Ecosistema para Gerenciamento de Associações Terapêuticas de Cannabis Medicinal, interligando Cadastramento, Directus, Docuseal e Chatwoot.
00 - Início
Este projeto é um Ecosistema para Gerenciamento de Associações Terapêuticas de Cannabis Medicinal.
Desenvolvido pela Associação Sou Cannabis https://soucannabis.ong.br
Todos os sistemas do Ecosistema SouCannabis são Open Source e são interligados através do Cadastramento de Associados, uma estrutura completa para armazenamento de dados de associados, assinatura de termos de adesão, suporte para conversas por Whats’app e Email em um só canal para o time de acolhimento.
O ecossistema conta com quatro principais softwares:
– Cadastramento
Um formulário de cadastro criado através dos parâmetros observados no fluxo de cadastro de associados da Associação Sou Cannabis, tendo a funcionalidade de observar em qual passo do cadastro o associado se encontra, se ele apenas preencher os dados, se ele enviou os documentos, se ele assinou o termo de adesão e através disso poder auxiliar no seu processo de cadastramento.
https://github.com/soucannabis/ecosistemasoucannabis
https://github.com/soucannabis/ecosistemasoucannabis-server
– Directus
É um gerenciador de banco de dados de objetos que através de uma API robusta, armazena todos os dados dos associados no sistema, com ele é possível organizar, visualizar e editar todos os dados através de um layout simples e amigável. O Directus também pode ser usado de forma ‘headless’, permitindo que seu layout e suas funcionalidades sejam recriadas em outros sistemas através de uma conexão de API.
https://github.com/directus/directus
– Docuseal
É um sistema para gerenciamento de assinatura de termos de adesão online, que permite criar automaticamente um termo de adesão quando o associado preencher seus dados no formulário da cadastro.
https://github.com/docusealco/docuseal
– Chatwoot
É um sistema de gerenciamento de conversas, nele é possível configurar uma API não oficial do WhatsApp, permitindo ter vários atendentes em apenas um só número, organizando as conversas em categorias e distribuindo para os atendentes disponíveis.
01 - Introdução e Instalação de Programas Base
Introdução:
Todos os sistemas possuem três formas de instalação:
- Instalação manual em servidor Linux Ubuntu
- Instação via Docker em qualquer servidor
- Instalação via Ralway.app Server
Instalação manual: Para instalar Manualmente ou via Docker os softwares, Directus, Chatwoot e Docuseal, consulte o link do github na Home. Todos eles possuem uma grande comunidade assim como documentação de instalação em diversos servidores.
Atenção: O Chatwoot possui duas API’s, como se fossem plug-ins, que fazem a conexão com API não oficial do WhatsApp. A primeira, whatsapp-api, conecta com a API Baileys, que retorna os dados do Whats’app para a segunda API, a chatwoot-codechat, que faz a conexão com o Chatwoot. Consulte os links dos repositórios para mais detalhes sobre a configuração.
O Chatwoot é indicado para mais de 2 atendentes simultâneos.
Deploy on
Railway.app é um servidor que possui todos os softwares do Ecosistema SouCannabis, que podem ser criadaos através dos Railway Templates, permitindo instalar cada aplicação em poucos cliques. Caso opte pela instalação via Railway, faça o deploy clicando nos botões abaixo.
Para criar uma conta no Railway, você precisa informar seu Cartão de Crédito, porém terá o limite de $5 doláres por mês de consumo gratuito, sendo cobrado apenas quando execer este limite, que é o suficiente para rodar uma versão de teste do Ecosistema.
Guia de Instalação
O primeiro software a ser instalado é o Directus, seja no seu servidor ou através do Railway, ele precisa ser o primeiro da lista.
Ao fazer Deploy do Directus no Railway.app, não esquece de definir ADMIN_EMAIL variável de ambiente. Após a instalação a senha de acesso será criada na variavel de ambiente ADMIN_PASSWORD.
Segundo você instala Docuseal
Para instalar Docuseal via Railwapp, você precisa definir a variavel de ambiente SECRET_KEY_BASE através de um hexadecimal aleatório. Isso serve como chave de criptografia dos documentos.
Se você estiver usando um sistema Linux basta digitar openssl rand -hex 64 no terminal e copiar o código.
Se estiver usando outros sistemas, acesse: https://www.uuidtools.com
Gere uma chave aleatória e preencha no Railway.
Depois Chatwoot
Para instalar Chatwoot, não há necessidade de criar variaveis de ambiente.
-> Após a instalação do softwares, siga para o próximo passo para obter os tokens de acesso aos aplicativos para fazer a conexão com o sistema de cadastro.
-> Consulte https://docs.railway.app/guides/public-networking para criar dóminios personalizados para suas aplicações, por padrão o Railway.app cria endereços de URL de acordo com o nome dos projetos.
02 - Autenticação
Para fazer a conexão dos sistemas com o cadastramento é preciso obter os tokens de acesso de cada aplicativo.
No Directus:
Clique no ícone do usuário no Menu Lateral. Role a página para baixo até o campo Token. Defina um novo Token de Acesso e salve.
No Docuseal:
Clique em Settings, no topo da página, depois em API. Crie um X-Auth-Token.
No Chatwoot:
Clique no icone do usuário no Menu Lateral, ao abrir as configurações vá para o final de página e copie o token gerado.
03 - Variáveis de Ambiente do Sistema
As Variáveis de Ambiente são quem fazem a conexão entre os sistemas com o cadastramento de associados. Se você fizer a instação em seus servidor, você precisa informar todas as Variáveis de Ambiente corretamente como informado abaixo. Ao instalar via Railwayapp, quase todas as variaveis já estão configuradas automaticamente.
-> Como a instalação do Chatwoot é opicional, as variaveis de ambiente precisam ser informada no Railwayapp. <-
Variáveis do Front-end:
REACT_APP_URL= //URL de instalação do Cadastramento
REACT_APP_SERVER_URL= //URL de instalação do Cadastramento Server
REACT_APP_SERVER_API_TOKEN= //Cadastramento Server API Token
REACT_APP_DIRECTUS_API_URL= //URL do Directus
REACT_APP_DIRECTUS_API_TOKEN= //Token do Directus
REACT_APP_DOCUSEAL_URL= //URL de instalação do Docuseal
REACT_APP_PASS_ENCRYPT= //Senha aleatória para criação de criptografia
WDS_SOCKET_PORT=0 //Variavel para funcionamento correto de Websockets
Variáveis do Back-end:
DIRECTUS_API_URL= //URL do Directus
DIRECTUS_API_TOKEN= //Token do Directus
CORS= // URL do Cadstramento
PASS_ENCRYPT= //Senha aleatória para criação de criptografia
PORT=8055 #Porta do Servidor, por padrão 8055
Se tiver o Chatwoot
CHATWOOT_URL= //Chatwoot URL
CHATWOOT_API_URL= //URL da API do Whats’app
CHATWOOT_INSTANCE_NAME= //Nome da Instancia
CHATWOOT_API_KEY= //Chatwoot API key
CHANNEL_ID= // Canal de atendimento no Chatwoot
CHATWOOT_ACCOUNT_ID= //Número da conta no Chatwoot
CHATWOOT_TOKEN= // Token do Chatwoot
04 - Configuração Directus Database
Para que o banco de dados funcione corretamente é preciso criar algumas tabelas para receber os dados do usuário, para fazer isso basta acessar o link abaixo:
-> Criar Banco de Dados pelo Glitch <-
Crie um conta no Glitch.
Ao acessar o código em index.js, informe a Url do Directus e o Token de Acesso.
Em seguida abra o
Digite npm install para instalar os pacotes.
Após a instalação digite npm start para rodar a configuração do banco de dados.
Pronto, agora o Directus está configurado para receber os associados.
O próximo passo é fazer Login no Directus.
Ao logar clique no ícone
e depois no banco de dados Users_API, clicando no ícone
,
crie um novo Usuário de API.
Digite apenas Nome e Email, o TOKEN será criado automaticamente.
Guarde este Token, ele será usando na instalação do Cadastro de Associados
05 - Instalação do Cadastramento
Agora que você já tem todos os dados de autenticação podemos instalar o sistema de cadastramento.
IMPORTANTE: Após instalar o Cadastramento Server, entre nas configurações do Docuseal/Webhooks e informe o endereço de webhook {URL_DO_BACKEND/api/docuseal/assign-contracts}, isso server para que o Cadastramento receba a notificação de assinatura do termo pelo Associado.
Instalação Com Railway:
Ao fazer o Deploy com Railway, você precisa configurar 5 variaveis de ambiente, como mostrado no servidor.
Front-end
REACT_APP_SERVER_API_TOKEN -> Informe o Token de acesso gerado em Users_Api
Back-end
PASS_ENCRYPT -> Defina uma senha aleatória, essa senha serve como chave de criptografia das senhas das contas dos associados
DIRECTUS_API_URL -> Informe a URL de instalação do Directus
DIRECTUS_API_TOKEN -> Informe o Token de acesso do Directus
DOCUSEAL_API_URL -> Informe a URL de instalação do Docuseal
DOCUSEAL_API_KEY – > Informe o Token de acesso do Docuseal
Ao fazer o deploy, o Cadastramento de Associados se conecta aos demais softwares formando o Ecosistema.
Instalação Manutal do Cadastramento:
git clone https://github.com/soucannabisdev/ecosistemasoucannabis
cd ecosistemasoucannabis
npm install
Crie um arquivo .env com as seguintes variaveis de ambiente
npm start
REACT_APP_URL= //URL de instalação do Cadastramento
REACT_APP_SERVER_URL= //URL de instalação do Cadastramento Server
REACT_APP_SERVER_API_TOKEN= //Cadastramento Server API Token
REACT_APP_DIRECTUS_API_URL= //URL do Directus
REACT_APP_DIRECTUS_API_TOKEN= //Token do Directus
REACT_APP_DOCUSEAL_URL= //URL de instalação do Docuseal
REACT_APP_PASS_ENCRYPT= //Senha aleatória para criação de criptografia
WDS_SOCKET_PORT=0 //Variavel para funcionamento correto de Websockets
Instalação do Servidor:
git clone https://github.com/soucannabisdev/ecosistemasoucannabis-server
cd ecosistemasoucannabis-server
npm install
Crie um arquivo .env com as seguintes variaveis de ambiente
npm start
DIRECTUS_API_URL= //URL do Directus
DIRECTUS_API_TOKEN= //Token do Directus
CORS= // URL do Cadstramento
PASS_ENCRYPT= //Senha aleatória para criação de criptografia
PORT=8055 #Porta do Servidor
Se tiver Chatwoot Instalado
CHATWOOT_URL= //Chatwoot URL
CHATWOOT_API_URL= //URL da API do Whats’app
CHATWOOT_INSTANCE_NAME= //Nome da Instancia
CHATWOOT_API_KEY= //Chatwoot API key
CHANNEL_ID= // Canal de atendimento no Chatwoot
CHATWOOT_ACCOUNT_ID= //Número da conta no Chatwoot
CHATWOOT_TOKEN= // Token do Chatwoot