Skip to main content

Introdução ao What's 360

O What's 360 é uma plataforma orientada ao canal WhatsApp, fornecendo estrutura para projetos de bots automatizados mais complexos, destacando o aquisição de cartão e o delivery.

Principais Funcionalidades​

  • 👌🏻 Fácil Visualização: Com uma série de visualizações já prontas basta acessar o conjunto de dados de interesse e receber as principais informações de forma simples e rápida.

  • 🦚 Personalização: Visões personalizadas podem ser criadas por cliente, atendendo as necessidades específicas.

  • 🧐 Tudo em um lugar só: Uma plataforma única para fazer as principais análises e tomada de decisão.

  • 📲 De qualquer dispositivo: Os gráficos são responsíveis e podem ser acessados e adaptados ao mobile.

Tecnologias e Ferramentas​

img img img img img

  • PHP: 7.4
  • Repositório git: NXWhats360/NXWhats360
  • Jira board: [P] What's 360
  • MySQL: 5.7
  • Laravel: 7

Visão Geral​

O Whats'360 trata-se de um produto que concentra experiências mais complexas de integração com o WhatsApp.

img

Início: a necessidade de negócio​

O Whatsapp vem se tornando um dos principais canais de comunicação de uma grande parcela da população e isso foi ainda mais acentuado com a pandemia. Vislumbrando essa oportunidade, o Whats360 nasceu com o intuito de dar suporte a operações mais complexas de integração, tendo como piloto o modo de Delivery.

As demandas iniciam-se no quadro [P] What'360 no JIRA onde se é criada a tarefa.

Controle e versionamento de código​

Com a tarefa em mãos cria-se uma nova branch no repositório git do produto, o mesmo estando localizado dentro do workspace SMARTNX e do projeto Whats360, com o nome de Whats360.

Dentro do repositório temos duas branches importantes:

  • qa: Onde está o código com as interações do QA.

  • develop: Onde está o código de homologação. As novas funcionalidades passam pelo processo de merge nesta branch para serem aprovadas.

  • master: Onde está o código de produção. As novas funcionalidades uma vez homologadas e aprovadas na develop vem para cá.

Delivery​

Este módulo consiste nas interações entre a plataforma do Whats360 e o Whatsapp criando um fluxo completo de compra de produtos e método de pagamento.

Atualmente está disponível uma integração de pagamento com a Vindi e a importação de produtos segue um modelo .CSV.

Interações​

O Whatsapp se comunica via API com o Whats360 por meio do fluxo criado na Huggy, utilizando-se a Zenvia como broker para fazer o intermédio de comunicação com o Facebook.

Setup​

Após o setup do git e bitbucket faça o clone do repositório:

git clone git@bitbucket.org:devsmartnx/nxwhats360.git

Entre na pasta nxwhats360:

cd nxwhats360

Copie o arquivo .env.example e renomeie para .env

cp ./.env.example ./.env

Abra o arquivo .env e faça as configurações que reflitam a estrutura de seu banco de dados:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=insight
DB_USERNAME=root
DB_PASSWORD=1234

Instale as dependências:

php composer install

Inicie o servidor:

php artisan serve

Fluxo de Trabalho​

Processo de Desenvolvimento​

img

Padrão de escrita: PSR-4

  • Definição de pronto:

    • Iteração concluída (Dev);
    • Testes unitários passando (Dev/QA);
    • Testes funcionais feitos e aprovados (QA);
    • Pull-request aceito (Dev).

Versionamento​

  • Branch master: ramificação com a versão atual do sistema;

  • Branch dev_master: ramificação com as novas funcionalidades, correções de bugs e melhorias do sistema;

    • Versão testada e estável;
    • Revisão de código antes do merge;
  • Branch dev_(#issue): versão onde são realizadas as iterações (sustentação e roadmap);

    • Deverá ser criada pelo desenvolvedor e seguir o padrão “dev_(#issue)”;
    • Como exemplo a tarefa apresentada na imagem a seguir, o nome da branch para esta iteração será “dev_gr83”.

img

  • Branch qa_master: ramificação padrão de QA que contém os testes caixa branca (unitários e de integração);

    • Testes passando;
    • Pull-request semanal na branch dev_master - (quarta-feira?);
    • Revisão de código antes do merge;
  • Branch qa_(#issue): versão criada para as iterações de QA (escrever novos testes, adaptação/correção de testes, etc.);

    • Deverá ser criada pelo QA ou desenvolvedor e seguir padrão “qa_(#issue);
    • Tendo como exemplo a imagem acima, com o código e descrição de uma tarefa, o nome da branch referente será “qa_gr83”;

A seguir, uma ilustração do modelo de versionamento proposto.

img

  • Modelo de versão do NX Whats 360: “0.0.0”

    • 0.0.0.X: o quarto dígito corresponde a iterações de manutenção corretiva, adaptativa ou preventiva relacionada a última publicação (bugs com alta prioridade e alta severidade, gerando indisponibilidade para algum o cliente);
    • 0.0.X.0: o terceiro dígito corresponde a publicação de iterações de manutenções, sejam corretivas ou preventivas dentro do planejamento seja uma sprint ou roadmap;
    • 0.X.0.0: o segundo dígito corresponde a publicação de novas funcionalidades;
    • X.0.0.0: o primeiro dígito corresponde a publicações históricas, como alteração de layout, fluxos de casos de uso ou mudanças de amplo impacto no sistema.

Onboarding​