Skip to content

furkankayam/spring-batch-example

Repository files navigation

⚙️ Spring Batch Example

Project Architecture

Project Architecture

Project Summary:

  • Triggered within the campaign management processes, this module executes bulk email notifications to the target audience using the Spring Batch architecture. The system relies on the Chunk-Oriented Processing model to ensure resource optimization and transactional integrity. Each cycle processes data in blocks of 100 records , enabling high-volume email delivery in a performant and controlled manner while minimizing database load.


Tech Stack:

Java JavaScript Spring Boot Spring Batch Apache FreeMarker NextJS TailwindCSS Mapstruct Gradle Flyway PostgreSQL Open API Docker Docker Compsose



🚀 Setup

Database Configuration

  • PostgreSQL
    • URL: http://localhost:5432
    • Database: batch_db
    • Username: postgres
    • Password: postgres

Mail Configuration

# Mail Config
spring:
  mail:
    host: smtp.gmail.com
    port: 587
    username: <email>
    password: <password>
    properties:
      mail:
        smtp:
          auth: true
          starttls:
            enable: true

Start Services with Docker Compose

docker-compose up -d


📚 API Documentation

👥 User Management

➕ Create User

Create User

📋 Get Users

Get Users


📢 Campaign Management

➕ Create Campaign

Create Campaign

📤 Campaign Request

Campaign Request


📧 Email Operations

✉️ Email Preview

Email Preview


📖 OpenAPI Documentation

📄 OpenAPI Specification

OpenAPI


🐳 Docker Interface

🐋 Container Management

LazyDocker



📄 License

This project is licensed under the MIT License. See the LICENSE file for details

Created by Mehmet Furkan KAYA