Skip to content

Commit

Permalink
Update README
Browse files Browse the repository at this point in the history
  • Loading branch information
jpmoura committed Jul 12, 2020
1 parent 7063615 commit 37cafe6
Showing 1 changed file with 24 additions and 14 deletions.
38 changes: 24 additions & 14 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,24 +1,34 @@
# TOTVS Fullstack Challenge - Backend
# WhatsApp Simple CRM 🤝
[![.NET Core 3.1 Badge](https://img.shields.io/badge/-Core%203.1-5C2D91?style=flat-square&logo=.NET&logoColor=white&link=https://dotnet.microsoft.com/download)](https://dotnet.microsoft.com/download) [![WhatsApp Web Badge](https://img.shields.io/badge/-WhatsApp%20Web-25D366?style=flat-square&logo=WhatsApp&logoColor=white&link=https://web.whatsapp.com/)](https://web.whatsapp.com/) [![Microsoft Excel Badge](https://img.shields.io/badge/-Microsoft%20Excel-217346?style=flat-square&logo=Microsoft%20Excel&logoColor=white&link=https://office.live.com/start/Excel.aspx)](https://office.live.com/start/Excel.aspx) [![Version Badge](https://img.shields.io/github/v/release/jpedro/whatsapp-simple-crm)](https://github.com/jpmoura/whatsapp-simple-crm)

[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=jpmoura_TotvsFullstackChalleng&metric=bugs)](https://sonarcloud.io/dashboard?id=jpmoura_TotvsFullstackChalleng)
[![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=jpmoura_TotvsFullstackChalleng&metric=code_smells)](https://sonarcloud.io/dashboard?id=jpmoura_TotvsFullstackChalleng)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=jpmoura_TotvsFullstackChalleng&metric=coverage)](https://sonarcloud.io/dashboard?id=jpmoura_TotvsFullstackChalleng)
[![Maintainability Rating](https://sonarcloud.io/api/project_badges/measure?project=jpmoura_TotvsFullstackChalleng&metric=sqale_rating)](https://sonarcloud.io/dashboard?id=jpmoura_TotvsFullstackChalleng)
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=jpmoura_TotvsFullstackChalleng&metric=alert_status)](https://sonarcloud.io/dashboard?id=jpmoura_TotvsFullstackChalleng)
[![Reliability Rating](https://sonarcloud.io/api/project_badges/measure?project=jpmoura_TotvsFullstackChalleng&metric=reliability_rating)](https://sonarcloud.io/dashboard?id=jpmoura_TotvsFullstackChalleng)
[![Technical Debt](https://sonarcloud.io/api/project_badges/measure?project=jpmoura_TotvsFullstackChalleng&metric=sqale_index)](https://sonarcloud.io/dashboard?id=jpmoura_TotvsFullstackChalleng)
[![Vulnerabilities](https://sonarcloud.io/api/project_badges/measure?project=jpmoura_TotvsFullstackChalleng&metric=vulnerabilities)](https://sonarcloud.io/dashboard?id=jpmoura_TotvsFullstackChalleng)
Esse projeto se trata de uma aplicação de console multiplataforma construída com .NET Core que visa automatizar o envio de mensagens via [WhatsApp Web](https://web.whatsapp.com/).

Como parte do desafio _fullstack_, para o _backend_ foi criada uma API REST em C# usando [.NET Core 3.1](https://docs.microsoft.com/en-us/dotnet/core/whats-new/dotnet-core-3-1) e [ASP.NET Core](https://docs.microsoft.com/en-us/aspnet/core/?view=aspnetcore-3.1) persistindo dados com [MongoDB](https://www.mongodb.com/).

Essa API também conta com uma rota de documentação via [Swagger](https://swagger.io/) que pode ser acessada no endpoint `\swagger` no endereço que a API está hospedada.
Inicialmente ele foi desenvolvido tendo em vista uma comunicação diária com clientes, onde existe a necessidade de um vendedor de enviar um resumo do status dos pedidos de vários clientes. Como a [Business API do WhatsApp](https://www.whatsapp.com/business/api) não atendia aos requisitos necessários, a criação desse projeto tornou-se necessária.

## 1. Instruções

Para que o programa funcione corretamente, é necessário que exista um arquivo XLSX com o nome **igual** a `comunicações.xlsx`.

A estrutura da planilha é simples, sendo:

| Nome do Contato | Mensagem a ser enviada |
|--|--|
| Cliente Exemplo | Oi cliente exemplo, seu pedido já foi enviado |

Cada linha deve ter em sua primeira coluna o nome do contato ao qual a mensagem será enviada, exatamente como aparece no [WhatsApp Web](https://web.whatsapp.com/), ou seja, com a mesma escrita da agenda do usuário no seu dispositivo móvel.

**Não é necessário a inclusão de cabeçalhos**, uma vez que todas as linhas serão consideradas já como uma comunicação a ser realizada.

Com o arquivo `comunicações.xlsx` criado, basta colocá-lo no mesmo diretório (pasta) do programa e então executar o próprio programa. Ele irá abrir uma nova janela do navegador Chrome, onde será necessária a única interação por parte do usuário, que é [permitir o uso do WhatsApp Web](https://faq.whatsapp.com/general/download-and-installation/how-to-log-in-or-out).

Após a sincronização o programa irá se encarregar de enviar as mensagens para os contatos presentes no arquivo. Após feito os envios, o próprio programa se encarrega de fazer o _logout_ do [WhatsApp Web](https://web.whatsapp.com/).

Toda execução do programa gera um novo arquivo (caso ele já não exista) chamado `WhatsApp.SimpleCRM.logsAAAAMMDD.txt` onde contém informações sobre a execução do mesmo, como erros que ocorreram, por exemplo. Ele é útil para a realização de análise de erros durante a execução e comportamento do programa.

## 2. TODO

1. Testes automatizados
1. Testes unitários
2. Flexibilização de configurações como caminho do arquivo da planilha e ativação/desativação de log bem como o caminho do arquivo
3. Uso de um repositório ou serviço de log remoto (e.g Splunk, Firebase)
4. Tradução dos comentários par ainglês para facilitar a contribuição de terceiros
4. Tradução dos comentários e README para o inglês para facilitar a contribuição
5. Flexibilização de formatos aceitos (e.g. CSV)

0 comments on commit 37cafe6

Please sign in to comment.