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.