Code Monkey home page Code Monkey logo

deprem-io-backend's Introduction

derleme durumu lisans

BENİ OKU

Bu kod tabanında, şu anda yapım aşamasında bulunan acikyazilimagi.com'nun önizleme sürümü yer almaktadır.

main branch'ine aktarılan değişiklikler, bir dizi derleme işleminden sonra https://acikyazilimagi.com adresinde belirecektir.

Projeyi Çalıştırmak

Çalışma Ortamını Hazırlamak

node.js ve pre-commit'in son sürümlerinin sisteminizde kurulu olduğundan emin olun.

Repository'i klonlayıp, npm üzerinden bağımlılıkları çekerek çalışma ortamınızı hazır hale getirin.

git clone https://github.com/acikyazilimagi/acikyazilimagi.git
cd acikyazilimagi

corepack up
pre-commit install

Çalışmaya Başlamak

node --run dev komutu ile geliştirme modunda kod tabanına müdahale etmeye başlayabilirsiniz. Komutu çalıştırdıktan bir süre sonra browser'ınız açılacak, siz değişiklik yaptığınız sürece "hot reloading" sayesinde browser'daki kod otomatik olarak güncellenecektir.

Çalışmayı Kontrol Etmek

pre-commit run --all-files komutu ile yapılan geliştirmenin belirlenen standartlara uyup uymadığını kontrol edebilirsiniz. Eğer bu kontrolü yapmazsanız Pull Request oluşturduğunuzda GitHub tarafından bu kontroller otomatik işletilecek ve açmış olduğunuz Pull Request'i sizden güncellemenizi isteyecektir.

Bazı kod standartları otomatik olarak düzeltilebilmektedir, bunu sağlamak için node --run format komutunu kullanabilirsiniz.

Aynı zamanda yazmış olduğunuz birim testlerini node --test komutu ile başlatabilirsiniz. Testler de aynı lint işlemi gibi hem pull request hem de push esnasında GitHub Actions tarafından CI/CD otomasyonuna bağlı olarak çalıştırılmaktadır.

Dizin Yapısı

Klasör Açıklama
/src/ Kaynak dosyalarını içeren klasör
/public/ Web dizininde yer alacak tüm statik dosyalar

Gereksinimler

Lisans

MIT License, daha fazla detay için lütfen LICENSE dosyasını inceleyin.

Katkı Sağlayamak

Herhangi bir katkıya açıktır. Hata düzenlemeleri, yeni özellik ve modüller ekleyebilirsiniz.

  • Koda katkı sağlamak için: Yukarıda anlatıldığı gibi repository'i klonlayın, değişikliklerinizi gerçekleştirin, ve bir pull request oluşturun.
  • Bir hata bildirmek için: Bir şeyler ters gidiyorsa, GitHub Issues üzerinden yeni bir issue oluşturup bize bildirin.

deprem-io-backend's People

Contributors

ademkoc avatar anonrig avatar berkanium avatar dogukanturan avatar emreuluduz avatar endrcn avatar ferhatbostanci avatar hmert avatar hsyngul avatar izzetemredemir avatar khnbzkrt avatar mehmetcoskun avatar mehmetik avatar minikdev avatar naugtur avatar okanpinar avatar onuruci avatar yusufdeepwork avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

deprem-io-backend's Issues

Afet bölgesi dışından veri girişi engellenmelidir

Alakasız illerden fake bildirimler kaydedildiğini gözlemliyorum.
Afet bölgesi dışından bildirim gönderilmesine izin vermemek gerekiyor.
Bunun için il ve ilçe veritabanı oluşturulması gerekeceğinden halihazırda Mernis tarafından sunulan güncel il ve ilçe listesini paylaşıyorum (JSON)

[
	{
		"province" : "Adana",
		"title" : "Aladağ"
	},
	{
		"province" : "Adana",
		"title" : "Ceyhan"
	},
	{
		"province" : "Adana",
		"title" : "Çukurova"
	},
	{
		"province" : "Adana",
		"title" : "Feke"
	},
	{
		"province" : "Adana",
		"title" : "İmamoğlu"
	},
	{
		"province" : "Adana",
		"title" : "Karaisalı"
	},
	{
		"province" : "Adana",
		"title" : "Karataş"
	},
	{
		"province" : "Adana",
		"title" : "Kozan"
	},
	{
		"province" : "Adana",
		"title" : "Pozantı"
	},
	{
		"province" : "Adana",
		"title" : "Saimbeyli"
	},
	{
		"province" : "Adana",
		"title" : "Sarıçam"
	},
	{
		"province" : "Adana",
		"title" : "Seyhan"
	},
	{
		"province" : "Adana",
		"title" : "Tufanbeyli"
	},
	{
		"province" : "Adana",
		"title" : "Yumurtalık"
	},
	{
		"province" : "Adana",
		"title" : "Yüreğir"
	},
	{
		"province" : "Adıyaman",
		"title" : "Besni"
	},
	{
		"province" : "Adıyaman",
		"title" : "Çelikhan"
	},
	{
		"province" : "Adıyaman",
		"title" : "Gerger"
	},
	{
		"province" : "Adıyaman",
		"title" : "Gölbaşı"
	},
	{
		"province" : "Adıyaman",
		"title" : "Kahta"
	},
	{
		"province" : "Adıyaman",
		"title" : "Merkez"
	},
	{
		"province" : "Adıyaman",
		"title" : "Samsat"
	},
	{
		"province" : "Adıyaman",
		"title" : "Sincik"
	},
	{
		"province" : "Adıyaman",
		"title" : "Tut"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Başmakçı"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Bayat"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Bolvadin"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Çay"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Çobanlar"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Dazkırı"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Dinar"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Emirdağ"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Evciler"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Hocalar"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "İhsaniye"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "İscehisar"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Kızılören"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Merkez"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Sandıklı"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Sinanpaşa"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Sultandağı"
	},
	{
		"province" : "Afyonkarahisar",
		"title" : "Şuhut"
	},
	{
		"province" : "Ağrı",
		"title" : "Diyadin"
	},
	{
		"province" : "Ağrı",
		"title" : "Doğubayazıt"
	},
	{
		"province" : "Ağrı",
		"title" : "Eleşkirt"
	},
	{
		"province" : "Ağrı",
		"title" : "Hamur"
	},
	{
		"province" : "Ağrı",
		"title" : "Merkez"
	},
	{
		"province" : "Ağrı",
		"title" : "Patnos"
	},
	{
		"province" : "Ağrı",
		"title" : "Taşlıçay"
	},
	{
		"province" : "Ağrı",
		"title" : "Tutak"
	},
	{
		"province" : "Aksaray",
		"title" : "Ağaçören"
	},
	{
		"province" : "Aksaray",
		"title" : "Eskil"
	},
	{
		"province" : "Aksaray",
		"title" : "Gülağaç"
	},
	{
		"province" : "Aksaray",
		"title" : "Güzelyurt"
	},
	{
		"province" : "Aksaray",
		"title" : "Merkez"
	},
	{
		"province" : "Aksaray",
		"title" : "Ortaköy"
	},
	{
		"province" : "Aksaray",
		"title" : "Sarıyahşi"
	},
	{
		"province" : "Aksaray",
		"title" : "Sultanhanı"
	},
	{
		"province" : "Amasya",
		"title" : "Göynücek"
	},
	{
		"province" : "Amasya",
		"title" : "Gümüşhacıköy"
	},
	{
		"province" : "Amasya",
		"title" : "Hamamözü"
	},
	{
		"province" : "Amasya",
		"title" : "Merkez"
	},
	{
		"province" : "Amasya",
		"title" : "Merzifon"
	},
	{
		"province" : "Amasya",
		"title" : "Suluova"
	},
	{
		"province" : "Amasya",
		"title" : "Taşova"
	},
	{
		"province" : "Ankara",
		"title" : "Akyurt"
	},
	{
		"province" : "Ankara",
		"title" : "Altındağ"
	},
	{
		"province" : "Ankara",
		"title" : "Ayaş"
	},
	{
		"province" : "Ankara",
		"title" : "Bala"
	},
	{
		"province" : "Ankara",
		"title" : "Beypazarı"
	},
	{
		"province" : "Ankara",
		"title" : "Çamlıdere"
	},
	{
		"province" : "Ankara",
		"title" : "Çankaya"
	},
	{
		"province" : "Ankara",
		"title" : "Çubuk"
	},
	{
		"province" : "Ankara",
		"title" : "Elmadağ"
	},
	{
		"province" : "Ankara",
		"title" : "Etimesgut"
	},
	{
		"province" : "Ankara",
		"title" : "Evren"
	},
	{
		"province" : "Ankara",
		"title" : "Gölbaşı"
	},
	{
		"province" : "Ankara",
		"title" : "Güdül"
	},
	{
		"province" : "Ankara",
		"title" : "Haymana"
	},
	{
		"province" : "Ankara",
		"title" : "Kahramankazan"
	},
	{
		"province" : "Ankara",
		"title" : "Kalecik"
	},
	{
		"province" : "Ankara",
		"title" : "Keçiören"
	},
	{
		"province" : "Ankara",
		"title" : "Kızılcahamam"
	},
	{
		"province" : "Ankara",
		"title" : "Mamak"
	},
	{
		"province" : "Ankara",
		"title" : "Nallıhan"
	},
	{
		"province" : "Ankara",
		"title" : "Polatlı"
	},
	{
		"province" : "Ankara",
		"title" : "Pursaklar"
	},
	{
		"province" : "Ankara",
		"title" : "Sincan"
	},
	{
		"province" : "Ankara",
		"title" : "Şereflikoçhisar"
	},
	{
		"province" : "Ankara",
		"title" : "Yenimahalle"
	},
	{
		"province" : "Antalya",
		"title" : "Akseki"
	},
	{
		"province" : "Antalya",
		"title" : "Aksu"
	},
	{
		"province" : "Antalya",
		"title" : "Alanya"
	},
	{
		"province" : "Antalya",
		"title" : "Demre"
	},
	{
		"province" : "Antalya",
		"title" : "Döşemealtı"
	},
	{
		"province" : "Antalya",
		"title" : "Elmalı"
	},
	{
		"province" : "Antalya",
		"title" : "Finike"
	},
	{
		"province" : "Antalya",
		"title" : "Gazipaşa"
	},
	{
		"province" : "Antalya",
		"title" : "Gündoğmuş"
	},
	{
		"province" : "Antalya",
		"title" : "İbradı"
	},
	{
		"province" : "Antalya",
		"title" : "Kaş"
	},
	{
		"province" : "Antalya",
		"title" : "Kemer"
	},
	{
		"province" : "Antalya",
		"title" : "Kepez"
	},
	{
		"province" : "Antalya",
		"title" : "Konyaaltı"
	},
	{
		"province" : "Antalya",
		"title" : "Korkuteli"
	},
	{
		"province" : "Antalya",
		"title" : "Kumluca"
	},
	{
		"province" : "Antalya",
		"title" : "Manavgat"
	},
	{
		"province" : "Antalya",
		"title" : "Muratpaşa"
	},
	{
		"province" : "Antalya",
		"title" : "Serik"
	},
	{
		"province" : "Ardahan",
		"title" : "Çıldır"
	},
	{
		"province" : "Ardahan",
		"title" : "Damal"
	},
	{
		"province" : "Ardahan",
		"title" : "Göle"
	},
	{
		"province" : "Ardahan",
		"title" : "Hanak"
	},
	{
		"province" : "Ardahan",
		"title" : "Merkez"
	},
	{
		"province" : "Ardahan",
		"title" : "Posof"
	},
	{
		"province" : "Artvin",
		"title" : "Ardanuç"
	},
	{
		"province" : "Artvin",
		"title" : "Arhavi"
	},
	{
		"province" : "Artvin",
		"title" : "Borçka"
	},
	{
		"province" : "Artvin",
		"title" : "Hopa"
	},
	{
		"province" : "Artvin",
		"title" : "Kemalpaşa"
	},
	{
		"province" : "Artvin",
		"title" : "Merkez"
	},
	{
		"province" : "Artvin",
		"title" : "Murgul"
	},
	{
		"province" : "Artvin",
		"title" : "Şavşat"
	},
	{
		"province" : "Artvin",
		"title" : "Yusufeli"
	},
	{
		"province" : "Aydın",
		"title" : "Bozdoğan"
	},
	{
		"province" : "Aydın",
		"title" : "Buharkent"
	},
	{
		"province" : "Aydın",
		"title" : "Çine"
	},
	{
		"province" : "Aydın",
		"title" : "Didim"
	},
	{
		"province" : "Aydın",
		"title" : "Efeler"
	},
	{
		"province" : "Aydın",
		"title" : "Germencik"
	},
	{
		"province" : "Aydın",
		"title" : "İncirliova"
	},
	{
		"province" : "Aydın",
		"title" : "Karacasu"
	},
	{
		"province" : "Aydın",
		"title" : "Karpuzlu"
	},
	{
		"province" : "Aydın",
		"title" : "Koçarlı"
	},
	{
		"province" : "Aydın",
		"title" : "Köşk"
	},
	{
		"province" : "Aydın",
		"title" : "Kuşadası"
	},
	{
		"province" : "Aydın",
		"title" : "Kuyucak"
	},
	{
		"province" : "Aydın",
		"title" : "Nazilli"
	},
	{
		"province" : "Aydın",
		"title" : "Söke"
	},
	{
		"province" : "Aydın",
		"title" : "Sultanhisar"
	},
	{
		"province" : "Aydın",
		"title" : "Yenipazar"
	},
	{
		"province" : "Balıkesir",
		"title" : "Altıeylül"
	},
	{
		"province" : "Balıkesir",
		"title" : "Ayvalık"
	},
	{
		"province" : "Balıkesir",
		"title" : "Balya"
	},
	{
		"province" : "Balıkesir",
		"title" : "Bandırma"
	},
	{
		"province" : "Balıkesir",
		"title" : "Bigadiç"
	},
	{
		"province" : "Balıkesir",
		"title" : "Burhaniye"
	},
	{
		"province" : "Balıkesir",
		"title" : "Dursunbey"
	},
	{
		"province" : "Balıkesir",
		"title" : "Edremit"
	},
	{
		"province" : "Balıkesir",
		"title" : "Erdek"
	},
	{
		"province" : "Balıkesir",
		"title" : "Gömeç"
	},
	{
		"province" : "Balıkesir",
		"title" : "Gönen"
	},
	{
		"province" : "Balıkesir",
		"title" : "Havran"
	},
	{
		"province" : "Balıkesir",
		"title" : "İvrindi"
	},
	{
		"province" : "Balıkesir",
		"title" : "Karesi"
	},
	{
		"province" : "Balıkesir",
		"title" : "Kepsut"
	},
	{
		"province" : "Balıkesir",
		"title" : "Manyas"
	},
	{
		"province" : "Balıkesir",
		"title" : "Marmara"
	},
	{
		"province" : "Balıkesir",
		"title" : "Savaştepe"
	},
	{
		"province" : "Balıkesir",
		"title" : "Sındırgı"
	},
	{
		"province" : "Balıkesir",
		"title" : "Susurluk"
	},
	{
		"province" : "Bartın",
		"title" : "Amasra"
	},
	{
		"province" : "Bartın",
		"title" : "Kurucaşile"
	},
	{
		"province" : "Bartın",
		"title" : "Merkez"
	},
	{
		"province" : "Bartın",
		"title" : "Ulus"
	},
	{
		"province" : "Batman",
		"title" : "Beşiri"
	},
	{
		"province" : "Batman",
		"title" : "Gercüş"
	},
	{
		"province" : "Batman",
		"title" : "Hasankeyf"
	},
	{
		"province" : "Batman",
		"title" : "Kozluk"
	},
	{
		"province" : "Batman",
		"title" : "Merkez"
	},
	{
		"province" : "Batman",
		"title" : "Sason"
	},
	{
		"province" : "Bayburt",
		"title" : "Aydıntepe"
	},
	{
		"province" : "Bayburt",
		"title" : "Demirözü"
	},
	{
		"province" : "Bayburt",
		"title" : "Merkez"
	},
	{
		"province" : "Bilecik",
		"title" : "Bozüyük"
	},
	{
		"province" : "Bilecik",
		"title" : "Gölpazarı"
	},
	{
		"province" : "Bilecik",
		"title" : "İnhisar"
	},
	{
		"province" : "Bilecik",
		"title" : "Merkez"
	},
	{
		"province" : "Bilecik",
		"title" : "Osmaneli"
	},
	{
		"province" : "Bilecik",
		"title" : "Pazaryeri"
	},
	{
		"province" : "Bilecik",
		"title" : "Söğüt"
	},
	{
		"province" : "Bilecik",
		"title" : "Yenipazar"
	},
	{
		"province" : "Bingöl",
		"title" : "Adaklı"
	},
	{
		"province" : "Bingöl",
		"title" : "Genç"
	},
	{
		"province" : "Bingöl",
		"title" : "Karlıova"
	},
	{
		"province" : "Bingöl",
		"title" : "Kiğı"
	},
	{
		"province" : "Bingöl",
		"title" : "Merkez"
	},
	{
		"province" : "Bingöl",
		"title" : "Solhan"
	},
	{
		"province" : "Bingöl",
		"title" : "Yayladere"
	},
	{
		"province" : "Bingöl",
		"title" : "Yedisu"
	},
	{
		"province" : "Bitlis",
		"title" : "Adilcevaz"
	},
	{
		"province" : "Bitlis",
		"title" : "Ahlat"
	},
	{
		"province" : "Bitlis",
		"title" : "Güroymak"
	},
	{
		"province" : "Bitlis",
		"title" : "Hizan"
	},
	{
		"province" : "Bitlis",
		"title" : "Merkez"
	},
	{
		"province" : "Bitlis",
		"title" : "Mutki"
	},
	{
		"province" : "Bitlis",
		"title" : "Tatvan"
	},
	{
		"province" : "Bolu",
		"title" : "Dörtdivan"
	},
	{
		"province" : "Bolu",
		"title" : "Gerede"
	},
	{
		"province" : "Bolu",
		"title" : "Göynük"
	},
	{
		"province" : "Bolu",
		"title" : "Kıbrıscık"
	},
	{
		"province" : "Bolu",
		"title" : "Mengen"
	},
	{
		"province" : "Bolu",
		"title" : "Merkez"
	},
	{
		"province" : "Bolu",
		"title" : "Mudurnu"
	},
	{
		"province" : "Bolu",
		"title" : "Seben"
	},
	{
		"province" : "Bolu",
		"title" : "Yeniçağa"
	},
	{
		"province" : "Burdur",
		"title" : "Ağlasun"
	},
	{
		"province" : "Burdur",
		"title" : "Altınyayla"
	},
	{
		"province" : "Burdur",
		"title" : "Bucak"
	},
	{
		"province" : "Burdur",
		"title" : "Çavdır"
	},
	{
		"province" : "Burdur",
		"title" : "Çeltikçi"
	},
	{
		"province" : "Burdur",
		"title" : "Gölhisar"
	},
	{
		"province" : "Burdur",
		"title" : "Karamanlı"
	},
	{
		"province" : "Burdur",
		"title" : "Kemer"
	},
	{
		"province" : "Burdur",
		"title" : "Merkez"
	},
	{
		"province" : "Burdur",
		"title" : "Tefenni"
	},
	{
		"province" : "Burdur",
		"title" : "Yeşilova"
	},
	{
		"province" : "Bursa",
		"title" : "Büyükorhan"
	},
	{
		"province" : "Bursa",
		"title" : "Gemlik"
	},
	{
		"province" : "Bursa",
		"title" : "Gürsu"
	},
	{
		"province" : "Bursa",
		"title" : "Harmancık"
	},
	{
		"province" : "Bursa",
		"title" : "İnegöl"
	},
	{
		"province" : "Bursa",
		"title" : "İznik"
	},
	{
		"province" : "Bursa",
		"title" : "Karacabey"
	},
	{
		"province" : "Bursa",
		"title" : "Keles"
	},
	{
		"province" : "Bursa",
		"title" : "Kestel"
	},
	{
		"province" : "Bursa",
		"title" : "Mudanya"
	},
	{
		"province" : "Bursa",
		"title" : "Mustafakemalpaşa"
	},
	{
		"province" : "Bursa",
		"title" : "Nilüfer"
	},
	{
		"province" : "Bursa",
		"title" : "Orhaneli"
	},
	{
		"province" : "Bursa",
		"title" : "Orhangazi"
	},
	{
		"province" : "Bursa",
		"title" : "Osmangazi"
	},
	{
		"province" : "Bursa",
		"title" : "Yenişehir"
	},
	{
		"province" : "Bursa",
		"title" : "Yıldırım"
	},
	{
		"province" : "Çanakkale",
		"title" : "Ayvacık"
	},
	{
		"province" : "Çanakkale",
		"title" : "Bayramiç"
	},
	{
		"province" : "Çanakkale",
		"title" : "Biga"
	},
	{
		"province" : "Çanakkale",
		"title" : "Bozcaada"
	},
	{
		"province" : "Çanakkale",
		"title" : "Çan"
	},
	{
		"province" : "Çanakkale",
		"title" : "Eceabat"
	},
	{
		"province" : "Çanakkale",
		"title" : "Ezine"
	},
	{
		"province" : "Çanakkale",
		"title" : "Gelibolu"
	},
	{
		"province" : "Çanakkale",
		"title" : "Gökçeada"
	},
	{
		"province" : "Çanakkale",
		"title" : "Lapseki"
	},
	{
		"province" : "Çanakkale",
		"title" : "Merkez"
	},
	{
		"province" : "Çanakkale",
		"title" : "Yenice"
	},
	{
		"province" : "Çankırı",
		"title" : "Atkaracalar"
	},
	{
		"province" : "Çankırı",
		"title" : "Bayramören"
	},
	{
		"province" : "Çankırı",
		"title" : "Çerkeş"
	},
	{
		"province" : "Çankırı",
		"title" : "Eldivan"
	},
	{
		"province" : "Çankırı",
		"title" : "Ilgaz"
	},
	{
		"province" : "Çankırı",
		"title" : "Kızılırmak"
	},
	{
		"province" : "Çankırı",
		"title" : "Korgun"
	},
	{
		"province" : "Çankırı",
		"title" : "Kurşunlu"
	},
	{
		"province" : "Çankırı",
		"title" : "Merkez"
	},
	{
		"province" : "Çankırı",
		"title" : "Orta"
	},
	{
		"province" : "Çankırı",
		"title" : "Şabanözü"
	},
	{
		"province" : "Çankırı",
		"title" : "Yapraklı"
	},
	{
		"province" : "Çorum",
		"title" : "Alaca"
	},
	{
		"province" : "Çorum",
		"title" : "Bayat"
	},
	{
		"province" : "Çorum",
		"title" : "Boğazkale"
	},
	{
		"province" : "Çorum",
		"title" : "Dodurga"
	},
	{
		"province" : "Çorum",
		"title" : "İskilip"
	},
	{
		"province" : "Çorum",
		"title" : "Kargı"
	},
	{
		"province" : "Çorum",
		"title" : "Laçin"
	},
	{
		"province" : "Çorum",
		"title" : "Mecitözü"
	},
	{
		"province" : "Çorum",
		"title" : "Merkez"
	},
	{
		"province" : "Çorum",
		"title" : "Oğuzlar"
	},
	{
		"province" : "Çorum",
		"title" : "Ortaköy"
	},
	{
		"province" : "Çorum",
		"title" : "Osmancık"
	},
	{
		"province" : "Çorum",
		"title" : "Sungurlu"
	},
	{
		"province" : "Çorum",
		"title" : "Uğurludağ"
	},
	{
		"province" : "Denizli",
		"title" : "Acıpayam"
	},
	{
		"province" : "Denizli",
		"title" : "Babadağ"
	},
	{
		"province" : "Denizli",
		"title" : "Baklan"
	},
	{
		"province" : "Denizli",
		"title" : "Bekilli"
	},
	{
		"province" : "Denizli",
		"title" : "Beyağaç"
	},
	{
		"province" : "Denizli",
		"title" : "Bozkurt"
	},
	{
		"province" : "Denizli",
		"title" : "Buldan"
	},
	{
		"province" : "Denizli",
		"title" : "Çal"
	},
	{
		"province" : "Denizli",
		"title" : "Çameli"
	},
	{
		"province" : "Denizli",
		"title" : "Çardak"
	},
	{
		"province" : "Denizli",
		"title" : "Çivril"
	},
	{
		"province" : "Denizli",
		"title" : "Güney"
	},
	{
		"province" : "Denizli",
		"title" : "Honaz"
	},
	{
		"province" : "Denizli",
		"title" : "Kale"
	},
	{
		"province" : "Denizli",
		"title" : "Merkezefendi"
	},
	{
		"province" : "Denizli",
		"title" : "Pamukkale"
	},
	{
		"province" : "Denizli",
		"title" : "Sarayköy"
	},
	{
		"province" : "Denizli",
		"title" : "Serinhisar"
	},
	{
		"province" : "Denizli",
		"title" : "Tavas"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Bağlar"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Bismil"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Çermik"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Çınar"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Çüngüş"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Dicle"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Eğil"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Ergani"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Hani"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Hazro"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Kayapınar"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Kocaköy"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Kulp"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Lice"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Silvan"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Sur"
	},
	{
		"province" : "Diyarbakır",
		"title" : "Yenişehir"
	},
	{
		"province" : "Düzce",
		"title" : "Akçakoca"
	},
	{
		"province" : "Düzce",
		"title" : "Cumayeri"
	},
	{
		"province" : "Düzce",
		"title" : "Çilimli"
	},
	{
		"province" : "Düzce",
		"title" : "Gölyaka"
	},
	{
		"province" : "Düzce",
		"title" : "Gümüşova"
	},
	{
		"province" : "Düzce",
		"title" : "Kaynaşlı"
	},
	{
		"province" : "Düzce",
		"title" : "Merkez"
	},
	{
		"province" : "Düzce",
		"title" : "Yığılca"
	},
	{
		"province" : "Edirne",
		"title" : "Enez"
	},
	{
		"province" : "Edirne",
		"title" : "Havsa"
	},
	{
		"province" : "Edirne",
		"title" : "İpsala"
	},
	{
		"province" : "Edirne",
		"title" : "Keşan"
	},
	{
		"province" : "Edirne",
		"title" : "Lalapaşa"
	},
	{
		"province" : "Edirne",
		"title" : "Meriç"
	},
	{
		"province" : "Edirne",
		"title" : "Merkez"
	},
	{
		"province" : "Edirne",
		"title" : "Süloğlu"
	},
	{
		"province" : "Edirne",
		"title" : "Uzunköprü"
	},
	{
		"province" : "Elazığ",
		"title" : "Ağın"
	},
	{
		"province" : "Elazığ",
		"title" : "Alacakaya"
	},
	{
		"province" : "Elazığ",
		"title" : "Arıcak"
	},
	{
		"province" : "Elazığ",
		"title" : "Baskil"
	},
	{
		"province" : "Elazığ",
		"title" : "Karakoçan"
	},
	{
		"province" : "Elazığ",
		"title" : "Keban"
	},
	{
		"province" : "Elazığ",
		"title" : "Kovancılar"
	},
	{
		"province" : "Elazığ",
		"title" : "Maden"
	},
	{
		"province" : "Elazığ",
		"title" : "Merkez"
	},
	{
		"province" : "Elazığ",
		"title" : "Palu"
	},
	{
		"province" : "Elazığ",
		"title" : "Sivrice"
	},
	{
		"province" : "Erzincan",
		"title" : "Çayırlı"
	},
	{
		"province" : "Erzincan",
		"title" : "İliç"
	},
	{
		"province" : "Erzincan",
		"title" : "Kemah"
	},
	{
		"province" : "Erzincan",
		"title" : "Kemaliye"
	},
	{
		"province" : "Erzincan",
		"title" : "Merkez"
	},
	{
		"province" : "Erzincan",
		"title" : "Otlukbeli"
	},
	{
		"province" : "Erzincan",
		"title" : "Refahiye"
	},
	{
		"province" : "Erzincan",
		"title" : "Tercan"
	},
	{
		"province" : "Erzincan",
		"title" : "Üzümlü"
	},
	{
		"province" : "Erzurum",
		"title" : "Aşkale"
	},
	{
		"province" : "Erzurum",
		"title" : "Aziziye"
	},
	{
		"province" : "Erzurum",
		"title" : "Çat"
	},
	{
		"province" : "Erzurum",
		"title" : "Hınıs"
	},
	{
		"province" : "Erzurum",
		"title" : "Horasan"
	},
	{
		"province" : "Erzurum",
		"title" : "İspir"
	},
	{
		"province" : "Erzurum",
		"title" : "Karaçoban"
	},
	{
		"province" : "Erzurum",
		"title" : "Karayazı"
	},
	{
		"province" : "Erzurum",
		"title" : "Köprüköy"
	},
	{
		"province" : "Erzurum",
		"title" : "Narman"
	},
	{
		"province" : "Erzurum",
		"title" : "Oltu"
	},
	{
		"province" : "Erzurum",
		"title" : "Olur"
	},
	{
		"province" : "Erzurum",
		"title" : "Palandöken"
	},
	{
		"province" : "Erzurum",
		"title" : "Pasinler"
	},
	{
		"province" : "Erzurum",
		"title" : "Pazaryolu"
	},
	{
		"province" : "Erzurum",
		"title" : "Şenkaya"
	},
	{
		"province" : "Erzurum",
		"title" : "Tekman"
	},
	{
		"province" : "Erzurum",
		"title" : "Tortum"
	},
	{
		"province" : "Erzurum",
		"title" : "Uzundere"
	},
	{
		"province" : "Erzurum",
		"title" : "Yakutiye"
	},
	{
		"province" : "Eskişehir",
		"title" : "Alpu"
	},
	{
		"province" : "Eskişehir",
		"title" : "Beylikova"
	},
	{
		"province" : "Eskişehir",
		"title" : "Çifteler"
	},
	{
		"province" : "Eskişehir",
		"title" : "Günyüzü"
	},
	{
		"province" : "Eskişehir",
		"title" : "Han"
	},
	{
		"province" : "Eskişehir",
		"title" : "İnönü"
	},
	{
		"province" : "Eskişehir",
		"title" : "Mahmudiye"
	},
	{
		"province" : "Eskişehir",
		"title" : "Mihalgazi"
	},
	{
		"province" : "Eskişehir",
		"title" : "Mihalıççık"
	},
	{
		"province" : "Eskişehir",
		"title" : "Odunpazarı"
	},
	{
		"province" : "Eskişehir",
		"title" : "Sarıcakaya"
	},
	{
		"province" : "Eskişehir",
		"title" : "Seyitgazi"
	},
	{
		"province" : "Eskişehir",
		"title" : "Sivrihisar"
	},
	{
		"province" : "Eskişehir",
		"title" : "Tepebaşı"
	},
	{
		"province" : "Gaziantep",
		"title" : "Araban"
	},
	{
		"province" : "Gaziantep",
		"title" : "İslahiye"
	},
	{
		"province" : "Gaziantep",
		"title" : "Karkamış"
	},
	{
		"province" : "Gaziantep",
		"title" : "Nizip"
	},
	{
		"province" : "Gaziantep",
		"title" : "Nurdağı"
	},
	{
		"province" : "Gaziantep",
		"title" : "Oğuzeli"
	},
	{
		"province" : "Gaziantep",
		"title" : "Şahinbey"
	},
	{
		"province" : "Gaziantep",
		"title" : "Şehitkamil"
	},
	{
		"province" : "Gaziantep",
		"title" : "Yavuzeli"
	},
	{
		"province" : "Giresun",
		"title" : "Alucra"
	},
	{
		"province" : "Giresun",
		"title" : "Bulancak"
	},
	{
		"province" : "Giresun",
		"title" : "Çamoluk"
	},
	{
		"province" : "Giresun",
		"title" : "Çanakçı"
	},
	{
		"province" : "Giresun",
		"title" : "Dereli"
	},
	{
		"province" : "Giresun",
		"title" : "Doğankent"
	},
	{
		"province" : "Giresun",
		"title" : "Espiye"
	},
	{
		"province" : "Giresun",
		"title" : "Eynesil"
	},
	{
		"province" : "Giresun",
		"title" : "Görele"
	},
	{
		"province" : "Giresun",
		"title" : "Güce"
	},
	{
		"province" : "Giresun",
		"title" : "Keşap"
	},
	{
		"province" : "Giresun",
		"title" : "Merkez"
	},
	{
		"province" : "Giresun",
		"title" : "Piraziz"
	},
	{
		"province" : "Giresun",
		"title" : "Şebinkarahisar"
	},
	{
		"province" : "Giresun",
		"title" : "Tirebolu"
	},
	{
		"province" : "Giresun",
		"title" : "Yağlıdere"
	},
	{
		"province" : "Gümüşhane",
		"title" : "Kelkit"
	},
	{
		"province" : "Gümüşhane",
		"title" : "Köse"
	},
	{
		"province" : "Gümüşhane",
		"title" : "Kürtün"
	},
	{
		"province" : "Gümüşhane",
		"title" : "Merkez"
	},
	{
		"province" : "Gümüşhane",
		"title" : "Şiran"
	},
	{
		"province" : "Gümüşhane",
		"title" : "Torul"
	},
	{
		"province" : "Hakkari",
		"title" : "Çukurca"
	},
	{
		"province" : "Hakkari",
		"title" : "Derecik"
	},
	{
		"province" : "Hakkari",
		"title" : "Merkez"
	},
	{
		"province" : "Hakkari",
		"title" : "Şemdinli"
	},
	{
		"province" : "Hakkari",
		"title" : "Yüksekova"
	},
	{
		"province" : "Hatay",
		"title" : "Altınözü"
	},
	{
		"province" : "Hatay",
		"title" : "Antakya"
	},
	{
		"province" : "Hatay",
		"title" : "Arsuz"
	},
	{
		"province" : "Hatay",
		"title" : "Belen"
	},
	{
		"province" : "Hatay",
		"title" : "Defne"
	},
	{
		"province" : "Hatay",
		"title" : "Dörtyol"
	},
	{
		"province" : "Hatay",
		"title" : "Erzin"
	},
	{
		"province" : "Hatay",
		"title" : "Hassa"
	},
	{
		"province" : "Hatay",
		"title" : "İskenderun"
	},
	{
		"province" : "Hatay",
		"title" : "Kırıkhan"
	},
	{
		"province" : "Hatay",
		"title" : "Kumlu"
	},
	{
		"province" : "Hatay",
		"title" : "Payas"
	},
	{
		"province" : "Hatay",
		"title" : "Reyhanlı"
	},
	{
		"province" : "Hatay",
		"title" : "Samandağ"
	},
	{
		"province" : "Hatay",
		"title" : "Yayladağı"
	},
	{
		"province" : "Iğdır",
		"title" : "Aralık"
	},
	{
		"province" : "Iğdır",
		"title" : "Karakoyunlu"
	},
	{
		"province" : "Iğdır",
		"title" : "Merkez"
	},
	{
		"province" : "Iğdır",
		"title" : "Tuzluca"
	},
	{
		"province" : "Isparta",
		"title" : "Aksu"
	},
	{
		"province" : "Isparta",
		"title" : "Atabey"
	},
	{
		"province" : "Isparta",
		"title" : "Eğirdir"
	},
	{
		"province" : "Isparta",
		"title" : "Gelendost"
	},
	{
		"province" : "Isparta",
		"title" : "Gönen"
	},
	{
		"province" : "Isparta",
		"title" : "Keçiborlu"
	},
	{
		"province" : "Isparta",
		"title" : "Merkez"
	},
	{
		"province" : "Isparta",
		"title" : "Senirkent"
	},
	{
		"province" : "Isparta",
		"title" : "Sütçüler"
	},
	{
		"province" : "Isparta",
		"title" : "Şarkikaraağaç"
	},
	{
		"province" : "Isparta",
		"title" : "Uluborlu"
	},
	{
		"province" : "Isparta",
		"title" : "Yalvaç"
	},
	{
		"province" : "Isparta",
		"title" : "Yenişarbademli"
	},
	{
		"province" : "İstanbul",
		"title" : "Adalar"
	},
	{
		"province" : "İstanbul",
		"title" : "Arnavutköy"
	},
	{
		"province" : "İstanbul",
		"title" : "Ataşehir"
	},
	{
		"province" : "İstanbul",
		"title" : "Avcılar"
	},
	{
		"province" : "İstanbul",
		"title" : "Bağcılar"
	},
	{
		"province" : "İstanbul",
		"title" : "Bahçelievler"
	},
	{
		"province" : "İstanbul",
		"title" : "Bakırköy"
	},
	{
		"province" : "İstanbul",
		"title" : "Başakşehir"
	},
	{
		"province" : "İstanbul",
		"title" : "Bayrampaşa"
	},
	{
		"province" : "İstanbul",
		"title" : "Beşiktaş"
	},
	{
		"province" : "İstanbul",
		"title" : "Beykoz"
	},
	{
		"province" : "İstanbul",
		"title" : "Beylikdüzü"
	},
	{
		"province" : "İstanbul",
		"title" : "Beyoğlu"
	},
	{
		"province" : "İstanbul",
		"title" : "Büyükçekmece"
	},
	{
		"province" : "İstanbul",
		"title" : "Çatalca"
	},
	{
		"province" : "İstanbul",
		"title" : "Çekmeköy"
	},
	{
		"province" : "İstanbul",
		"title" : "Esenler"
	},
	{
		"province" : "İstanbul",
		"title" : "Esenyurt"
	},
	{
		"province" : "İstanbul",
		"title" : "Eyüpsultan"
	},
	{
		"province" : "İstanbul",
		"title" : "Fatih"
	},
	{
		"province" : "İstanbul",
		"title" : "Gaziosmanpaşa"
	},
	{
		"province" : "İstanbul",
		"title" : "Güngören"
	},
	{
		"province" : "İstanbul",
		"title" : "Kadıköy"
	},
	{
		"province" : "İstanbul",
		"title" : "Kağıthane"
	},
	{
		"province" : "İstanbul",
		"title" : "Kartal"
	},
	{
		"province" : "İstanbul",
		"title" : "Küçükçekmece"
	},
	{
		"province" : "İstanbul",
		"title" : "Maltepe"
	},
	{
		"province" : "İstanbul",
		"title" : "Pendik"
	},
	{
		"province" : "İstanbul",
		"title" : "Sancaktepe"
	},
	{
		"province" : "İstanbul",
		"title" : "Sarıyer"
	},
	{
		"province" : "İstanbul",
		"title" : "Silivri"
	},
	{
		"province" : "İstanbul",
		"title" : "Sultanbeyli"
	},
	{
		"province" : "İstanbul",
		"title" : "Sultangazi"
	},
	{
		"province" : "İstanbul",
		"title" : "Şile"
	},
	{
		"province" : "İstanbul",
		"title" : "Şişli"
	},
	{
		"province" : "İstanbul",
		"title" : "Tuzla"
	},
	{
		"province" : "İstanbul",
		"title" : "Ümraniye"
	},
	{
		"province" : "İstanbul",
		"title" : "Üsküdar"
	},
	{
		"province" : "İstanbul",
		"title" : "Zeytinburnu"
	},
	{
		"province" : "İzmir",
		"title" : "Aliağa"
	},
	{
		"province" : "İzmir",
		"title" : "Balçova"
	},
	{
		"province" : "İzmir",
		"title" : "Bayındır"
	},
	{
		"province" : "İzmir",
		"title" : "Bayraklı"
	},
	{
		"province" : "İzmir",
		"title" : "Bergama"
	},
	{
		"province" : "İzmir",
		"title" : "Beydağ"
	},
	{
		"province" : "İzmir",
		"title" : "Bornova"
	},
	{
		"province" : "İzmir",
		"title" : "Buca"
	},
	{
		"province" : "İzmir",
		"title" : "Çeşme"
	},
	{
		"province" : "İzmir",
		"title" : "Çiğli"
	},
	{
		"province" : "İzmir",
		"title" : "Dikili"
	},
	{
		"province" : "İzmir",
		"title" : "Foça"
	},
	{
		"province" : "İzmir",
		"title" : "Gaziemir"
	},
	{
		"province" : "İzmir",
		"title" : "Güzelbahçe"
	},
	{
		"province" : "İzmir",
		"title" : "Karabağlar"
	},
	{
		"province" : "İzmir",
		"title" : "Karaburun"
	},
	{
		"province" : "İzmir",
		"title" : "Karşıyaka"
	},
	{
		"province" : "İzmir",
		"title" : "Kemalpaşa"
	},
	{
		"province" : "İzmir",
		"title" : "Kınık"
	},
	{
		"province" : "İzmir",
		"title" : "Kiraz"
	},
	{
		"province" : "İzmir",
		"title" : "Konak"
	},
	{
		"province" : "İzmir",
		"title" : "Menderes"
	},
	{
		"province" : "İzmir",
		"title" : "Menemen"
	},
	{
		"province" : "İzmir",
		"title" : "Narlıdere"
	},
	{
		"province" : "İzmir",
		"title" : "Ödemiş"
	},
	{
		"province" : "İzmir",
		"title" : "Seferihisar"
	},
	{
		"province" : "İzmir",
		"title" : "Selçuk"
	},
	{
		"province" : "İzmir",
		"title" : "Tire"
	},
	{
		"province" : "İzmir",
		"title" : "Torbalı"
	},
	{
		"province" : "İzmir",
		"title" : "Urla"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Afşin"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Andırın"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Çağlayancerit"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Dulkadiroğlu"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Ekinözü"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Elbistan"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Göksun"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Nurhak"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Onikişubat"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Pazarcık"
	},
	{
		"province" : "Kahramanmaraş",
		"title" : "Türkoğlu"
	},
	{
		"province" : "Karabük",
		"title" : "Eflani"
	},
	{
		"province" : "Karabük",
		"title" : "Eskipazar"
	},
	{
		"province" : "Karabük",
		"title" : "Merkez"
	},
	{
		"province" : "Karabük",
		"title" : "Ovacık"
	},
	{
		"province" : "Karabük",
		"title" : "Safranbolu"
	},
	{
		"province" : "Karabük",
		"title" : "Yenice"
	},
	{
		"province" : "Karaman",
		"title" : "Ayrancı"
	},
	{
		"province" : "Karaman",
		"title" : "Başyayla"
	},
	{
		"province" : "Karaman",
		"title" : "Ermenek"
	},
	{
		"province" : "Karaman",
		"title" : "Kazımkarabekir"
	},
	{
		"province" : "Karaman",
		"title" : "Merkez"
	},
	{
		"province" : "Karaman",
		"title" : "Sarıveliler"
	},
	{
		"province" : "Kars",
		"title" : "Akyaka"
	},
	{
		"province" : "Kars",
		"title" : "Arpaçay"
	},
	{
		"province" : "Kars",
		"title" : "Digor"
	},
	{
		"province" : "Kars",
		"title" : "Kağızman"
	},
	{
		"province" : "Kars",
		"title" : "Merkez"
	},
	{
		"province" : "Kars",
		"title" : "Sarıkamış"
	},
	{
		"province" : "Kars",
		"title" : "Selim"
	},
	{
		"province" : "Kars",
		"title" : "Susuz"
	},
	{
		"province" : "Kastamonu",
		"title" : "Abana"
	},
	{
		"province" : "Kastamonu",
		"title" : "Ağlı"
	},
	{
		"province" : "Kastamonu",
		"title" : "Araç"
	},
	{
		"province" : "Kastamonu",
		"title" : "Azdavay"
	},
	{
		"province" : "Kastamonu",
		"title" : "Bozkurt"
	},
	{
		"province" : "Kastamonu",
		"title" : "Cide"
	},
	{
		"province" : "Kastamonu",
		"title" : "Çatalzeytin"
	},
	{
		"province" : "Kastamonu",
		"title" : "Daday"
	},
	{
		"province" : "Kastamonu",
		"title" : "Devrekani"
	},
	{
		"province" : "Kastamonu",
		"title" : "Doğanyurt"
	},
	{
		"province" : "Kastamonu",
		"title" : "Hanönü"
	},
	{
		"province" : "Kastamonu",
		"title" : "İhsangazi"
	},
	{
		"province" : "Kastamonu",
		"title" : "İnebolu"
	},
	{
		"province" : "Kastamonu",
		"title" : "Küre"
	},
	{
		"province" : "Kastamonu",
		"title" : "Merkez"
	},
	{
		"province" : "Kastamonu",
		"title" : "Pınarbaşı"
	},
	{
		"province" : "Kastamonu",
		"title" : "Seydiler"
	},
	{
		"province" : "Kastamonu",
		"title" : "Şenpazar"
	},
	{
		"province" : "Kastamonu",
		"title" : "Taşköprü"
	},
	{
		"province" : "Kastamonu",
		"title" : "Tosya"
	},
	{
		"province" : "Kayseri",
		"title" : "Akkışla"
	},
	{
		"province" : "Kayseri",
		"title" : "Bünyan"
	},
	{
		"province" : "Kayseri",
		"title" : "Develi"
	},
	{
		"province" : "Kayseri",
		"title" : "Felahiye"
	},
	{
		"province" : "Kayseri",
		"title" : "Hacılar"
	},
	{
		"province" : "Kayseri",
		"title" : "İncesu"
	},
	{
		"province" : "Kayseri",
		"title" : "Kocasinan"
	},
	{
		"province" : "Kayseri",
		"title" : "Melikgazi"
	},
	{
		"province" : "Kayseri",
		"title" : "Özvatan"
	},
	{
		"province" : "Kayseri",
		"title" : "Pınarbaşı"
	},
	{
		"province" : "Kayseri",
		"title" : "Sarıoğlan"
	},
	{
		"province" : "Kayseri",
		"title" : "Sarız"
	},
	{
		"province" : "Kayseri",
		"title" : "Talas"
	},
	{
		"province" : "Kayseri",
		"title" : "Tomarza"
	},
	{
		"province" : "Kayseri",
		"title" : "Yahyalı"
	},
	{
		"province" : "Kayseri",
		"title" : "Yeşilhisar"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Bahşılı"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Balışeyh"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Çelebi"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Delice"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Karakeçili"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Keskin"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Merkez"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Sulakyurt"
	},
	{
		"province" : "Kırıkkale",
		"title" : "Yahşihan"
	},
	{
		"province" : "Kırklareli",
		"title" : "Babaeski"
	},
	{
		"province" : "Kırklareli",
		"title" : "Demirköy"
	},
	{
		"province" : "Kırklareli",
		"title" : "Kofçaz"
	},
	{
		"province" : "Kırklareli",
		"title" : "Lüleburgaz"
	},
	{
		"province" : "Kırklareli",
		"title" : "Merkez"
	},
	{
		"province" : "Kırklareli",
		"title" : "Pehlivanköy"
	},
	{
		"province" : "Kırklareli",
		"title" : "Pınarhisar"
	},
	{
		"province" : "Kırklareli",
		"title" : "Vize"
	},
	{
		"province" : "Kırşehir",
		"title" : "Akçakent"
	},
	{
		"province" : "Kırşehir",
		"title" : "Akpınar"
	},
	{
		"province" : "Kırşehir",
		"title" : "Boztepe"
	},
	{
		"province" : "Kırşehir",
		"title" : "Çiçekdağı"
	},
	{
		"province" : "Kırşehir",
		"title" : "Kaman"
	},
	{
		"province" : "Kırşehir",
		"title" : "Merkez"
	},
	{
		"province" : "Kırşehir",
		"title" : "Mucur"
	},
	{
		"province" : "Kilis",
		"title" : "Elbeyli"
	},
	{
		"province" : "Kilis",
		"title" : "Merkez"
	},
	{
		"province" : "Kilis",
		"title" : "Musabeyli"
	},
	{
		"province" : "Kilis",
		"title" : "Polateli"
	},
	{
		"province" : "Kocaeli",
		"title" : "Başiskele"
	},
	{
		"province" : "Kocaeli",
		"title" : "Çayırova"
	},
	{
		"province" : "Kocaeli",
		"title" : "Darıca"
	},
	{
		"province" : "Kocaeli",
		"title" : "Derince"
	},
	{
		"province" : "Kocaeli",
		"title" : "Dilovası"
	},
	{
		"province" : "Kocaeli",
		"title" : "Gebze"
	},
	{
		"province" : "Kocaeli",
		"title" : "Gölcük"
	},
	{
		"province" : "Kocaeli",
		"title" : "İzmit"
	},
	{
		"province" : "Kocaeli",
		"title" : "Kandıra"
	},
	{
		"province" : "Kocaeli",
		"title" : "Karamürsel"
	},
	{
		"province" : "Kocaeli",
		"title" : "Kartepe"
	},
	{
		"province" : "Kocaeli",
		"title" : "Körfez"
	},
	{
		"province" : "Konya",
		"title" : "Ahırlı"
	},
	{
		"province" : "Konya",
		"title" : "Akören"
	},
	{
		"province" : "Konya",
		"title" : "Akşehir"
	},
	{
		"province" : "Konya",
		"title" : "Altınekin"
	},
	{
		"province" : "Konya",
		"title" : "Beyşehir"
	},
	{
		"province" : "Konya",
		"title" : "Bozkır"
	},
	{
		"province" : "Konya",
		"title" : "Cihanbeyli"
	},
	{
		"province" : "Konya",
		"title" : "Çeltik"
	},
	{
		"province" : "Konya",
		"title" : "Çumra"
	},
	{
		"province" : "Konya",
		"title" : "Derbent"
	},
	{
		"province" : "Konya",
		"title" : "Derebucak"
	},
	{
		"province" : "Konya",
		"title" : "Doğanhisar"
	},
	{
		"province" : "Konya",
		"title" : "Emirgazi"
	},
	{
		"province" : "Konya",
		"title" : "Ereğli"
	},
	{
		"province" : "Konya",
		"title" : "Güneysınır"
	},
	{
		"province" : "Konya",
		"title" : "Hadim"
	},
	{
		"province" : "Konya",
		"title" : "Halkapınar"
	},
	{
		"province" : "Konya",
		"title" : "Hüyük"
	},
	{
		"province" : "Konya",
		"title" : "Ilgın"
	},
	{
		"province" : "Konya",
		"title" : "Kadınhanı"
	},
	{
		"province" : "Konya",
		"title" : "Karapınar"
	},
	{
		"province" : "Konya",
		"title" : "Karatay"
	},
	{
		"province" : "Konya",
		"title" : "Kulu"
	},
	{
		"province" : "Konya",
		"title" : "Meram"
	},
	{
		"province" : "Konya",
		"title" : "Sarayönü"
	},
	{
		"province" : "Konya",
		"title" : "Selçuklu"
	},
	{
		"province" : "Konya",
		"title" : "Seydişehir"
	},
	{
		"province" : "Konya",
		"title" : "Taşkent"
	},
	{
		"province" : "Konya",
		"title" : "Tuzlukçu"
	},
	{
		"province" : "Konya",
		"title" : "Yalıhüyük"
	},
	{
		"province" : "Konya",
		"title" : "Yunak"
	},
	{
		"province" : "Kütahya",
		"title" : "Altıntaş"
	},
	{
		"province" : "Kütahya",
		"title" : "Aslanapa"
	},
	{
		"province" : "Kütahya",
		"title" : "Çavdarhisar"
	},
	{
		"province" : "Kütahya",
		"title" : "Domaniç"
	},
	{
		"province" : "Kütahya",
		"title" : "Dumlupınar"
	},
	{
		"province" : "Kütahya",
		"title" : "Emet"
	},
	{
		"province" : "Kütahya",
		"title" : "Gediz"
	},
	{
		"province" : "Kütahya",
		"title" : "Hisarcık"
	},
	{
		"province" : "Kütahya",
		"title" : "Merkez"
	},
	{
		"province" : "Kütahya",
		"title" : "Pazarlar"
	},
	{
		"province" : "Kütahya",
		"title" : "Simav"
	},
	{
		"province" : "Kütahya",
		"title" : "Şaphane"
	},
	{
		"province" : "Kütahya",
		"title" : "Tavşanlı"
	},
	{
		"province" : "Malatya",
		"title" : "Akçadağ"
	},
	{
		"province" : "Malatya",
		"title" : "Arapgir"
	},
	{
		"province" : "Malatya",
		"title" : "Arguvan"
	},
	{
		"province" : "Malatya",
		"title" : "Battalgazi"
	},
	{
		"province" : "Malatya",
		"title" : "Darende"
	},
	{
		"province" : "Malatya",
		"title" : "Doğanşehir"
	},
	{
		"province" : "Malatya",
		"title" : "Doğanyol"
	},
	{
		"province" : "Malatya",
		"title" : "Hekimhan"
	},
	{
		"province" : "Malatya",
		"title" : "Kale"
	},
	{
		"province" : "Malatya",
		"title" : "Kuluncak"
	},
	{
		"province" : "Malatya",
		"title" : "Pütürge"
	},
	{
		"province" : "Malatya",
		"title" : "Yazıhan"
	},
	{
		"province" : "Malatya",
		"title" : "Yeşilyurt"
	},
	{
		"province" : "Manisa",
		"title" : "Ahmetli"
	},
	{
		"province" : "Manisa",
		"title" : "Akhisar"
	},
	{
		"province" : "Manisa",
		"title" : "Alaşehir"
	},
	{
		"province" : "Manisa",
		"title" : "Demirci"
	},
	{
		"province" : "Manisa",
		"title" : "Gölmarmara"
	},
	{
		"province" : "Manisa",
		"title" : "Gördes"
	},
	{
		"province" : "Manisa",
		"title" : "Kırkağaç"
	},
	{
		"province" : "Manisa",
		"title" : "Köprübaşı"
	},
	{
		"province" : "Manisa",
		"title" : "Kula"
	},
	{
		"province" : "Manisa",
		"title" : "Salihli"
	},
	{
		"province" : "Manisa",
		"title" : "Sarıgöl"
	},
	{
		"province" : "Manisa",
		"title" : "Saruhanlı"
	},
	{
		"province" : "Manisa",
		"title" : "Selendi"
	},
	{
		"province" : "Manisa",
		"title" : "Soma"
	},
	{
		"province" : "Manisa",
		"title" : "Şehzadeler"
	},
	{
		"province" : "Manisa",
		"title" : "Turgutlu"
	},
	{
		"province" : "Manisa",
		"title" : "Yunusemre"
	},
	{
		"province" : "Mardin",
		"title" : "Artuklu"
	},
	{
		"province" : "Mardin",
		"title" : "Dargeçit"
	},
	{
		"province" : "Mardin",
		"title" : "Derik"
	},
	{
		"province" : "Mardin",
		"title" : "Kızıltepe"
	},
	{
		"province" : "Mardin",
		"title" : "Mazıdağı"
	},
	{
		"province" : "Mardin",
		"title" : "Midyat"
	},
	{
		"province" : "Mardin",
		"title" : "Nusaybin"
	},
	{
		"province" : "Mardin",
		"title" : "Ömerli"
	},
	{
		"province" : "Mardin",
		"title" : "Savur"
	},
	{
		"province" : "Mardin",
		"title" : "Yeşilli"
	},
	{
		"province" : "Mersin",
		"title" : "Akdeniz"
	},
	{
		"province" : "Mersin",
		"title" : "Anamur"
	},
	{
		"province" : "Mersin",
		"title" : "Aydıncık"
	},
	{
		"province" : "Mersin",
		"title" : "Bozyazı"
	},
	{
		"province" : "Mersin",
		"title" : "Çamlıyayla"
	},
	{
		"province" : "Mersin",
		"title" : "Erdemli"
	},
	{
		"province" : "Mersin",
		"title" : "Gülnar"
	},
	{
		"province" : "Mersin",
		"title" : "Mezitli"
	},
	{
		"province" : "Mersin",
		"title" : "Mut"
	},
	{
		"province" : "Mersin",
		"title" : "Silifke"
	},
	{
		"province" : "Mersin",
		"title" : "Tarsus"
	},
	{
		"province" : "Mersin",
		"title" : "Toroslar"
	},
	{
		"province" : "Mersin",
		"title" : "Yenişehir"
	},
	{
		"province" : "Muğla",
		"title" : "Bodrum"
	},
	{
		"province" : "Muğla",
		"title" : "Dalaman"
	},
	{
		"province" : "Muğla",
		"title" : "Datça"
	},
	{
		"province" : "Muğla",
		"title" : "Fethiye"
	},
	{
		"province" : "Muğla",
		"title" : "Kavaklıdere"
	},
	{
		"province" : "Muğla",
		"title" : "Köyceğiz"
	},
	{
		"province" : "Muğla",
		"title" : "Marmaris"
	},
	{
		"province" : "Muğla",
		"title" : "Menteşe"
	},
	{
		"province" : "Muğla",
		"title" : "Milas"
	},
	{
		"province" : "Muğla",
		"title" : "Ortaca"
	},
	{
		"province" : "Muğla",
		"title" : "Seydikemer"
	},
	{
		"province" : "Muğla",
		"title" : "Ula"
	},
	{
		"province" : "Muğla",
		"title" : "Yatağan"
	},
	{
		"province" : "Muş",
		"title" : "Bulanık"
	},
	{
		"province" : "Muş",
		"title" : "Hasköy"
	},
	{
		"province" : "Muş",
		"title" : "Korkut"
	},
	{
		"province" : "Muş",
		"title" : "Malazgirt"
	},
	{
		"province" : "Muş",
		"title" : "Merkez"
	},
	{
		"province" : "Muş",
		"title" : "Varto"
	},
	{
		"province" : "Nevşehir",
		"title" : "Acıgöl"
	},
	{
		"province" : "Nevşehir",
		"title" : "Avanos"
	},
	{
		"province" : "Nevşehir",
		"title" : "Derinkuyu"
	},
	{
		"province" : "Nevşehir",
		"title" : "Gülşehir"
	},
	{
		"province" : "Nevşehir",
		"title" : "Hacıbektaş"
	},
	{
		"province" : "Nevşehir",
		"title" : "Kozaklı"
	},
	{
		"province" : "Nevşehir",
		"title" : "Merkez"
	},
	{
		"province" : "Nevşehir",
		"title" : "Ürgüp"
	},
	{
		"province" : "Niğde",
		"title" : "Altunhisar"
	},
	{
		"province" : "Niğde",
		"title" : "Bor"
	},
	{
		"province" : "Niğde",
		"title" : "Çamardı"
	},
	{
		"province" : "Niğde",
		"title" : "Çiftlik"
	},
	{
		"province" : "Niğde",
		"title" : "Merkez"
	},
	{
		"province" : "Niğde",
		"title" : "Ulukışla"
	},
	{
		"province" : "Ordu",
		"title" : "Akkuş"
	},
	{
		"province" : "Ordu",
		"title" : "Altınordu"
	},
	{
		"province" : "Ordu",
		"title" : "Aybastı"
	},
	{
		"province" : "Ordu",
		"title" : "Çamaş"
	},
	{
		"province" : "Ordu",
		"title" : "Çatalpınar"
	},
	{
		"province" : "Ordu",
		"title" : "Çaybaşı"
	},
	{
		"province" : "Ordu",
		"title" : "Fatsa"
	},
	{
		"province" : "Ordu",
		"title" : "Gölköy"
	},
	{
		"province" : "Ordu",
		"title" : "Gülyalı"
	},
	{
		"province" : "Ordu",
		"title" : "Gürgentepe"
	},
	{
		"province" : "Ordu",
		"title" : "İkizce"
	},
	{
		"province" : "Ordu",
		"title" : "Kabadüz"
	},
	{
		"province" : "Ordu",
		"title" : "Kabataş"
	},
	{
		"province" : "Ordu",
		"title" : "Korgan"
	},
	{
		"province" : "Ordu",
		"title" : "Kumru"
	},
	{
		"province" : "Ordu",
		"title" : "Mesudiye"
	},
	{
		"province" : "Ordu",
		"title" : "Perşembe"
	},
	{
		"province" : "Ordu",
		"title" : "Ulubey"
	},
	{
		"province" : "Ordu",
		"title" : "Ünye"
	},
	{
		"province" : "Osmaniye",
		"title" : "Bahçe"
	},
	{
		"province" : "Osmaniye",
		"title" : "Düziçi"
	},
	{
		"province" : "Osmaniye",
		"title" : "Hasanbeyli"
	},
	{
		"province" : "Osmaniye",
		"title" : "Kadirli"
	},
	{
		"province" : "Osmaniye",
		"title" : "Merkez"
	},
	{
		"province" : "Osmaniye",
		"title" : "Sumbas"
	},
	{
		"province" : "Osmaniye",
		"title" : "Toprakkale"
	},
	{
		"province" : "Rize",
		"title" : "Ardeşen"
	},
	{
		"province" : "Rize",
		"title" : "Çamlıhemşin"
	},
	{
		"province" : "Rize",
		"title" : "Çayeli"
	},
	{
		"province" : "Rize",
		"title" : "Derepazarı"
	},
	{
		"province" : "Rize",
		"title" : "Fındıklı"
	},
	{
		"province" : "Rize",
		"title" : "Güneysu"
	},
	{
		"province" : "Rize",
		"title" : "Hemşin"
	},
	{
		"province" : "Rize",
		"title" : "İkizdere"
	},
	{
		"province" : "Rize",
		"title" : "İyidere"
	},
	{
		"province" : "Rize",
		"title" : "Kalkandere"
	},
	{
		"province" : "Rize",
		"title" : "Merkez"
	},
	{
		"province" : "Rize",
		"title" : "Pazar"
	},
	{
		"province" : "Sakarya",
		"title" : "Adapazarı"
	},
	{
		"province" : "Sakarya",
		"title" : "Akyazı"
	},
	{
		"province" : "Sakarya",
		"title" : "Arifiye"
	},
	{
		"province" : "Sakarya",
		"title" : "Erenler"
	},
	{
		"province" : "Sakarya",
		"title" : "Ferizli"
	},
	{
		"province" : "Sakarya",
		"title" : "Geyve"
	},
	{
		"province" : "Sakarya",
		"title" : "Hendek"
	},
	{
		"province" : "Sakarya",
		"title" : "Karapürçek"
	},
	{
		"province" : "Sakarya",
		"title" : "Karasu"
	},
	{
		"province" : "Sakarya",
		"title" : "Kaynarca"
	},
	{
		"province" : "Sakarya",
		"title" : "Kocaali"
	},
	{
		"province" : "Sakarya",
		"title" : "Pamukova"
	},
	{
		"province" : "Sakarya",
		"title" : "Sapanca"
	},
	{
		"province" : "Sakarya",
		"title" : "Serdivan"
	},
	{
		"province" : "Sakarya",
		"title" : "Söğütlü"
	},
	{
		"province" : "Sakarya",
		"title" : "Taraklı"
	},
	{
		"province" : "Samsun",
		"title" : "19 Mayıs"
	},
	{
		"province" : "Samsun",
		"title" : "Alaçam"
	},
	{
		"province" : "Samsun",
		"title" : "Asarcık"
	},
	{
		"province" : "Samsun",
		"title" : "Atakum"
	},
	{
		"province" : "Samsun",
		"title" : "Ayvacık"
	},
	{
		"province" : "Samsun",
		"title" : "Bafra"
	},
	{
		"province" : "Samsun",
		"title" : "Canik"
	},
	{
		"province" : "Samsun",
		"title" : "Çarşamba"
	},
	{
		"province" : "Samsun",
		"title" : "Havza"
	},
	{
		"province" : "Samsun",
		"title" : "İlkadım"
	},
	{
		"province" : "Samsun",
		"title" : "Kavak"
	},
	{
		"province" : "Samsun",
		"title" : "Ladik"
	},
	{
		"province" : "Samsun",
		"title" : "Salıpazarı"
	},
	{
		"province" : "Samsun",
		"title" : "Tekkeköy"
	},
	{
		"province" : "Samsun",
		"title" : "Terme"
	},
	{
		"province" : "Samsun",
		"title" : "Vezirköprü"
	},
	{
		"province" : "Samsun",
		"title" : "Yakakent"
	},
	{
		"province" : "Siirt",
		"title" : "Baykan"
	},
	{
		"province" : "Siirt",
		"title" : "Eruh"
	},
	{
		"province" : "Siirt",
		"title" : "Kurtalan"
	},
	{
		"province" : "Siirt",
		"title" : "Merkez"
	},
	{
		"province" : "Siirt",
		"title" : "Pervari"
	},
	{
		"province" : "Siirt",
		"title" : "Şirvan"
	},
	{
		"province" : "Siirt",
		"title" : "Tillo"
	},
	{
		"province" : "Sinop",
		"title" : "Ayancık"
	},
	{
		"province" : "Sinop",
		"title" : "Boyabat"
	},
	{
		"province" : "Sinop",
		"title" : "Dikmen"
	},
	{
		"province" : "Sinop",
		"title" : "Durağan"
	},
	{
		"province" : "Sinop",
		"title" : "Erfelek"
	},
	{
		"province" : "Sinop",
		"title" : "Gerze"
	},
	{
		"province" : "Sinop",
		"title" : "Merkez"
	},
	{
		"province" : "Sinop",
		"title" : "Saraydüzü"
	},
	{
		"province" : "Sinop",
		"title" : "Türkeli"
	},
	{
		"province" : "Sivas",
		"title" : "Akıncılar"
	},
	{
		"province" : "Sivas",
		"title" : "Altınyayla"
	},
	{
		"province" : "Sivas",
		"title" : "Divriği"
	},
	{
		"province" : "Sivas",
		"title" : "Doğanşar"
	},
	{
		"province" : "Sivas",
		"title" : "Gemerek"
	},
	{
		"province" : "Sivas",
		"title" : "Gölova"
	},
	{
		"province" : "Sivas",
		"title" : "Gürün"
	},
	{
		"province" : "Sivas",
		"title" : "Hafik"
	},
	{
		"province" : "Sivas",
		"title" : "İmranlı"
	},
	{
		"province" : "Sivas",
		"title" : "Kangal"
	},
	{
		"province" : "Sivas",
		"title" : "Koyulhisar"
	},
	{
		"province" : "Sivas",
		"title" : "Merkez"
	},
	{
		"province" : "Sivas",
		"title" : "Suşehri"
	},
	{
		"province" : "Sivas",
		"title" : "Şarkışla"
	},
	{
		"province" : "Sivas",
		"title" : "Ulaş"
	},
	{
		"province" : "Sivas",
		"title" : "Yıldızeli"
	},
	{
		"province" : "Sivas",
		"title" : "Zara"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Akçakale"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Birecik"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Bozova"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Ceylanpınar"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Eyyübiye"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Halfeti"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Haliliye"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Harran"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Hilvan"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Karaköprü"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Siverek"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Suruç"
	},
	{
		"province" : "Şanlıurfa",
		"title" : "Viranşehir"
	},
	{
		"province" : "Şırnak",
		"title" : "Beytüşşebap"
	},
	{
		"province" : "Şırnak",
		"title" : "Cizre"
	},
	{
		"province" : "Şırnak",
		"title" : "Güçlükonak"
	},
	{
		"province" : "Şırnak",
		"title" : "İdil"
	},
	{
		"province" : "Şırnak",
		"title" : "Merkez"
	},
	{
		"province" : "Şırnak",
		"title" : "Silopi"
	},
	{
		"province" : "Şırnak",
		"title" : "Uludere"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Çerkezköy"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Çorlu"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Ergene"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Hayrabolu"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Kapaklı"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Malkara"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Marmaraereğlisi"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Muratlı"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Saray"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Süleymanpaşa"
	},
	{
		"province" : "Tekirdağ",
		"title" : "Şarköy"
	},
	{
		"province" : "Tokat",
		"title" : "Almus"
	},
	{
		"province" : "Tokat",
		"title" : "Artova"
	},
	{
		"province" : "Tokat",
		"title" : "Başçiftlik"
	},
	{
		"province" : "Tokat",
		"title" : "Erbaa"
	},
	{
		"province" : "Tokat",
		"title" : "Merkez"
	},
	{
		"province" : "Tokat",
		"title" : "Niksar"
	},
	{
		"province" : "Tokat",
		"title" : "Pazar"
	},
	{
		"province" : "Tokat",
		"title" : "Reşadiye"
	},
	{
		"province" : "Tokat",
		"title" : "Sulusaray"
	},
	{
		"province" : "Tokat",
		"title" : "Turhal"
	},
	{
		"province" : "Tokat",
		"title" : "Yeşilyurt"
	},
	{
		"province" : "Tokat",
		"title" : "Zile"
	},
	{
		"province" : "Trabzon",
		"title" : "Akçaabat"
	},
	{
		"province" : "Trabzon",
		"title" : "Araklı"
	},
	{
		"province" : "Trabzon",
		"title" : "Arsin"
	},
	{
		"province" : "Trabzon",
		"title" : "Beşikdüzü"
	},
	{
		"province" : "Trabzon",
		"title" : "Çarşıbaşı"
	},
	{
		"province" : "Trabzon",
		"title" : "Çaykara"
	},
	{
		"province" : "Trabzon",
		"title" : "Dernekpazarı"
	},
	{
		"province" : "Trabzon",
		"title" : "Düzköy"
	},
	{
		"province" : "Trabzon",
		"title" : "Hayrat"
	},
	{
		"province" : "Trabzon",
		"title" : "Köprübaşı"
	},
	{
		"province" : "Trabzon",
		"title" : "Maçka"
	},
	{
		"province" : "Trabzon",
		"title" : "Of"
	},
	{
		"province" : "Trabzon",
		"title" : "Ortahisar"
	},
	{
		"province" : "Trabzon",
		"title" : "Sürmene"
	},
	{
		"province" : "Trabzon",
		"title" : "Şalpazarı"
	},
	{
		"province" : "Trabzon",
		"title" : "Tonya"
	},
	{
		"province" : "Trabzon",
		"title" : "Vakfıkebir"
	},
	{
		"province" : "Trabzon",
		"title" : "Yomra"
	},
	{
		"province" : "Tunceli",
		"title" : "Çemişgezek"
	},
	{
		"province" : "Tunceli",
		"title" : "Hozat"
	},
	{
		"province" : "Tunceli",
		"title" : "Mazgirt"
	},
	{
		"province" : "Tunceli",
		"title" : "Merkez"
	},
	{
		"province" : "Tunceli",
		"title" : "Nazımiye"
	},
	{
		"province" : "Tunceli",
		"title" : "Ovacık"
	},
	{
		"province" : "Tunceli",
		"title" : "Pertek"
	},
	{
		"province" : "Tunceli",
		"title" : "Pülümür"
	},
	{
		"province" : "Uşak",
		"title" : "Banaz"
	},
	{
		"province" : "Uşak",
		"title" : "Eşme"
	},
	{
		"province" : "Uşak",
		"title" : "Karahallı"
	},
	{
		"province" : "Uşak",
		"title" : "Merkez"
	},
	{
		"province" : "Uşak",
		"title" : "Sivaslı"
	},
	{
		"province" : "Uşak",
		"title" : "Ulubey"
	},
	{
		"province" : "Van",
		"title" : "Bahçesaray"
	},
	{
		"province" : "Van",
		"title" : "Başkale"
	},
	{
		"province" : "Van",
		"title" : "Çaldıran"
	},
	{
		"province" : "Van",
		"title" : "Çatak"
	},
	{
		"province" : "Van",
		"title" : "Edremit"
	},
	{
		"province" : "Van",
		"title" : "Erciş"
	},
	{
		"province" : "Van",
		"title" : "Gevaş"
	},
	{
		"province" : "Van",
		"title" : "Gürpınar"
	},
	{
		"province" : "Van",
		"title" : "İpekyolu"
	},
	{
		"province" : "Van",
		"title" : "Muradiye"
	},
	{
		"province" : "Van",
		"title" : "Özalp"
	},
	{
		"province" : "Van",
		"title" : "Saray"
	},
	{
		"province" : "Van",
		"title" : "Tuşba"
	},
	{
		"province" : "Yalova",
		"title" : "Altınova"
	},
	{
		"province" : "Yalova",
		"title" : "Armutlu"
	},
	{
		"province" : "Yalova",
		"title" : "Çınarcık"
	},
	{
		"province" : "Yalova",
		"title" : "Çiftlikköy"
	},
	{
		"province" : "Yalova",
		"title" : "Merkez"
	},
	{
		"province" : "Yalova",
		"title" : "Termal"
	},
	{
		"province" : "Yozgat",
		"title" : "Akdağmadeni"
	},
	{
		"province" : "Yozgat",
		"title" : "Aydıncık"
	},
	{
		"province" : "Yozgat",
		"title" : "Boğazlıyan"
	},
	{
		"province" : "Yozgat",
		"title" : "Çandır"
	},
	{
		"province" : "Yozgat",
		"title" : "Çayıralan"
	},
	{
		"province" : "Yozgat",
		"title" : "Çekerek"
	},
	{
		"province" : "Yozgat",
		"title" : "Kadışehri"
	},
	{
		"province" : "Yozgat",
		"title" : "Merkez"
	},
	{
		"province" : "Yozgat",
		"title" : "Saraykent"
	},
	{
		"province" : "Yozgat",
		"title" : "Sarıkaya"
	},
	{
		"province" : "Yozgat",
		"title" : "Sorgun"
	},
	{
		"province" : "Yozgat",
		"title" : "Şefaatli"
	},
	{
		"province" : "Yozgat",
		"title" : "Yenifakılı"
	},
	{
		"province" : "Yozgat",
		"title" : "Yerköy"
	},
	{
		"province" : "Zonguldak",
		"title" : "Alaplı"
	},
	{
		"province" : "Zonguldak",
		"title" : "Çaycuma"
	},
	{
		"province" : "Zonguldak",
		"title" : "Devrek"
	},
	{
		"province" : "Zonguldak",
		"title" : "Ereğli"
	},
	{
		"province" : "Zonguldak",
		"title" : "Gökçebey"
	},
	{
		"province" : "Zonguldak",
		"title" : "Kilimli"
	},
	{
		"province" : "Zonguldak",
		"title" : "Kozlu"
	},
	{
		"province" : "Zonguldak",
		"title" : "Merkez"
	}
]

Fastify'a test ekleyelim.

Ornegin:

'use strict'

const { test } = require('tap')
const build = require('./app')

test('requests the "/" route', async t => {
  const app = build()

  const response = await app.inject({
    method: 'GET',
    url: '/'
  })
  t.equal(response.statusCode, 200, 'returns a status code of 200')
})

Node 18 kullandigimiz icin node:test modulunu kullanabiliriz test runner olarak. Ornegin: https://nodejs.org/api/test.html

pr squash merge?

Bazı pr larda gereksiz commit ler gözüküyor. Pr larda commit leri merge etmeden squash yapılması akışın takibini daha kolaylaştırabilir.

Zafiyet : Information Disclosure

Zafiyet: Hassas Bilgi İfşası

Zafiyet Açıklaması: Kullanıcı adı , soyadı , telefon numarası gibi veriler uygulamada clear text olarak gözükmemektedir. Fakat uygulamadan dönen cevaplar incelendiğinde verilerin kullanıcıya açık bir şekilde gönderildiği gözükmektedir. Sadece arayüzde yıldızlı olarak gözükmektedir.

Bahsi Geçen İstekler:
image0modified

image1modified

Verileri döndüren URL : deprem.io/elasticsearch/msearch ve deprem.io/api/1.1/init/data?location=

Yeniden üretme adımları:

1.https://deprem.io/yardim-list-enkaz adresine gidin
2.Burp Suite intercepti açıp herhangi birinde "Detaya git"e basın.
image
3.elasticsearch/msearch ya da /api/1.1/init/data?location= ile başlayan request gelene kadar forward edin.
image
4.Bulduğunuz zaman repeater'a yollayın.
image
5.Bize gönderilen response'da veriler sansürsüz bir şekilde görülebilmekte.
image

Çözüm Önerisi : Yıldızlama işlemi sunucuda yapılıp, uygulama arayüzüne şifreli olarak gönderilmelidir.

Add Redis Cache

  • Redis varsa redis kurulumu, yoksa async-cache-dedupe kullanalim
  • Dockera eklenecek bunlar

/ara-yardim 404

Örnek query https://deprem-27jjydhzba-ew.a.run.app/ara-yardim/?q=&yardimDurumu=&yardimTipi=gida&acilDurum=orta&aracDurumu=&

404 dönüyor filtreleme kısmında

Data CSV export and Send email

Veriyi csv olarak çıkartıp email atacak bir enpoint lazım kendi emailiniz ile test edin tek bir email adresine mail atacak onu statik olarak paylaşacağım. Mevcut endpointleri değiştirmeyin

Performans Sorunu ve Test Talebi

Bazı durumlarda iki kere response dönüyor gibi buraya sürekli istek gelirse bu hata caseleri performansı öldürür.
Kontrol edilip test edilmesi lazım. Backendi ayağa kaldırın tüm endpointlere istek atın bu hata mesajlarında dönmüyor try catch içinde erroru console log olarak basmanız lazım enson ekleYardimKaydi endpointinde gördüm.

hata mesajı

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
    at new NodeError (node:internal/errors:393:5)
    at ServerResponse.setHeader (node:_http_outgoing:644:11)
    at ServerResponse.header (/Users/felix/Documents/deprem/deprem-io-backend/node_modules/express/lib/response.js:794:10)
    at ServerResponse.send (/Users/felix/Documents/deprem/deprem-io-backend/node_modules/express/lib/response.js:174:12)
    at ServerResponse.json (/Users/felix/Documents/deprem/deprem-io-backend/node_modules/express/lib/response.js:278:15)
    at /Users/felix/Documents/deprem/deprem-io-backend/routes/urls.js:625:23
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  code: 'ERR_HTTP_HEADERS_SENT'
}

MVC Sonrası Cache instance import hatası.

MVC'ye çevrildikten sonra ilgili cache içeriye eklenmemiş. Bundan dolayı patlama yaşatıyor.

{
"statusCode": 500,
"error": "Internal Server Error",
"message": "cache.getCache is not a function"
}

null check for request inputs

tüm endpointlerde her türlü exception'a karşı try-catch ile önlem alınmış fakat try catch maliyetli bir çözüm ve sorunsuz çalışan bir senaryoda dahi yavaşlamaya neden oluyor. yoğun trafik alabilecek bir uygulamada bunun önüne geçmek için try-catch'i yalnızca db connection'ın yapıldığı noktalarda kullanmalı, null check'i ise if kontrolleriyle yapmalıyız.
örnek olması açısından:

if(request==null)
return badrequest;
try
{
db.getall();
}catch{
return internalerror;
}

Telefon Doğrulama

Modeller içerisine match property'si eklenerek doğrulama yapılabilir. Yetkim olmadığı için branch'i push'layamadım.

const mongoose = require("mongoose");

// yardım istyenlerin model dosyası
const yardimSchema = new mongoose.Schema(
{
yardimTipi: { // Gıda, İlaç, Enkaz, Isınma, Kayıp
type: String,
required: true
},
adSoyad: {
type: String,
required: true
},
telefon: {
type: String,
required: false,
match: /^+?[\d\s]+$/,
},
yedekTelefonlar: {
type: [String],
required: false
},
email: {
type: String,
required: false
},
adres: {
type: String,
required: true
},
adresTarifi: {
type: String,
required: false
},
acilDurum: {
type: String,
enum: ['normal', 'orta', 'kritik'],
required: true
},
kisiSayisi: {
type: String,
required: false
},
yardimDurumu: {
type: String,
enum: ['bekleniyor', 'yolda','yapildi'],
required: true
},
fizikiDurum: {
type: String,
required: false
},
googleMapLink: {
type: String,
required: false
},

tweetLink: {
  type: String,
  required: false
},

fields: { // Tüm alternatif kullanımlar için buraya json yollayın
  type: Object,
  required: false
},

ip: {
  type: String,
  required: true,
  select: false
},

},
{ timestamps: true }
);

const Yardim = mongoose.model("yardim", yardimSchema);

module.exports = Yardim;

/yardim boş telefon hatası

telefon : "" gelince hata veriyor
hata kodu
{"statusCode":400,"error":"Bad Request","message":"body/telefon must NOT have fewer than 10 characters"}
Frontendden şöyle geliyor data


{
    "yardimTipi": "enkaz",
    "yardimDurumu": "bekleniyor",
    "adSoyad": "asdfasdf asdfsdaf",
    "email": "[email protected]",
    "telefon": "",
    "kisiSayisi": "",
    "adres": "sadfasdf",
    "adresTarifi": "asdfasdf",
    "acilDurum": "orta",
    "fizikiDurum": "asdfsdaf",
    "tweetLink": "",
    "fields-kvkk": "on",
    "yedekTelefonlar": []
}

/yardimet return 500

Json

{
    "yardimTipi": "gidatasima",
    "adSoyad": "jo2hn23",
    "telefon": "5555555555",
    "sehir": "emre",
    "aciklama": "Need transportation to Ankara",
    "yardimDurumu":"yolda"
  
      }

Response

{
    "statusCode": 500,
    "error": "Internal Server Error",
    "message": "clientIp is not defined"
}

PRODUCTION DAY!

Arkadaşlar yeni özellik eklemiyoruz. Teknik borcumuz olsun. Bugları çözüyoruz sadece bugün productiona taşıyorum çok teşekkür ederim herkese.

Backend ngram searchten yararlanabilir

Search endpointleri su an icin structured data aliyor.
Eger indexing + ngram search implement edersek, konuyu dusunmeden insanlar keyword arayabilirler.
Elimizdeki datayi indexleyip instancelarin lokal disk cacheinde tutmanin su dakikada problem olacagini zannetmiyorum.

Bu konuda hali hazirda gunluk olarak kullandigim ve tecrubem olan tantivy kutuphanesini oneriyorum.
Node js bindingleri de mevcut.

Eger benzer fikirlerdeyseniz ve database semasi belli ise neyi nasil indexleyecegimiz konusunda fikir yurutup bir PR ile gelebilirim.

Boylece ngramlar uzerinden arama yaptigimizda
filtrele -> listelere ulas modelini
dusundugunu yaz -> aradigini bul modeline gecirebiliriz.

`/yardim` Aynı Yardımın Tekrar Tekrar Eklenmesi

Yardımlar eklenirken yalnızca "adres" alanı kontrol ediliyor. Adres alanında tek bir karakter değiştirilerek aynı yardım tekrar eklenebilir. Telefon, tweet gibi birden fazla alanın kontrolü sağlanabilir. İhtiyaç duyulan seviyede rate-limit belirlenerek #cloudsec kanalıyla paylaşılabilir.

image

image

Telefon Numaraları kontrol edilecek

  • Post olarak gönderilen telefon numaraları çok basitçe kontrol edin
  • 0 ile başlama zorunluluğu olmasın onu tolere edecek bir fonksiyon yazın

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.