Skip to content

DeviceDidWhat/EMAIL_SCHEDULER

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Email Scheduler Application

A full-stack automated email scheduling system designed to manage bulk communication campaigns efficiently. This application allows users to schedule personalized emails, track delivery status, and visualize campaign performance through an interactive dashboard.

🚀 Features

  • Bulk Email Scheduling: Upload Excel/CSV files to send personalized emails to multiple recipients.
  • Dynamic Templating: Support for placeholders (e.g., {Name}, {organization}) that are dynamically replaced with data from the uploaded file.
  • Automated Follow-ups: Schedule follow-up emails to be sent automatically if the initial email fails or based on specific triggers.
  • Real-time Analytics: Interactive dashboard visualizing sent, scheduled, and failed emails using charts.
  • Secure Authentication: Role-based access control using JWT (JSON Web Tokens) and Spring Security.
  • Failure Handling: Automatic tracking of failed emails with options to retry.

🛠️ Tech Stack

Backend:

  • Language: Java 21
  • Framework: Spring Boot 3.4.1
  • Security: Spring Security, JWT
  • Email: JavaMailSender (SMTP)
  • Scheduling: Spring TaskScheduler
  • Data Processing: Apache POI (for Excel/CSV parsing)
  • Database: MySQL (Cloud-hosted on Aiven)

Frontend:

  • Framework: React.js
  • Styling: Tailwind CSS, Bootstrap
  • Charts: Chart.js, React-Chartjs-2
  • HTTP Client: Axios
  • Notifications: SweetAlert2

⚙️ Prerequisites

  • Java Development Kit (JDK) 21 or later
  • Node.js and npm
  • MySQL Database

📥 Installation & Setup

1. Clone the Repository

git clone <repository-url>
cd "Email Schedular"

2. Backend Setup

Navigate to the backend directory:

cd backend

Configuration: Open src/main/resources/application.properties and update the following configurations with your credentials:

# Database Configuration
spring.datasource.url=jdbc:mysql://<YOUR_DB_HOST>:<PORT>/<DB_NAME>
spring.datasource.username=<YOUR_DB_USERNAME>
spring.datasource.password=<YOUR_DB_PASSWORD>

# Email Configuration (SMTP)
spring.mail.host=smtp.gmail.com
spring.mail.username=<YOUR_EMAIL>
spring.mail.password=<YOUR_APP_PASSWORD>

Run the Application:

./mvnw spring-boot:run

The backend server will start on http://localhost:8080.

3. Frontend Setup

Navigate to the frontend directory:

cd ../frontend

Install Dependencies:

npm install

Run the Application:

npm start

The frontend application will start on http://localhost:3000.

🖥️ Usage

  1. Register/Login: Create an account or log in to access the dashboard.
  2. Dashboard: View the summary of email campaigns (Sent, Scheduled, Failed).
  3. Schedule Email:
    • Upload an Excel file containing recipient details.
    • Compose your email using the template placeholders.
    • Set the date and time for the email to be sent.
  4. Track Status: Monitor the status of your scheduled emails in real-time.

📂 Project Structure

Email Schedular/
├── backend/            # Spring Boot Application
│   ├── src/main/java   # Source code (Controllers, Services, Models)
│   └── src/main/resources # Configuration files
├── frontend/           # React Application
│   ├── src/components  # React Components (Dashboard, Forms)
│   └── public          # Static assets
└── README.md           # Project Documentation

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors