WeatherWidget, geçmiş 10 yıllık meteorolojik veriyi analiz ederek güncel hava tahminlerini tutarlılık yüzdesi ile birlikte sunan modern bir masaüstü widget uygulamasıdır.
Bu proje, geliştiricilerin ekip çalışması deneyimi kazanması ve teknik tecrübelerini artırması amacıyla hayata geçirilmiştir.
- Ekip projesi deneyimi kazanmak
- Veri işleme kütüphaneleri ile geçmiş yıllara ait ve gerçek bir hava durumu analiz sistemi kurmak
- Python ve PyQt5 teknolojilerini kullanarak masaüstü geliştirme becerilerini artırmak
- Şık, modern ve işlevsel bir masaüstü widget geliştirmek
- Dil & Framework: Python 3.11, PyQt5
- Veri İşleme: Pandas, NumPy, Scikit-learn
- Arayüz: PyQt5 tabanlı modern UI, Temalar
- Dağıtım:
build.batile.exeçıktısı üretimi
- 📊 Geçmişe Dayalı Analiz: Güncel hava durumunu geçmiş 10 yılın verileriyle kıyaslar
- 🌧️ Tutarlılık Yüzdesi: “Bugün yağmurlu (%88 tutarlılık)” gibi destekleyici etiketler üretir
- 🖥️ Modern Arayüz: Minimalist ve kullanıcı dostu tasarım
- 🎨 Tema Desteği: Dark ve Light mode seçenekleri
- 🔄 Esnek Kullanım: Widget farklı boyutlarda olabilir veya görev çubuğuna alınabilir
- 📷 Görsel Destek: Ekran görüntüleri ve gif örnekleri ile kullanım önizlemesi
git clone https://github.com/kullanici/weatherwidget.git
cd weatherwidget
pip install -r requirements.txt
python main.pypip install -r requirements.txt
python src/app.pybuild.batdosyasını çalıştırarak.exeçıktısını alın\- Üretilen
.exedosyasını çift tıklayarak uygulamayı çalıştırın
Bu yöntemde exe dosyasına tüm kütüphaneler + QSS temaları + ikonlar
gömülür,
ancak weather_prediction_model.joblib ayrı tutulur.
Böylece modeli gerektiğinde kolayca güncelleyebilirsiniz.
pip install pyinstaller
pyinstaller --onefile --noconsole src/app.py ^
--name WeatherWidget ^
--add-data "src/frontend/assets/styles_dark.qss;assets" ^
--add-data "src/frontend/assets/styles_light.qss;assets" ^
--add-data "src/frontend/assets/figma;figma" ^
--icon=src/frontend/assets/app.ico- Oluşan
dist/WeatherWidget.exedosyasını çalıştırın.\ weather_prediction_model.joblibdosyasını exe ile aynı klasöre koyun.\- Eğer model bulunamazsa, uygulama aynı klasörde bir
error.txtoluşturur ve
içindemodel.joblib bulunamadıuyarısı yer alır.
Bu yöntemde model de exe içine gömülür.
Tek dosya ile dağıtım yapılabilir ancak modeli güncellemek için exe'yi
yeniden üretmek gerekir.
pip install pyinstaller
pyinstaller --onefile --noconsole src/app.py ^
--name WeatherWidget ^
--add-data "src/frontend/views/weather_prediction_model.joblib;." ^
--add-data "src/frontend/assets/styles_dark.qss;assets" ^
--add-data "src/frontend/assets/styles_light.qss;assets" ^
--add-data "src/frontend/assets/figma;figma" ^
--icon=src/frontend/assets/app.icodist/WeatherWidget.exedosyasını doğrudan çalıştırın.\- Model exe içine gömülü olduğundan ayrıca kopyalamanız gerekmez.
- Windows için
--add-dataparametresinde ayraç;kullanılmalıdır.\ - Linux/Mac için
:kullanılmalıdır.\ app.icouygulama ikonunuzdur, yoksa çıkarabilirsiniz.
- Stil dosyaları (
styles_dark.qss,styles_light.qss) veassets/klasörü de--add-dataparametresi ile gömülmelidir. - Eğer tray ikonu veya görseller kullanılacaksa, ilgili yollar da eklenmelidir. Örnek:
--add-data "src/frontend/assets;frontend/assets"- Versiyon 1 (Model Hariç): Daha esnek, güncelleme kolay.
- Versiyon 2 (Model Dahil): Tek dosya, ama model güncellemesi için tekrar derleme gerek.
Projeye katkıda bulunmak isteyenlerin profesyonel süreçleri takip etmesi beklenir:
- Fork → Branch açma → Geliştirme yapma
- Pull request açma → Code review süreci
- Issue açma ve tartışma kurallarına uyma
weatherinsight/
│
├── docs/ # Dokümantasyon ve diyagramlar
│ └── screenshots/ # README için ekran görüntüleri
│
├── src/ # Kaynak kod
│ ├── backend/ # Veri işleme, modeller, analiz
│ │ └── .gitkeep # Yer tutucu (dosyalar eklendiğinde silin)
│ │
│ ├── frontend/ # PyQt5 arayüzü, temalar ve varlıklar
│ │ ├── themes/ # Koyu & Açık temalar
│ │ │ └── .gitkeep
│ │ └── assets/ # İkonlar, görseller
│ │ └── .gitkeep
│ │
│ └── main.py # Giriş noktası
│
├── tests/ # Birim testleri
│ └── .gitkeep
│
├── build/ # Derlenmiş çalıştırılabilir dosyalar (otomatik üretilir)
│ └── .gitkeep
│
├── requirements.txt # Python bağımlılıkları
├── build.bat # exe oluşturma scripti
├── README.md
└── LICENSE
- Bazı dizinlerde
placeholder.txtdosyası bulunabilir. - Bu dosyalar yalnızca klasör yapısının Git tarafından takip edilmesini sağlamak için eklenmiştir.
- Gerçek içerik eklendikten sonra bu dosyaların silinmesi gerekir.
Projeye katkıda bulunmak isteyenlerin profesyonel süreçleri takip etmesi beklenir:
- Fork → Branch açma → Geliştirme yapma
- Pull request açma → Code review süreci
- Issue açma ve tartışma kurallarına uyma
- Mert Taban – Data Analysis
- Umut Eren Demir – UI/UX Design
- Berat Tezer – Backend & Team Lead
Bu proje özel kullanım lisansı altındadır.
Kaynak kodun veya derlenmiş sürümlerin kullanımı, çoğaltılması ve dağıtılması yalnızca geliştirici ekibin yazılı izni ile mümkündür.
Tüm hakları saklıdır © 2025