Kurumsal Ağ İçi Güvenli Dosya Transfer Sistemi (HızlıTransfer)
Herkese Merhaba. Ben Nurbanu Solak, Bilgisayar mühendisliği bölümü öğrencisiyim. Bu yazıda, Elfatek AR-GE departmanında yürüttüğüm staj programı kapsamında hayata geçirdiğimiz “HızlıTransfer” projesinin geliştirme süreçlerini, karşılaşılan problemleri ve uygulanan mimari çözümleri teknik bir perspektifle ele alacağım.
Problem Tanımı ve Proje Amacı Kurumsal ortamlarda büyük veri paketlerinin, proje dosyalarının veya gizlilik derecesine sahip dokümanların departmanlar arasında paylaşımı kritik bir operasyonel ihtiyaçtır. Açık bulut servisleri (Google Drive, WeTransfer vb.) kurum içi veri güvenliği politikaları (KVKK/ISMS) açısından her zaman uygun görülmemektedir. Harici donanım (USB vb.) kullanımı ise hız ve iş gücü kaybına yol açmaktadır. Bu projenin temel amacı; kurumun yerel ağı (LAN) üzerinde dışa kapalı olarak çalışan, güvenli, eşzamanlı ve yüksek performanslı bir masaüstü dosya paylaşım altyapısı kurmaktır.
Kullanılan Teknolojiler ve Sistem Mimarisi Proje, istemci-sunucu (client-server) mimarisine uygun olarak iki ana koldan geliştirilmiştir. Kullanıcı deneyimini maksimize etmek ve sistem kaynaklarına doğrudan erişim sağlamak amacıyla istemci (Frontend) tarafında Electron.js çerçevesi tercih edilmiştir. Bu sayede web tabanlı teknolojilerle yerel bir masaüstü uygulaması performansına ulaşılmıştır. Sunucu (Backend) tarafında ise veri güvenliği, eşzamanlı istek yönetimi ve kurumsal ölçeklenebilirlik gereksinimlerini karşılamak adına Java Spring Boot framework’ü kullanılmıştır. Veri kalıcılığı PostgreSQL ilişkisel veritabanı ile sağlanırken, veri akışı Basic Authentication protokolüyle güvence altına alınmıştır.
Uygulama İçi Modüller ve Sekmeli (Tab) Mimari Uygulama, kullanıcıların tüm operasyonları tek bir pencere üzerinden, sayfa yenilemesi olmadan (Single Page Application mantığıyla) yürütebilmesi için özel bir sekmeli yapı üzerine inşa edilmiştir:
Dosya Gönder (Ana Ekran): Kullanıcıların sistem diyaloğu üzerinden dosyalarını seçip, kayıtlı personelleri işaretleyerek transferi başlattığı ana modüldür. Ağ içinden kişiye gelen dosyalar da anlık olarak bu sekmenin altındaki “Gelen Kutusu”nda listelenir.

Gönderilenler: Kullanıcının geçmişe dönük dosya transferlerinin takip edildiği sekmedir. Kullanıcılar kime, hangi dosyayı gönderdiklerini görebilir ve ihtiyaç anında dosyanın indirme bağlantısını tek tıkla tekrar kopyalayabilirler.

Gruplarım (Grup Yönetimi – CRUD): Sürekli aynı kişileri seçme verimsizliğini ortadan kaldıran modüldür. Kullanıcılar Java REST API’leri (POST, PUT, DELETE) ile haberleşen bu sekme üzerinden “Tasarım Ekibi” gibi departman grupları tanımlayabilmekte, üye güncellemeleri yapabilmekte ve bu işlemleri anlık olarak arayüzde görüntüleyebilmektedir.

Ayarlar: Kullanıcıların e-posta (kullanıcı adı) ve şifre bilgilerini sayfa yenilenmesine gerek kalmadan veritabanı ile eşzamanlı (senkronize) olarak güncelleyebildikleri yetkilendirme modülüdür.

Eşzamanlı İletişim: WebSocket ve Native Bildirim Entegrasyonu Projenin bir diğer odak noktası olan “anlık durum bildirimleri”, STOMP ve WebSocket teknolojileriyle sağlanmıştır. Sunucu tabanlı bu çift yönlü iletişim kanalı sayesinde, bir dosya iletimi gerçekleştiğinde alıcı istemciye milisaniyeler içinde tetikleyici bir sinyal gönderilmektedir. Bu sinyal, doğrudan işletim sisteminin yerel bildirim servisini harekete geçirir. Electron’un IPC (Inter-Process Communication) mimarisi kullanılarak, gelen bildirime tıklandığında uygulamanın otomatik olarak odaklanması ve aktarılan verinin anında kullanıcı erişimine sunulması sağlanmıştır.
Güvenli Bağlantı (Link) Paylaşımı ve Deep Linking Entegrasyonu Sistemin esnekliğini artırmak ve ağ içindeki paylaşımları daha erişilebilir kılmak adına, her dosya transferi sonucunda sunucu tarafından benzersiz bir indirme bağlantısı (URL) üretilmektedir. Dosya gönderimi tamamlandığı anda bu bağlantı otomatik olarak kullanıcının panosuna kopyalanarak hızlı paylaşıma hazır hale getirilir. Bununla birlikte, Electron tarafında “Deep Linking” entegrasyonu gerçekleştirilmiştir. Kurum içi ağda bu linke tıklayan bir kullanıcının bilgisayarında HızlıTransfer uygulaması otomatik olarak uyanmakta, URL şemasını çözümleyerek yetki kontrolünü sağlamakta ve hedef dosyayı doğrudan indirmektedir. Bu mekanizma, dosya paylaşımını sadece uygulamanın arayüzü ile sınırlamayıp, kurum içi iletişim platformları (Teams, Outlook vb.) üzerinden de güvenle yürütülmesine olanak tanımaktadır.

Kopyalanan link başka bir kullanıcıya iletildiğinde tarayıcı aracılığı ile açılırsa, tekrar HızlıTransfer uygulamasına yönlendirilir.


Sonuç ve Kazanımlar Bu staj süreci, bir fikrin analiz aşamasından başlayarak canlı bir ürüne dönüşümünü bizzat yönettiğim tam kapsamlı bir mühendislik pratiği oldu. Sadece bir arayüz kodlamanın ötesinde; Java ve Node.js ekosistemlerini güvenli bir şekilde nasıl birleştirebileceğimi, ağ protokollerinin sınırlarını ve kullanıcı odaklı mimarinin önemini kavradım.
Süreç boyunca bilgi ve tecrübelerini esirgemeyen Elfatek AR-GE ekibine teşekkür ederim.