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
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
- 📊 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
- Next.js 14 - React framework
- TypeScript - Tip güvenliği
- Tailwind CSS - Stil yönetimi
- Recharts - Grafik kütüphanesi
- Val Town - Serverless platform
- SQLite - Veritabanı
- Cheerio - HTML parsing
- Cron Jobs - Günlük otomatik scraping
- Netlify - Frontend hosting
- Val Town - Backend hosting
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
- Node.js 18+
- npm veya yarn
# 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 devUygulama http://localhost:3000 adresinde çalışacaktır.
# .env.local
NEXT_PUBLIC_API_URL=your_val_town_endpoint_url| Ş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.
Kalan Gün = Mevcut Su Hacmi / Günlük Tüketim
- 🟢 Güvenli: %50 üzeri
- 🟡 Orta: %20 - %50 arası
- 🔴 Kritik: %20 altı
Katkılarınızı bekliyoruz! Detaylı bilgi için CONTRIBUTING.md dosyasına bakın.
- Projeyi fork edin
- Feature branch oluşturun (
git checkout -b feature/yeni-ozellik) - Değişikliklerinizi commit edin (
git commit -m 'Yeni özellik eklendi') - Branch'i push edin (
git push origin feature/yeni-ozellik) - Pull Request açın
- 🏙️ 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
- Ş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 kodu Val Town üzerinde çalışmaktadır. Kendi backend'inizi kurmak için:
- Val Town hesabı oluşturun
backend_val.tsiçeriğini yeni bir Val olarak oluşturun- HTTP endpoint URL'ini alın
- Frontend'de
NEXT_PUBLIC_API_URLolarak ayarlayın - Cron job ekleyerek günlük otomatik scraping ayarlayın
Bu proje MIT Lisansı ile lisanslanmıştır.
- Veri kaynakları için tüm belediye su idarelerine
- Açık kaynak topluluğuna
- Projeye katkıda bulunan herkese
- 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!