Skip to content

AkashDas-AI/Email-Automation-Reminder-System

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Email Automation & Reminder System

📌 Project Overview

This project implements a production-style Email Automation & Reminder System designed to automate reminder workflows, scheduled notifications, recurring alerts, and campaign-based communication pipelines using Python.

The objective is to simulate a real-world workflow automation platform used in domains such as:

  • HR onboarding workflows
  • Invoice reminder systems
  • Webinar notification pipelines
  • Operations automation
  • Productivity engineering
  • Business communication systems

The system follows a modular workflow where reminder data is:

→ Generated → Validated → Preprocessed → Scheduled → Processed by Worker Engines → Rendered using Jinja2 Templates → Delivered / Simulated → Logged & Reported → Visualized in Dashboard Analytics

This reflects industry-grade backend automation architectures used in workflow orchestration, scheduling systems, productivity platforms, and business process automation environments.


📊 Results & Outputs

This section summarizes the key outputs generated from the automation pipeline. All results are stored inside the outputs/ directory for reproducibility.


🔹 Synthetic Workflow Dataset Generation

Generated datasets:

  • data/raw/contacts.csv
  • data/raw/reminders.csv
  • data/raw/campaigns.csv
  • data/raw/templates.csv

These datasets simulate:

  • Automated reminder workflows
  • Campaign-based email pipelines
  • HR onboarding notifications
  • Webinar reminders
  • Invoice follow-up systems

Key observations:

  • Realistic business-style workflow simulation
  • Scheduler-ready reminder pipelines
  • Modular synthetic data generation
  • Repeatable workflow testing environment

🔹 Data Preprocessing & Validation

Generated processed datasets:

  • data/processed/cleaned_contacts.csv
  • data/processed/processed_reminders.csv

The preprocessing pipeline performs:

  • Email validation
  • Duplicate removal
  • Datetime validation
  • Reminder normalization
  • Workflow sanitization

This ensures:

  • Scheduler stability
  • Reliable downstream execution
  • Production-style data hygiene
  • Safe workflow processing

🔹 Dry-Run Workflow Execution

The system includes a secure dry-run execution mode that simulates:

  • Reminder execution
  • Email delivery workflows
  • Worker processing
  • SMTP execution
  • Reporting pipelines

without sending real emails.

The execution flow follows:

Scheduler → Worker Engine → Jinja2 Template Rendering → SMTP Simulation → Logging → Report Generation

This functionality is useful for:

  • Safe testing
  • Local development
  • GitHub demonstrations
  • Portfolio showcasing
  • Workflow debugging

🔹 Reporting & Analytics

Generated reports:

  • outputs/reports/sent_report.csv
  • outputs/reports/failed_report.csv
  • outputs/reports/delivery_status.csv
  • outputs/reports/campaign_summary.csv
  • outputs/reports/reminder_summary.csv

Generated Excel export:

  • outputs/exports/email_activity_export.xlsx

The reporting pipeline provides:

  • Delivery tracking
  • Workflow analytics
  • Campaign summaries
  • Reminder execution insights
  • Failure monitoring

🔹 Logging & Observability

Generated logs:

  • logs/app.log
  • logs/scheduler.log
  • logs/sent_emails.log
  • logs/failed_emails.log

The logging layer tracks:

  • Scheduler execution
  • Reminder processing
  • Workflow failures
  • SMTP events
  • Operational diagnostics

🔹 Premium Streamlit Dashboard

The project includes a Power BI–style Streamlit dashboard for workflow monitoring and operational analytics.

Dashboard capabilities:

  • KPI cards
  • Delivery monitoring
  • Campaign analytics
  • Reminder intelligence
  • Workflow health tracking
  • Log inspection
  • Interactive Plotly visualizations

📊 Dashboard Preview

Dashboard


🛠 Tools & Technologies

  • Python
  • Pandas
  • SQLite
  • APScheduler
  • smtplib
  • Jinja2
  • Streamlit
  • Plotly
  • openpyxl
  • email-validator

▶️ How to Run

1. Clone or Download the Project

2. Install Dependencies

pip install -r requirements.txt

3. Configure Environment Variables

Create a .env file:

SMTP_EMAIL=your_email@example.com
SMTP_PASSWORD=your_password
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
DRY_RUN=True

4. Run Complete Automation Pipeline

python main.py

5. Launch Streamlit Dashboard

streamlit run app/streamlit_app.py

📂 Project Structure

Email-Automation-Reminder-System/
│
├── app/
│   ├── streamlit_app.py
│   └── dashboard_utils.py
│
├── config/
│   ├── settings.py
│   └── logging_config.yaml
│
├── data/
│   ├── raw/
│   ├── processed/
│   └── README.md
│
├── db/
│   └── email_automation.db
│
├── logs/
│
├── outputs/
│   ├── reports/
│   ├── exports/
│   └── screenshots/
│
├── src/
│   ├── utils.py
│   ├── validators.py
│   ├── logger_config.py
│   ├── database.py
│   ├── csv_handler.py
│   ├── preprocess.py
│   ├── data_generator.py
│   ├── template_engine.py
│   ├── email_sender.py
│   ├── dry_run.py
│   ├── worker.py
│   ├── scheduler_engine.py
│   └── report_generator.py
│
├── templates/
│
├── .env
├── .env.example
├── .gitignore
├── main.py
├── requirements.txt
├── README.md
├── LICENSE
└── architecture.txt

📌 Key Highlights

  • Modular backend automation pipeline
  • Scheduler → Worker execution architecture
  • Jinja2-based dynamic email rendering
  • Safe dry-run workflow simulation
  • SQLite workflow persistence
  • Reporting & observability system
  • Premium Power BI–style dashboard
  • Production-style folder organization

📌 Author

Akash Das

About

Production-style backend automation platform for scheduled reminders, recurring email workflows, reporting, observability, and Power BI-style dashboard analytics using Python, APScheduler, SQLite, Streamlit, and SMTP.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors