Skip to content

codedbyelif/otomasyon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Otomasyon Sistemi

Java dilinde yazılmış, Web Arayüzüne sahip modüler ve genişletilebilir bir otomasyon sistemi.

✨ Özellikler

Backend Özellikleri

  • 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

Frontend Özellikleri (YENİ!)

  • 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

Hızlı Başlangıç

CLI Modu (Komut Satırı)

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"

🌐 Web Modu (Tarayıcı)

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

🐳 Docker Modu

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 down

Proje Yapısı

otomasyon/
├── 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ıç

Örnek Kullanım

1. Basit Görevi Hemen Çalıştır

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);

2. Görevi Belirtilen Zaman Sonra Çalıştır

ReportGenerationTask reportTask = new ReportGenerationTask(
    "Rapor",
    "output/rapor.txt"
);

// 5 saniye sonra çalıştır
scheduler.scheduleOnce(reportTask, 5, TimeUnit.SECONDS);

3. Periyodik Görev

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);

4. Sistem Komutu Çalıştır

SystemCommandTask cmdTask = new SystemCommandTask(
    "Dosya Listesi",
    "ls -la"
);

scheduler.executeNow(cmdTask);

Bileşenler

AutomationScheduler

Ana scheduler sınıfı. Görevleri zamanlama ve yürütmeden sorumludur.

Metodlar:

  • executeNow(AutomationTask): Görevi hemen çalıştır
  • scheduleOnce(AutomationTask, long, TimeUnit): Bir kez zamanla
  • scheduleRepeatedly(AutomationTask, long, long, TimeUnit): Periyodik çalıştır
  • scheduleWithFixedDelay(AutomationTask, long, long, TimeUnit): Sabit gecikmeli çalıştır
  • cancel(String): Görevi iptal et
  • shutdown(): Scheduler'ı kapat

Görev Türleri

FileOperationTask

  • COPY: Dosya kopyala
  • MOVE: Dosya taşı
  • DELETE: Dosya sil
  • CREATE_BACKUP: Yedek oluştur

DataProcessingTask

  • UPPERCASE: Büyük harfe çevir
  • LOWERCASE: Küçük harfe çevir
  • REVERSE: Tersine çevir
  • COUNT_CHARS: Karakter sayısını bul

ReportGenerationTask

Otomatik rapor oluşturur

SystemCommandTask

Sistem komutlarını çalıştırır

Loglama

Loglar konsola ve logs/automation.log dosyasına yazılır.

Loglama seviyesi logback.xml dosyasından değiştirilebilir.

Genişletme

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
    }
}

Bağımlılıklar

  • Java 11+
  • SLF4J & Logback
  • Quartz Scheduler (isteğe bağlı)
  • Gson (JSON işlemleri için)

Lisans

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors