All Projects → Harry-027 → Go Notify

Harry-027 / Go Notify

Licence: mit
An email automation solution, written in Golang.

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Notify

Edgerealtimevideoanalytics
An example of using Redis Streams, RedisGears, RedisAI and RedisTimeSeries for Realtime Video Analytics (i.e. counting people)
Stars: ✭ 305 (+113.29%)
Mutual labels:  redis, prometheus, grafana
Bricks
A standard library for microservices.
Stars: ✭ 142 (-0.7%)
Mutual labels:  redis, postgres, prometheus
Grafana
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Stars: ✭ 45,930 (+32018.88%)
Mutual labels:  postgres, prometheus, grafana
Zenko
Zenko is the open source multi-cloud data controller: own and keep control of your data on any cloud.
Stars: ✭ 353 (+146.85%)
Mutual labels:  redis, prometheus, grafana
Elephant Shed
PostgreSQL Management Appliance
Stars: ✭ 146 (+2.1%)
Mutual labels:  postgres, prometheus, grafana
Catalyst
Typescript NodeJS Microservices Boilerplate with Generator CLI - Moleculer, GraphQL, REST, OAuth2, Jaeger, Grafana, Prometheus, Ory Hydra, Ory Keto w/ Access Control middleware, Moleculer-DB GraphQL mixin, Pug, Redis, sibling client repo (login, persistance layer, react-native-web, ios, android)
Stars: ✭ 30 (-79.02%)
Mutual labels:  redis, prometheus, grafana
Prometheus Course
Course files for Monitoring and Alerting with Prometheus
Stars: ✭ 97 (-32.17%)
Mutual labels:  prometheus, grafana
Iotstack
docker stack for getting started on IOT on the Raspberry PI
Stars: ✭ 1,383 (+867.13%)
Mutual labels:  postgres, grafana
Redis exporter
Prometheus Exporter for Redis Metrics. Supports Redis 2.x, 3.x, 4.x, 5.x and 6.x
Stars: ✭ 2,092 (+1362.94%)
Mutual labels:  redis, prometheus
Cloudprober
An active monitoring software to detect failures before your customers do.
Stars: ✭ 1,269 (+787.41%)
Mutual labels:  prometheus, grafana
Haproxy Configs
80+ HAProxy Configs for Hadoop, Big Data, NoSQL, Docker, Elasticsearch, SolrCloud, HBase, MySQL, PostgreSQL, Apache Drill, Hive, Presto, Impala, Hue, ZooKeeper, SSH, RabbitMQ, Redis, Riak, Cloudera, OpenTSDB, InfluxDB, Prometheus, Kibana, Graphite, Rancher etc.
Stars: ✭ 106 (-25.87%)
Mutual labels:  redis, prometheus
Heplify Server
HEP Capture Server
Stars: ✭ 110 (-23.08%)
Mutual labels:  prometheus, grafana
Slo Generator
Easy setup a service level objective using prometheus
Stars: ✭ 91 (-36.36%)
Mutual labels:  prometheus, grafana
Febs Cloud
基于Spring Cloud Hoxton.RELEASE、Spring Cloud OAuth2 & Spring Cloud Alibaba & Element 微服务权限系统,开箱即用。预览地址:https://cloud.mrbird.cn
Stars: ✭ 1,295 (+805.59%)
Mutual labels:  prometheus, grafana
Pingprom
Prometheus uptime monitoring quickstart
Stars: ✭ 107 (-25.17%)
Mutual labels:  prometheus, grafana
Docker Django Example
A production ready example Django app that's using Docker and Docker Compose.
Stars: ✭ 86 (-39.86%)
Mutual labels:  redis, postgres
Ethereum Staking Guide
Ethereum 2.0 Staking Guides
Stars: ✭ 116 (-18.88%)
Mutual labels:  prometheus, grafana
Jira Prometheus Exporter
Prometheus Exporter For JIRA
Stars: ✭ 113 (-20.98%)
Mutual labels:  prometheus, grafana
Mobc
A generic connection pool for Rust with async/await support
Stars: ✭ 141 (-1.4%)
Mutual labels:  redis, postgres
Slimmessagebus
Lightweight message bus interface for .NET (pub/sub and request-response) with transport plugins for popular message brokers.
Stars: ✭ 120 (-16.08%)
Mutual labels:  apache-kafka, redis

go-notify


An email automation solution written in Golang. It facilitate users to register, send & schedule custom HTML mails for their clients.

Built using rich tech-stack:


Architecture diagram:


Arch_Diagram

DB Schema:


DB_Schema

Features Included:


  • Authentication & authorization using JWT.
  • Swagger included, built using Swago
  • Full proof auth features - signup, login, update password, forgot password, logout.
  • Cors, Helmet, Api-rate limiter included as middleware from security perspective.
  • Users can register their clients & custom HTML templates.
  • Mail scheduling (daily, weekly, monthly) using cron jobs.
  • Subscription & Payment (payment has been stubbed for now and can be replaced with any suitable payment gateway).
  • Api-server can be consumed by any client-side API, however for easy interaction - CLI (built using Cobra) has been included.

Installation & setup :-


  • Go,Docker,Docker compose & Make should be pre-installed.
  • Clone the repository: git clone https://github.com/Harry-027/go-notify.git.
  • Run the command make download (this will install go modules).
  • Create a new file .env under root directory & copy the env variables from .sample-env. (Note that mailgun env variables should be replaced with original credentials. Rest may remain untouched)
  • Run the command make setup (this will start the required docker containers - postgres, redis, apache kafka & zoo-keeper).
  • Run the command docker ps to ensure all the four containers are up & running.
  • Open a new terminal & run the command make server to spin up the api server.
  • Open a new terminal & run the command make consumer to spin up the kafka consumer.
  • Open a new terminal & run the command make cronjob to start the cron processes.
  • Open a new terminal & run the command cli-go. This will install the go-notify cli on your machine.
  • Cli is now ready to operate. Run the command go-notify --help to explore various commands.

CLI

Swagger :-


Swagger

Monitoring (using Prometheus & Grafana):-


  • Before spinning up Prometheus & Grafana for monitoring, replace the HOST_IP variable (under monitoring/prometheus/config.yml) with your machine IP.
  • Run the command make monitor to start Api-server monitoring.
  • Once the containers - Prometheus & Grafana are up, visit http://localhost:3000 on browser for Grafana dashboard.
  • Default credentials for Grafana: username - 'admin' , password - 'admin'
  • Once logged into Grafana, visit settings to select prometheus data source as target to view the dashboard.

Grafana

Load Testing :-


  • Before running load tests, replace the hostip variable value with your machine ip, under loadtesting/tests/loadtests.js
  • Run the command make load-testing to run the load tests.

LoadTesting_results

Sample for a custom HTML received mail :-


Mail

Contributing 🍻


  • Performance improvements, bug fixes, better design approaches are welcome. Please discuss any changes by raising an issue, beforehand.

Maintainer 😎


Harish Bhawnani Linkedin Email

License


MIT © Harish Bhawnani

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].