Skip to content

emrebaranarca/water-watch

Repository files navigation

💧 Suyu İzle - Türkiye Baraj Doluluk Takip Sistemi

Netlify Status License: MIT PRs Welcome

Türkiye'deki baraj doluluk oranlarını gerçek zamanlı takip eden ve "Tahmini Kalan Gün" hesaplaması yapan açık kaynaklı bir web uygulaması.

🌐 Canlı Demo: suyuizle.netlify.app

🎯 Proje Amacı

Türkiye, su stresi yaşayan ülkeler arasında yer almaktadır. Bu proje, vatandaşların su durumunu kolayca takip edebilmesi ve su tasarrufu bilincinin artırılması amacıyla gönüllü olarak geliştirilmiştir.

Resmi sitelerden farkımız:

  • Sadece yüzde göstermek yerine "Tahmini Kalan Gün" hesaplıyoruz
  • Tüm şehirleri tek bir sayfada karşılaştırabilirsiniz
  • Kritik seviyeler görsel olarak vurgulanır
  • Mobil uyumlu modern arayüz

✨ Özellikler

  • 📊 13+ Şehir Takibi: İstanbul, Ankara, İzmir, Adana, Muğla ve daha fazlası
  • ⏱️ Gerçek Zamanlı Veri: Otomatik web scraping ile günlük güncelleme
  • 📈 Trend Göstergeleri: Dün ile karşılaştırmalı artış/azalış gösterimi
  • 🔴 Kritik Uyarılar: %20 altı seviyeler için görsel uyarı
  • 🔍 Arama ve Filtreleme: Şehir bazlı hızlı arama
  • 📱 Responsive Tasarım: Mobil, tablet ve masaüstü uyumlu
  • 🌙 Modern UI: Glassmorphism efektli karanlık tema

🏗️ Teknoloji Altyapısı

Frontend

  • Next.js 14 - React framework
  • TypeScript - Tip güvenliği
  • Tailwind CSS - Stil yönetimi
  • Recharts - Grafik kütüphanesi

Backend (Val Town)

  • Val Town - Serverless platform
  • SQLite - Veritabanı
  • Cheerio - HTML parsing
  • Cron Jobs - Günlük otomatik scraping

Deployment

  • Netlify - Frontend hosting
  • Val Town - Backend hosting

📁 Proje Yapısı

water-watch/
├── app/
│   ├── page.tsx          # Ana sayfa komponenti
│   ├── layout.tsx        # Root layout ve SEO
│   ├── types.ts          # TypeScript tipleri ve sabitler
│   ├── globals.css       # Global stiller ve animasyonlar
│   ├── robots.ts         # SEO robots.txt
│   ├── sitemap.ts        # XML sitemap
│   └── manifest.ts       # PWA manifest
├── backend_val.ts        # Val Town backend kodu
├── package.json
├── tailwind.config.ts
├── tsconfig.json
├── netlify.toml
└── README.md

🚀 Kurulum

Gereksinimler

  • Node.js 18+
  • npm veya yarn

Yerel Geliştirme

# Repo'yu klonlayın
git clone https://github.com/emrebaranarca/water-watch.git
cd water-watch

# Bağımlılıkları yükleyin
npm install

# Environment değişkenlerini ayarlayın
cp .env.example .env.local
# .env.local dosyasında NEXT_PUBLIC_API_URL değerini düzenleyin

# Geliştirme sunucusunu başlatın
npm run dev

Uygulama http://localhost:3000 adresinde çalışacaktır.

Environment Değişkenleri

# .env.local
NEXT_PUBLIC_API_URL=your_val_town_endpoint_url

📊 Veri Kaynakları

Şehir Kaynak Güncelleme
İstanbul İSKİ Anlık
Ankara ASKİ Anlık
İzmir İZSU Manuel
Adana ASKİ Adana Anlık
Muğla MUSKİ Anlık
Diğer şehirler Çeşitli belediyeler Karışık

Not: Bazı belediye siteleri e-Devlet girişi gerektirdiğinden, bu şehirler için veriler manuel olarak güncellenmektedir.

🧮 Hesaplama Mantığı

Tahmini Kalan Gün

Kalan Gün = Mevcut Su Hacmi / Günlük Tüketim

Uyarı Seviyeleri

  • 🟢 Güvenli: %50 üzeri
  • 🟡 Orta: %20 - %50 arası
  • 🔴 Kritik: %20 altı

🤝 Katkıda Bulunma

Katkılarınızı bekliyoruz! Detaylı bilgi için CONTRIBUTING.md dosyasına bakın.

Hızlı Başlangıç

  1. Projeyi fork edin
  2. Feature branch oluşturun (git checkout -b feature/yeni-ozellik)
  3. Değişikliklerinizi commit edin (git commit -m 'Yeni özellik eklendi')
  4. Branch'i push edin (git push origin feature/yeni-ozellik)
  5. Pull Request açın

Katkı Alanları

  • 🏙️ Yeni şehir ekleme - Scraper yazma veya veri kaynağı bulma
  • 🎨 UI/UX iyileştirmeleri - Tasarım önerileri
  • 📈 Yeni özellikler - Grafikler, bildirimler, vb.
  • 🐛 Bug fix - Hata düzeltmeleri
  • 📝 Dokümantasyon - README, kod yorumları
  • 🌍 Çeviri - Çoklu dil desteği

📋 Yol Haritası

  • Şehir detay sayfaları (30 günlük geçmiş grafiği)
  • Push bildirimleri (kritik seviye uyarısı)
  • API dokümantasyonu (3. parti entegrasyonlar için)
  • Bölgesel karşılaştırma haritası
  • Su tasarrufu ipuçları bölümü
  • Çoklu dil desteği (EN, DE)

🔧 Backend Kurulumu (Val Town)

Backend kodu Val Town üzerinde çalışmaktadır. Kendi backend'inizi kurmak için:

  1. Val Town hesabı oluşturun
  2. backend_val.ts içeriğini yeni bir Val olarak oluşturun
  3. HTTP endpoint URL'ini alın
  4. Frontend'de NEXT_PUBLIC_API_URL olarak ayarlayın
  5. Cron job ekleyerek günlük otomatik scraping ayarlayın

📄 Lisans

Bu proje MIT Lisansı ile lisanslanmıştır.

🙏 Teşekkürler

  • Veri kaynakları için tüm belediye su idarelerine
  • Açık kaynak topluluğuna
  • Projeye katkıda bulunan herkese

📞 İletişim

  • GitHub Issues: Bug raporları ve özellik istekleri için
  • Pull Requests: Kod katkıları için

Not: Bu proje gönüllülük esasına dayalı olarak geliştirilmektedir. Resmi bir kurum veya kuruluşla bağlantısı yoktur.

⭐ Projeyi beğendiyseniz yıldız vermeyi unutmayın!

About

Türkiye baraj doluluk oranlarını takip eden ve tahmini kalan gün hesaplayan açık kaynak web uygulaması

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors