/Email-Dashboard

📪 An interactive emailing management service with scheduling, templating, tracking and A/B testing.

Primary LanguageRubyMIT LicenseMIT

Report bug | Request feature | Help issues | 🇨🇳[简体中文]


Go Report Card

Email-Dashboard is an easy way to manage your outgoing emails from your apps. From creating and sending your emails to monitoring and managing their stats, you can do really useful things with Email-Dashboard without worried about time zone disaverage. You can 🔗explore Email-Dashboard docs.

💢 Table of content

🚻 For whom?

🌏 If you need to send automatic emails without worried about time zone,
🔍 If you need to track your emails and analyse your results to follow better strategies,
📊 If you need to monitoring your activities,
📑 If you want to use email templates,
🕵️ If you need to A/B testing,
💯 And if you want to do all of this easily,

Then you're at the right place. Email Dashboard builded for you! 🎉

👀 Code overview

🔸 The REST API builded with superfast language 🔗golang.
🔸 The Dashboard builded with fastest development framework 🔗Rails
🔸 Front-end framework 🔗uikit using in the dashboard.

☑ Features

  • Monitor email activities that your service sent.
  • Interactive templates.
  • Multiple SMTP support.
  • Scheduled delivery with time zone.
  • Perform / Cancel scheduled activities optionally.
  • Mobile UI
  • Email tracking.
  • A/B testing.

🔱 Deployment

Debian

1- Install Docker

▶️ Install the most recent version of the Docker Engine for your platform using the 🔗official Docker releases, which can also be installed using:

wget -qO- https://get.docker.com/ | sh

▶️ Execute this line to allow docker to execute without being root

sudo usermod -aG docker ${USER}

▶️ Logout, then login again. Permissions should be applied.

2- Install Docker Compose

▶️ Install Docker Compose from the 🔗official page, or manually run:

curl -L "https://github.com/docker/compose/releases/download/1.11.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

3- Create data folders

 mkdir -p /datadrive/mysql && mkdir -p /datadrive/data/redis

4- Clone repo

 git clone https://github.com/Email-Dashboard/Email-Dashboard.git

▶️ Update environment variables with your variables https://github.com/Email-Dashboard/Email-Dashboard/blob/master/.env

  docker-compose build
  docker-compose up -d

💻 Development

macOS

Install and start Docker, check 🔗 docker-ce-desktop-mac.

▶️ Create Datafolders

mkdir -p ~/datadrive/ed/mysql && mkdir -p ~/datadrive/ed/redis

▶️ Clone the repo

git clone https://github.com/Email-Dashboard/Email-Dashboard.git

▶️ Update mac username in docker-compose-dev.yml in line 7 and line 27

/Users/MacUserName/datadrive/ed/mysql:/var/lib/mysql # update MacUserName with yours

▶️ Start

docker-compose -f docker-compose-dev.yml build
docker-compose -f docker-compose-dev.yml up

▶️ Dashboard url: http://localhost:3000
▶️ Make API requests to http://localhost:8080

Debian

Install and start Docker:

wget -qO- https://get.docker.com/ | sh

▶️ Execute this line to allow docker to execute without being root

sudo usermod -aG docker ${USER} # Logout, then login again. Permissions should be applied.

▶️ Create Datafolders

mkdir -p /datadrive/data/mysql && mkdir -p /datadrive/data/redis

▶️ Clone the repo

git clone https://github.com/Email-Dashboard/Email-Dashboard.git

▶️ Update line 7 and line 27 in docker-compose-dev.yml to:

-'/datadrive/data/mysql:/var/lib/mysql'
...
- '/datadrive/data/redis:/data'

▶️ Start

docker-compose -f docker-compose-dev.yml build
docker-compose -f docker-compose-dev.yml up

▶️ Dashboard url: http://localhost:3000
▶️ Make API requests to http://localhost:8080

🏆 Usage

1- In Dashboard

Using dashboard is really easy, like playing PUBG! You can do it any time without any effort. Because our first aim is make some time for our community with our dashboard. So, UI and dashboard is friendly as much as and we will make it better.

🔸 Add your SMTP Settings
🔸 Create email template with 🔗handlebars variables.
🔸 Create notification. See, easy peasy!

2- Posting to REST API

POST https://api.{{yourhost}}/api/v3/notifications/{{notification-slug}}

Authorization: Token {{AccountToken}}

{
   "variables":{
      "button_name": "Click me!",
      "name": "John"
   },
   "email": {
      "to": ["test@example.com", "second-to@example.com"],
      "cc": ["cc-test@example.com"],
      "reply_to": ["reply-to@example.com"],
      "from": "myapp@example.com"
   },
   "delivery": { # optional
     "time": "21:00",
     "date": "2018-09-22",
     "zone": "Europe/Istanbul"
   }
}

For more specified usage you can follow 🔗step by step instructions in docs.

💝 Contributing

Please read our 🔗contribution guidelines. We are grateful for all contributions! 🙏 With following our 🔗rules of the discussions, you can contribute many of way. Our 🔗issue tracker is the preferred channel for bug reports, features requests and submitting pull requests. We utilized several 🔗labels to help organize and identify issues. You can start with there! Also if you want to add some new feature:

  1. Clone or fork the project (git clone https://github.com/Email-Dashboard/Email-Dashboard)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

🔎 But before opening a feature request, please take a moment to find out whether your idea fits with the scope and aims of the project. It's up to you to make a strong case to convince the project's developers of the merits of this feature. So, you can provide as much detail and context as possible.

📝 Authors


Sahin Boydas
Product
LinkedIn

Muhammet
Lead Developer
Github

Sadik
Developer
Github

Tommy Yang
Developer
Github blog

🎓 License

This program is a free and open source software. You can redistribute it and/or modify it under the terms of the license provided in the 🔗LICENSE file. Use of this software is subject to important terms and conditions as set forth in the 🔗LICENSE file.

🔍 Acknowledgement

If you liked our dashboard, please give us a "Star" ⭐. Your support is what keep us moving forward and delivering happiness to you! Thank's a million, you're our Clark Kent/Kara Danvers! In case of any questions or concerns, feel free to contact us anytime. Btw you can see our guilds from our 🔗credit content 😊