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.
- 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.
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
- Java Development Kit (JDK) 21 or later
- Node.js and npm
- MySQL Database
git clone <repository-url>
cd "Email Schedular"Navigate to the backend directory:
cd backendConfiguration:
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:runThe backend server will start on http://localhost:8080.
Navigate to the frontend directory:
cd ../frontendInstall Dependencies:
npm installRun the Application:
npm startThe frontend application will start on http://localhost:3000.
- Register/Login: Create an account or log in to access the dashboard.
- Dashboard: View the summary of email campaigns (Sent, Scheduled, Failed).
- 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.
- Track Status: Monitor the status of your scheduled emails in real-time.
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