Skip to content

Uma API Rest para envio de notificações via Whatsapp.

Notifications You must be signed in to change notification settings

eduhaag/notiway

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
Sorry, we had to truncate this directory to 1,000 files. 1 entries were omitted from the list.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo da Notiway

💻 Sobre o projeto

O Notiway é uma API Rest cujo seu objetivo principal é o envio de notificações via Whatsapp.

Aqui você encontra a API completa com todos recursos para gestão dos clientes na Notiway, além da própria estrutura de rotas para envio de Notificações para o Whasapp.

Para o envio das notificações, esta API necessida enviar requisições HTTP para um servidor rodando o WPPConnect.

Este projeto foi criado como forma de estudo de ferramentas e conceitos e não possui careter comercial.

🧰 Funcionalidades

  • CRUD de clients, consumers, users e senders;
  • Deve ser possível um usuário realizar a autenticação;
  • Recuperação de senha com token via e-mail;
  • Listagem de clients, consumers, users e senders;
  • Envio de mensagem de texto, imagem, audio, localização, contato, link, gifs e figurinhas através do Whatsapp;
  • Agendamento de envio das mensagens via Whatsapp;
  • Retentativa de envio no caso de erros;
  • CRUD de agendamento de mensagens;
  • Envio de e-mails para novos cadastros;
  • Comunicação via webhook com o WPPConnect e também para o front-end para atualização do QR-code de conexão com o Whatsapp;
  • Sistema de refresh token no controle de autenticação de usuários;
  • Documentar envio de mensages; (Documentação disponivel na rota / da api)
  • Documentar rotas de gestão da API.

🚀 Como executar o projeto

Pré-requisitos

Para executar o projeto, você vai precisar ter instalado em sua máquina as seguintes ferramentas: Git, Node.js. Além disto é bom ter um editor para trabalhar com o código como VSCode. Também é necessário inicializar o WPPConnect e passar via arquivo .env a URL de conexão e a secret do servidor. (documentação do WppConnect)

Clonando o repositório

# Clone o repositório
$ git clone [email protected]:eduhaag/notiway.git

# Acesse a página do projeto
$ cd notiway

# Instale as dependências
$ npm install

# Rode o projeto
$ npm run dev

# O servidor front-end será inicializado na porta 3333. Enviar requisições para http://localhost:5173.

🛠️ Tecnologias

  • Node;
  • Typescript;
  • Vite - Para agilizar o processo de criação e configuração do projeto;
  • Eslint - Utilitário de linting;
  • Babel - Transpilador Javascript;
  • Axios - Realiza a comunicação com o backend por meio de requisições HTTP;
  • Fastify - Um framework para arquitetura de servidores com Node;
  • Primas - Um ORM para estruturação de conexão com o banco de dados;
  • Sentry - Monitoramento de erros em produção;
  • Agenda.js - Uma biblioteca para agendamento de tarefas e organização de filas;
  • Bcryptjs - Utilizada na encriptação de senhas e geração de tokens;
  • DayJs - Uma biblioteca para manipulação de datas;
  • Handlebars - Linguagem de modelagem para criação de e-mails transacionais;
  • MongoDB - Banco de dados NoSQL utilizado na orquestração de filas e agendamentos;
  • NodeMailer - Modulo para envio de e-mails;
  • Socker.io - Utilizado na comunicação via web socket;
  • Zod - Biblioteca para validação esquema de dados recebidos nas requisições da API;
  • Vitest - Biblioteca para testes automatizados. (No projeto foi utilizado em testes unitários e e2e);
  • Supertest - Permite enviar requisições a API nos testes e2e;

Veja o arquivo package.json

Utilitários

💪 Como contribuir para o projeto

  1. Faça um fork do projeto.
  2. Crie uma nova branch com as suas alterações: git checkout -b my-feature
  3. Salve as alterações e crie uma mensagem de commit contando o que você fez: git commit -m "feature: My new feature"
  4. Envie as suas alterações: git push origin my-feature

📝 Licença

Este projeto está sobe a licença MIT.

About

Uma API Rest para envio de notificações via Whatsapp.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages