Java dilinde yazılmış, Web Arayüzüne sahip modüler ve genişletilebilir bir otomasyon sistemi.
- Görev Zamanlama: Belirtilen zaman aralıklarında görevleri otomatik çalıştırma
- Farklı Görev Türleri:
- Dosya İşlemleri (kopyalama, taşıma, silme, yedekleme)
- Veri İşleme (dönüştürme, analiz)
- Rapor Üretimi
- Sistem Komutları
- Çalışma Geçmişi: Tüm görev çalışmalarının kaydedilmesi
- Detaylı Loglama: Dosyaya ve konsola kaydetme
- Thread Pool: Eşzamanlı görev yürütme
- Modern Web Arayüzü: Responsive HTML5 + CSS3 + JavaScript
- İnteraktif Dashboard: Sistem durumu ve istatistikler
- Görev Yönetimi: Görevleri oluştur, çalıştır, iptal et
- Geçmiş İzleme: Tüm çalışmaların detaylı kaydı
- REST API: JSON tabanlı API endpoints
- Real-time Updates: Otomatik veri güncelleme
cd /Users/elis/Desktop/otomasyon
mvn clean compile
# Temel Demo
mvn exec:java -Dexec.mainClass="com.otomasyon.AutomationSystemDemo"
# Gerçek Dünya Örneği
mvn exec:java -Dexec.mainClass="com.otomasyon.RealWorldAutomationExample"cd /Users/elis/Desktop/otomasyon
# Web uygulamasını başlat
mvn spring-boot:run
# Veya
mvn exec:java -Dexec.mainClass="com.otomasyon.web.AutomationWebApplication"Tarayıcında açın: http://localhost:8080
cd /Users/elis/Desktop/otomasyon
# Docker image oluştur ve çalıştır
docker-compose up -d
# Logları göster
docker-compose logs -f automation-system
# Kapat
docker-compose downotomasyon/
├── src/
│ ├── main/
│ │ ├── java/com/otomasyon/
│ │ │ ├── core/ # Temel arayüzler (AutomationTask)
│ │ │ ├── scheduler/ # Görev zamanlama sistemi
│ │ │ ├── tasks/ # Görev implementasyonları
│ │ │ ├── config/ # JSON konfigürasyon
│ │ │ └── web/ # Spring Boot Web (YENİ)
│ │ │ ├── controller/ # REST & Web Controllers
│ │ │ └── config/ # Spring Configuration
│ │ └── resources/
│ │ ├── application.properties # Spring Boot config
│ │ ├── templates/ # HTML sayfaları
│ │ │ ├── dashboard.html
│ │ │ ├── tasks.html
│ │ │ ├── history.html
│ │ │ └── create-task.html
│ │ ├── static/
│ │ │ ├── css/style.css
│ │ │ └── js/script.js
│ │ └── logback.xml
│ └── test/
│ └── java/ # Test dosyaları
├── config/
│ └── automation-config.json # JSON konfigürasyonu
├── pom.xml # Maven (Spring Boot)
├── Dockerfile # Docker image
├── docker-compose.yml # Docker Compose
├── README.md # Ana dokümantasyon
├── WEB_GUIDE.md # Web arayüzü rehberi
└── QUICKSTART.md # Hızlı başlangıç
AutomationScheduler scheduler = new AutomationScheduler(4);
DataProcessingTask task = new DataProcessingTask(
"Metin Dönüştürme",
"merhaba",
DataProcessingTask.ProcessingType.UPPERCASE
);
TaskExecutionResult result = scheduler.executeNow(task);
System.out.println(result);ReportGenerationTask reportTask = new ReportGenerationTask(
"Rapor",
"output/rapor.txt"
);
// 5 saniye sonra çalıştır
scheduler.scheduleOnce(reportTask, 5, TimeUnit.SECONDS);DataProcessingTask dataTask = new DataProcessingTask(
"Periyodik İşlem",
"veri",
DataProcessingTask.ProcessingType.COUNT_CHARS
);
// Her 10 saniyede bir çalıştır
scheduler.scheduleRepeatedly(dataTask, 0, 10, TimeUnit.SECONDS);SystemCommandTask cmdTask = new SystemCommandTask(
"Dosya Listesi",
"ls -la"
);
scheduler.executeNow(cmdTask);Ana scheduler sınıfı. Görevleri zamanlama ve yürütmeden sorumludur.
Metodlar:
executeNow(AutomationTask): Görevi hemen çalıştırscheduleOnce(AutomationTask, long, TimeUnit): Bir kez zamanlascheduleRepeatedly(AutomationTask, long, long, TimeUnit): Periyodik çalıştırscheduleWithFixedDelay(AutomationTask, long, long, TimeUnit): Sabit gecikmeli çalıştırcancel(String): Görevi iptal etshutdown(): Scheduler'ı kapat
- COPY: Dosya kopyala
- MOVE: Dosya taşı
- DELETE: Dosya sil
- CREATE_BACKUP: Yedek oluştur
- UPPERCASE: Büyük harfe çevir
- LOWERCASE: Küçük harfe çevir
- REVERSE: Tersine çevir
- COUNT_CHARS: Karakter sayısını bul
Otomatik rapor oluşturur
Sistem komutlarını çalıştırır
Loglar konsola ve logs/automation.log dosyasına yazılır.
Loglama seviyesi logback.xml dosyasından değiştirilebilir.
Kendi görev türünü eklemek için BaseAutomationTask sınıfını extend edin:
public class MyCustomTask extends BaseAutomationTask {
public MyCustomTask(String name) {
super(name, "Açıklama");
}
@Override
public void execute() throws Exception {
logTaskInfo("Özel görev çalışıyor");
// Görev mantığı burada
}
}- Java 11+
- SLF4J & Logback
- Quartz Scheduler (isteğe bağlı)
- Gson (JSON işlemleri için)
MIT License