Veri Bilimi / Web Uygulaması
CSV yükleyip keşifsel veri analizini tarayıcıda bitiren, FastAPI ve React ile yazılmış çift dilli uygulama.
Primary visual / 0201 / Problem
Yeni bir veri setine başlarken ilk iş hep aynı: satır sütun say, tiplere bak, eksikleri bul, birkaç dağılım ve korelasyon çiz. Bu kodu her projede neredeyse aynısıyla yeniden yazıyordum ve çıktı notebook'un içinde kalıyordu. Bu ilk bakışı bir kere yazıp her dosyada kullanmak, grafik çizmeyi de kod yazmadan yapabilmek istedim.
02 / Ne yapıyor
CSV'yi yükleyince bu ilk bakış hazır geliyor: profil, eksikler, korelasyon, aykırı değerler. Grafik için kod yazmıyorsunuz, sütunları seçip çiziyorsunuz; rapor da tek HTML dosyası olarak iniyor.
- Kodlama, ayraç ve başlık satırı tespiti; her karar değiştirilebilir
- Sütun tipleri dtype'a değil anlama göre çıkarılıyor
- Sütun bazında profil: dağılım, eksik, aykırı, örnek değerler
- Korelasyon matrisi; ölçü her sütun çifti için ayrı seçiliyor
- Eksik veri yapısı ve dört ayrı aykırı değer yöntemi
- Hedef analizi: sınıf dengesi ve değişken sıralaması
- Zaman serisi: STL ayrıştırması, ACF/PACF, boşluk raporu
- Grafik oluşturucu; toplama sunucuda, veri CSV olarak iniyor
- Geri alınabilir temizleme tarifleri ve üretilen pandas/sklearn kodu
- Train/test bölme ve iki set arasında kayma karşılaştırması
- Kural tabanlı model önerisi; hiçbir model eğitilmiyor
- Ağ gerektirmeyen tek dosyalık HTML rapor; arayüz ve rapor TR/EN
03 / Kararlar
- 01Grafikler
Hangi grafiğin çizilebileceği sunucuda tek yerde tanımlı.
İki sütun seçince hangi grafik türlerinin uygun olduğu sunucuda tek bir listede duruyor; arayüz bu listeyi alıp kalanını kapatıyor, böylece iki taraf birbirinden ayrı düşmüyor. Toplama işi pandas'ta yapılıyor, tarayıcıya sadece çizilecek noktalar gidiyor; büyük dosyada bile grafik beklemeden geliyor. Her grafiğin arkasındaki sayılar CSV olarak indirilebiliyor.
- 02İki dil
Sunucu hazır cümle göndermiyor.
Sunucudan "şu sütunun %12'si boş" gibi hazır bir metin gelmiyor; sadece bulgunun türü ve sayıları geliyor, cümleyi arayüz kuruyor. Böylece Türkçe ve İngilizce için iki ayrı metin listesi tutmam gerekmedi, birini güncelleyip diğerini unutma derdi de yok. İndirilen rapor da aynı metinleri kullandığı için ekranda ne yazıyorsa raporda da o yazıyor.
- 03Model önerisi
Model önerisi için arka planda hiçbir şey eğitilmiyor.
Uygulama "buna şununla başla" diyor ama bunu deneyerek bulmuyor; öneriler veri profilinden çıkan sabit kurallar. Böyle olunca aynı veri her seferinde aynı cevabı veriyor, cevap için beklemiyorsunuz ve her kuralı testle kontrol edebiliyorum.
- 04Üretilen kod
Arayüzde yaptığınız temizlik pandas koduna dönüşüyor.
Eksikleri doldurmak, sütun tipini değiştirmek, aykırıları kırpmak gibi arayüzde uyguladığınız adımlar pandas ve scikit-learn koduna çevriliyor; aynı işi kendi notebook'unuzda tekrar edebiliyorsunuz. Kodu arayüz ürettiği için içindeki yorum satırları da o an seçili olan dilde geliyor.
- 05Dağıtım
API dışarıya port açmıyor.
Arayüz Vercel'de, API kendi sunucumda Cloudflare Tunnel arkasında. Bağlantıyı tünel içeriden kurduğu için dışarıdan ulaşılabilen bir port yok. Uygulamanın internete çıkışı da kapalı, dosya sistemi salt okunur; yazabildiği tek yer yüklenen veri setlerinin durduğu klasör.
- 06Erişim
Davet kodu hem giriş hem kimlik.
Uygulamaya girmek için kişiye özel bir davet kodu gerekiyor. Kod sadece içeri almıyor, kimin girdiğini de söylüyor: hangi cihazdan girerseniz girin kendi çalışma alanınız açılıyor, kimse başkasının veri setini görmüyor. Birinin erişimini kapatmak için kodu listeden silmem yetiyor.
04 / Gallery
Proje görselleri







Sonraki proje