Geçtiğimiz aylarda başlayan GitHub Finish-Up-A-Thon yarışması, bitirmeye niyetli projelerin hikâyelerini ortaya çıkardı. Bunlardan biri de, sadece bir Android telefonun Termux ortamında geliştirilen ve bir QR koduyla çoklu ödeme kanallarını destekleyen PayFusion AI oldu. Bu projenin hikâyesi, teknik zorlukların ötesinde, sınırlı kaynaklarla nasıl kaliteli çözümler üretilebileceğine dair önemli dersler içeriyor.
Mobil Geliştirmeden Üretime: Sıfırdan Bir QR Kod Ötesi
Proje, basit bir Flask QR kod üreticisinden başlayarak başladı. Ancak kısa sürede, kullanıcıların bir QR kodu tarayarak Alipay, WeChat, USDT ve PayPal gibi platformlar üzerinden ödeme yapmasını sağlayan çok kanallı bir sistem haline geldi. Geliştirici, bu dönüşüm sürecini şu şekilde özetliyor: "Başlangıçta sadece bir QR kod üreteci olarak düşündüğüm şey, zamanla gerçek zamanlı ödeme izleme, otomatik para transferi ve blok zinciri entegrasyonu olan karmaşık bir ödeme platformuna dönüştü."
Termux’un Sınırlarını Aşmak: Hatalardan Üretime
Android cihazlarda geliştirme yaparken karşılaşılan en büyük zorluklardan biri, Termux gibi terminal tabanlı ortamlarda bile stabil bir sistem oluşturabilmekti. Geliştirici, projenin ilk aşamalarında yaşadığı sorunları şöyle anlatıyor:
- Bağımlılık çakışmaları:
node_modulesvepackage-lock.jsondosyalarındaki bozulmuş kilit dosyaları nedeniyle sistem çökmeleri yaşandı. Çözüm olarak, tüm bağımlılıkları sıfırdan yeniden yüklemek ve önbelleği temizlemek gerekti. - Termux uyumluluğu: Yerel kütüphanelerdeki eksiklikler nedeniyle, örneğin
Pillowiçin gerekli olanlibjpeg-turbovelibpngpaketleri manuel olarak kurulmak zorunda kalındı. Ayrıca, sistem izleme modülündepsutilyerine Python’un yerleşikosvesubprocessmodülleri kullanıldı. - Blok zinciri entegrasyonu: Tron ağı için kullanılan
TronWebkütüphanesinin en son sürümü Termux’ta çalışmaması nedeniyle, stabil bir sürüme geri dönüldü ve adres üretim mantığı yeniden yazıldı.
Modüler Yapıya Geçiş: Kod Kalitesini Yükseltmek
Başlangıçta düzensiz bir şekilde yazılmış betikler, zamanla modüler bir mimariye evrildi. Proje, aşağıdaki bileşenlere ayrıldı:
bot.py: Telegram botunun etkileşim mantığını yöneten dosyaapp.py: Web arayüzünün Flask tabanlı arka planını oluşturan dosyapayment/: Çekirdek ödeme işlemlerini içeren dizincrypto/: Blok zinciri işlemlerini ve güvenlik kontrollerini barındıran dizin
Ayrıca, aiogram 3.7+ çerçevesi kullanılarak Telegram botunun etkileşimleri yeniden yapılandırıldı ve çevre değişkenleri yönetimiyle hassas bilgiler koddan tamamen ayrıştırıldı.
Üretime Hazır Bir Sistem: Testlerden Geçirilen Başarı
Bugün, PayFusion AI aşağıdaki özelliklerle üretime hazır bir sistem haline geldi:
- Bir QR kod, çoklu ödeme: Kullanıcıların cihazına ve tercihine göre ödeme kanallarına otomatik olarak yönlendiren dinamik QR kodlar
- Gerçek zamanlı AI izleme: Ödeme durumunu anında takip eden ve ardından gelen iş akışlarını tetikleyen yapay zekâ tabanlı izleme sistemi
- Otomatik para transferi: TRON ağı üzerinde USDT’nin otomatik olarak toplanmasını ve dağıtılmasını sağlayan motor
- Güvenlik testleri: Çevrimdışı imza ve kör imza mekanizmalarıyla blok zinciri güvenliğini sağlayan modüller
Sistem, Railway ve Render gibi bulut platformlarında kararlı bir şekilde çalışmakta ve Telegram botu 20’den fazla komut ile 80’den fazla özellik modülünü desteklemektedir.
Termux Kullanıcıları İçin Pratik İpuçları
Geliştirici, Termux’ta proje geliştirirken edindiği tecrübeleri dört temel ipucu halinde paylaşıyor:
- Yapı dizini olarak `$HOME` kullanın: Derleme sırasında yaşanan izin sorunlarını önlemek için proje dizinini
$HOMEaltında tutun ve paylaşımlı depolama alanına kopyalayın.
- Sistem kütüphanelerini kontrol edin: Derleme hatalarıyla karşılaştığınızda, ilk olarak
pkg installkomutuyla sistem kütüphanelerini güncellemeyi deneyin. Çoğunlukla, pip ile yüklemeye çalışmadan önce bu adım sorunu çözüyor.
- Bağımlılık sürümlerini sıkı tutun: Termux, standart Linux dağıtımlarından farklı çalıştığı için en yeni kütüphane sürümleri genellikle uyumsuzluk yaratabiliyor. Bu nedenle,
requirements.txtdosyasındaki bağımlılıkları sabitlemek önem taşıyor.
- Tek tıklı dağıtım betikleri yazın: "Yükle → Kontrol et → Yayınla" adımlarını tek bir komutla otomatikleştiren betikler oluşturarak, süreci basitleştirin ve zihinsel yükü azaltın.
Bitirmek, Yeniden Başlamak Demektir
PayFusion AI projesi, sadece bir ödeme sisteminden daha fazlası oldu. Geliştirici, projenin asıl değerini şöyle ifade ediyor: "Bu yarışma bana, kaynakların kısıtlı olduğu ortamlarda bile kaliteli mühendislik çözümleri üretebilmenin önemini gösterdi. Android telefonunuzla geliştirme yaparken, derleyici 50. kez hata verirken ya da dokümantasyon 'bu platformda desteklenmiyor' derken pes etmek yerine, sorunları çözmeye devam etmek—işte 'Bitirmek' denen şeyin özü bu."
Bitirmek, sadece bir projenin tamamlanması değil, aynı zamanda gelecekteki projeler için sağlam bir temel oluşturmaktır. Eğer siz de Termux gibi sınırlı ortamlarda geliştirme yapıyorsanız, umutsuzluğa kapılmadan önce bu ipuçlarını hatırlayın. Unutmayın: Her bitirilen proje, on taneye başlamaktan çok daha değerlidir.
Yapay zeka özeti
Android telefonla Termux’ta geliştirilen ve bir QR koduyla çoklu ödeme kanallarını destekleyen PayFusion AI’nin hikayesi ve Termux kullanıcıları için ipuçları. GitHub Finish-Up-A-Thon deneyimi.