{"id":19139721,"url":"https://github.com/ssssvio/api-envio-newsletter","last_synced_at":"2026-04-09T17:33:31.791Z","repository":{"id":199501716,"uuid":"701489227","full_name":"ssssvio/api-envio-newsletter","owner":"ssssvio","description":"This API of mine in NodeJs is very simple with personalized newsletter sending.","archived":false,"fork":false,"pushed_at":"2023-10-13T21:41:38.000Z","size":26,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-03T14:48:45.946Z","etag":null,"topics":["api-rest","express-js","joi-validation","node-js","postgresql"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ssssvio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2023-10-06T18:42:15.000Z","updated_at":"2023-10-13T21:15:34.000Z","dependencies_parsed_at":"2023-12-17T09:34:08.507Z","dependency_job_id":null,"html_url":"https://github.com/ssssvio/api-envio-newsletter","commit_stats":{"total_commits":4,"total_committers":2,"mean_commits":2.0,"dds":0.5,"last_synced_commit":"a1e686d7d309f3b138ed13d445491c3378dbda4b"},"previous_names":["ssssvio/api-envio-newsletter"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssssvio%2Fapi-envio-newsletter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssssvio%2Fapi-envio-newsletter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssssvio%2Fapi-envio-newsletter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssssvio%2Fapi-envio-newsletter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ssssvio","download_url":"https://codeload.github.com/ssssvio/api-envio-newsletter/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240221392,"owners_count":19767443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-rest","express-js","joi-validation","node-js","postgresql"],"created_at":"2024-11-09T07:14:51.704Z","updated_at":"2025-11-12T17:06:11.946Z","avatar_url":"https://github.com/ssssvio.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# API de Envio de Newsletter 📧\n\nBem-vindo à documentação da API de Envio de Newsletter! Esta API em Node.js permite que você crie e envie newsletters para seus assinantes de forma simples e eficaz.\n\n## Introdução\n\nUma Newsletter é um tipo de e-mail informativo com o objetivo de compartilhar informações recorrentes com os destinatários. Nossa API facilita o cadastro de assinantes e o envio de newsletters personalizadas.\n\n## Requisitos\n\nAntes de começar, certifique-se de que você possui o Node.js e o PostgreSQL instalados em seu ambiente de desenvolvimento.\n\nAlém disso, você precisará configurar o envio de e-mails com a SendGrid. Siga estas etapas:\n\n1. Crie uma conta na SendGrid em [https://sendgrid.com/](https://sendgrid.com/).\n\n2. Após criar sua conta, acesse o painel da SendGrid e obtenha suas chaves de API.\n\n3. Crie um arquivo `.env` na raiz do projeto e configure-o com as seguintes variáveis de ambiente:\n\n\nCertifique-se de substituir `SuaChaveDeAPISendGrid` pela chave de API que você obteve da SendGrid e `NomeRemetente` e `seu@email.com` pelas informações desejadas.\n\nAgora, sua API estará configurada para enviar e-mails usando a SendGrid.\n\n## Configuração\n\n1. Clone este repositório e instale as dependências usando o comando:\n\n   ```\n   npm install\n   ```\n\n2. Crie um banco de dados PostgreSQL chamado \"newsletter\" e uma tabela \"assinantes\" usando o seguinte SQL:\n\n   ```sql\n   CREATE DATABASE newsletter;\n\n   CREATE TABLE assinantes (\n       id SERIAL PRIMARY KEY,\n       email TEXT UNIQUE,\n       nome TEXT\n   );\n   ```\n\n3. Configure as variáveis de ambiente no arquivo `.env` com suas informações de conexão ao banco de dados e configurações de e-mail.\n\n## Executando a API\n\nApós configurar o ambiente e definir suas variáveis de ambiente, você pode iniciar a API usando o comando:\n\n```\nnpm run dev\n```\n`\u003cPORT\u003e` = 3000\n\nA API estará disponível em `http://localhost:\u003cPORT\u003e`, onde `\u003cPORT\u003e` é a porta configurada em suas variáveis de ambiente.\n\n## Uso\n\nA API possui dois principais endpoints:\n\n### 1. Cadastrar um Assinante\n\n- **Endpoint:** `/cadastrar-email`\n- **Método:** `POST`\n- **Descrição:** Registra o email e o nome de uma pessoa que deseja receber a Newsletter.\n- **Exemplo de Requisição:**\n  ```json\n  {\n      \"email\": \"exemplo@email.com\",\n      \"nome\": \"Nome do Assinante\"\n  }\n  ```\n\n### 2. Enviar uma Newsletter\n\n- **Endpoint:** `/enviar-newsletter`\n- **Método:** `GET`\n- **Descrição:** Envia um e-mail personalizado com o conteúdo da Newsletter para todos os assinantes cadastrados.\n- **Exemplo de Resposta de Sucesso:**\n  ```json\n  {\n      \"message\": \"Emails enviados com sucesso!\"\n  }\n  ```\n\nLembre-se de que o envio de newsletters é uma operação assíncrona e pode demorar algum tempo para ser concluído, dependendo do número de assinantes.\n\n\n## Contribuindo\n\nSinta-se à vontade para contribuir para o desenvolvimento desta API. Se você encontrar problemas ou tiver sugestões, abra uma \"branch\" e envie um \"pull request\" para colaborar.\n\n###### tags:  `Back-end` - `nodeJS` - `API REST`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssssvio%2Fapi-envio-newsletter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fssssvio%2Fapi-envio-newsletter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fssssvio%2Fapi-envio-newsletter/lists"}