~/bescript · vaka analizi
TEKNİK VAKA ANALİZİ · Ticari anlaşma kapsamında geliştirildi, kaynak kod kapalı

RPA · PYTHON · MASAÜSTÜ UYGULAMA

Teknik olmayan kullanıcıya teslim edilebilir bir otomasyon

Bir freelance müşteri için geliştirilen, tekrarlayan kayıt ve doğrulama süreçlerini otomatikleştiren masaüstü RPA yazılımı. Asıl mühendislik zorluğu otomasyonun kendisi değil, onu kurulum gerektirmeden ve donmayan bir arayüzle paketlemekti.

Rolüm
Tek geliştirici
Tip
Freelance · kapalı kaynak
Çekirdek
Python 3 · asyncio
Teslimat
Tek dosya EXE

Teknoloji

modüler bir python uygulaması

Otomasyon motoru Playwright'ın asenkron API'si üzerine kurulu. Arayüz ttkbootstrap ile yazıldı — modern görünümlü, responsive ve thread-safe bir Tkinter katmanı. Tüm işlem kayıtları CSV'ye loglanıyor, uygulama PyInstaller ile tek dosya haline getirilip müşteriye Python kurulumu gerektirmeden teslim ediliyor.

python 3asyncioplaywright ttkbootstrapthreadingpyinstaller csv logging

Çözülen mühendislik problemleri

asıl iş, iki farklı eşzamanlılık modelini aynı uygulamada barındırmaktı

1. Donmayan arayüz — thread ve asyncio bir arada

Zorluk

Tkinter kendi olay döngüsünü çalıştırır; asyncio da kendi event loop'unu ister. İkisi aynı thread'de çalışamaz — otomasyon başladığı anda arayüz kilitleniyordu.

Çözüm
  • İş mantığı ayrı bir thread'e taşındı, arayüz ana thread'de serbest bırakıldı.
  • O thread'in içinde bağımsız bir asyncio event loop kuruldu ve Playwright işlemleri oradan yürütüldü.
  • İlerleme bilgisi arayüze thread-safe biçimde aktarıldı; kullanıcı işlem sürerken pencereyi kullanmaya devam edebiliyor.

2. Sabit bekleme yerine akıllı bekleme

Zorluk

Sayfa yüklenme süreleri ağ koşullarına göre değişiyordu. Sabit sleep değerleri ya gereksiz yavaşlatıyor ya da eleman henüz gelmeden işlem yapıp hata veriyordu.

Çözüm
  • Statik beklemeler yerine dinamik eleman tespiti kullanıldı — sistem elemanın hazır olmasını bekler, bir saniye fazlasını değil.
  • Bu tek değişiklik hem toplam işlem süresini kısalttı hem de zamanlama kaynaklı hataları ortadan kaldırdı.

3. Hatadan kendi kendine dönebilmek

Zorluk

Yazılım teknik olmayan bir kullanıcıya teslim edilecekti. Bir adım hata verdiğinde kullanıcının müdahale etmesini beklemek gerçekçi değildi.

Çözüm
  • Başarısız adımlar üç kereye kadar otomatik yeniden denenir.
  • Kalıcı hatalar CSV log dosyasına zaman damgasıyla yazılır — kullanıcı sadece dosyayı gönderir, teşhis uzaktan yapılabilir.
  • Doğrulama kodları için sistem eş zamanlı olarak webmail'e bağlanır, gelen kutusunu dinler ve kodu regex ile ayrıştırır.

Arayüz

teknik olmayan kullanıcı için tasarlandı

Kullanıcı zamanlama ayarlarını, girdi dosyalarını ve çalışma parametrelerini arayüzden yönetiyor; ilerlemeyi gerçek zamanlı izliyor. Terminal ya da konfigürasyon dosyası bilgisi gerekmiyor.

Masaüstü uygulamanın grafik arayüzü
ttkbootstrap ile yazılan kontrol paneli

Masaüstü bir araca mı ihtiyacınız var?

Kurulum gerektirmeyen, tek dosya çalışan otomasyon araçları geliştiriyorum.