Real Estate Marketplace

Veritabanı Şeması Sunumu

Mimari Yapı

Proje Amacı: BAE'deki premium gayrimenkul projeleri için e-ticaret tarzı pazar yeri. 15+ önde gelen geliştiricinin lüks mülklerini detaylı ünite bilgileri, esnek ödeme planları ve yatırım analizleri ile keşfetmek, göz atmak ve karşılaştırmak için bir platform.
GELİŞTİRİCİLER (Şirketler) ↓ ├── PROJELER (Binalar/Topluluklar) │ ↓ │ └── ÜNİTELER (Bireysel Mülkler) │ └── ÜNİTELER (Geliştirici Referansı)
Koleksiyon 1: DEVELOPERS

Gayrimenkul Şirketleri

Amaç

Bu koleksiyon gayrimenkul geliştirici şirketlerinin bilgilerini saklar (Bingatti, Meraas, Nakheel, DAMAC, Aldar, Sobha Realty, vb.).

Bu verilerle neler yapabilirsiniz:
  • Geliştirici Filtresi: Kullanıcıların güvendikleri belirli geliştiricileri seçerek projeleri filtrelemesine olanak tanır
  • Şirket Profilleri: Logo, değerlendirme, iletişim bilgileri ve şirket videoları ile zengin geliştirici profillerini görüntülemeye yardımcı olur
  • Marka Güven Göstergeleri: Alıcı güvenini oluşturmak için derecelendirmeleri ve kuruluş yılını göstermeye olanak sağlar
  • Doğrudan İletişim: Geliştirici ile anında iletişim için WhatsApp, email, telefon bilgilerini sunmaya yardımcı olur
  • Medya Galerisi: Proje görselleri ve videoları ile geliştirici portföylerini sergilemeye olanak tanır
  • SEO Optimizasyonu: Her geliştiriciyi arama motoru görünürlüğü için anahtar kelimelerle indekslemeye yardımcı olur

Alan Yapısı

Alan Tip Durum Açıklama
_id ObjectId Gerekli Benzersiz tanımlayıcı
name String Gerekli Geliştirici adı (benzersiz, arama için indekslenmiş)
slug String Gerekli URL dostu ad (yönlendirme için)
established_year Number Opsiyonel Şirket kuruluş yılı (güven göstergesi)
ratings Number Opsiyonel 1-5 arası değerlendirme (profilde gösterilir)
contact.* Object Opsiyonel Email, telefon, WhatsApp, website
media.* Object Opsiyonel Logo, görseller, tanıtım videoları
seo.* Object Opsiyonel Arama optimizasyonu için meta etiketleri
Koleksiyon 2: PROJECTS

Binalar ve Topluluklar

Amaç

Bu koleksiyon bina ve topluluk projelerini konum, zaman çizelgesi, teknik özellikler, olanaklar ve fiyatlandırma ile saklar.

Bu verilerle neler yapabilirsiniz:
  • Proje Tarayıcısı: Tüm projeleri güzel kartlar, fotoğraflar ve açıklamalarla görüntülemeye olanak tanır
  • Harita Entegrasyonu: Coğrafi konum koordinatları ile etkileşimli haritalarda projeleri göstermeye yardımcı olur
  • Zaman Çizelgesi Takibi: İnşaat fazları, kilometre taşları ve tamamlanma yüzdesini izlemeye olanak sağlar
  • Durum Filtreleme: Projeleri duruma göre filtrelemeye yardımcı olur (ön-plan, inşaat altında, hazır, tamamlanmış)
  • Olanaklar Sergisi: Açık/kapalı alanların olanakları, güvenlik özellikleri, konut hizmetlerini göstermeye olanak tanır
  • Akıllı Filtreleme: Şehir, alan, fiyat aralığı, bina yüksekliği, arsa büyüklüğüne göre filtrelemeye yardımcı olur
  • Yatırım Bilgisi: Kira getirisini ve yatırım potansiyelini göstermeye olanak sağlar
  • Öne Çıkan Projeler: Sıcak anlaşmaları ve öne çıkan projeleri anasayfa promosyonu için işaretlemeye yardımcı olur
  • İstatistik Panosu: Proje görüntülemelerini, istek listesi eklemelerini, sorguları ve incelemeleri takip etmeye olanak tanır

Önemli Alanlar

Alan Tip Önemli Fayda
developer.id ObjectId Geliştiriciye bağlantı, geliştirici filtresi etkinleştir
status Enum Proje fazına göre filtrele (ön-plan, hazır, vb.)
location.coordinates GeoJSON Harita entegrasyonu, konuma dayalı arama (yarıçap)
timeline.* Object İlerleme çubuğu, kilometre taşları, tamamlanma tarihini göster
specs.* Object Bina yüksekliği, arsa büyüklüğü, ünite sayısına göre filtrele
amenities.* Object Olanak filtresi, özellikleri sergile
pricing.* Object Fiyat aralığı filtresi, metrekare başına fiyat karşılaştırması
stats.* Object Popülerliği takip et, trend projeler, en çok görüntülenenler
Koleksiyon 3: UNITS

Bireysel Mülkler

Amaç

Bu koleksiyon bireysel mülk birimlerini (daireler) detaylı fiyatlandırma, birden fazla esnek ödeme planı, özellikler, döşemeler ve yatırım tahminleri ile saklar.

Bu verilerle neler yapabilirsiniz:
  • Ünite Listeleri: Her daireyi detaylı özellikler, fotoğraflar, videolar, kat planları ile görüntülemeye olanak tanır
  • Fiyat Karşılaştırması: Fiyat aralığına, metrekare başına fiyata göre filtrelemeye ve benzer üniteleri karşılaştırmaya yardımcı olur
  • Çok Planlı Fiyatlandırma: Farklı programlar ve indirimlerle 3+ ödeme planı seçeneğini göstermeye olanak sağlar
  • Akıllı Filtreleme: Türe (1BR, 2BR, 3BR), kat seviyesine, görüntü türüne, özelliklere göre filtrelemeye yardımcı olur
  • Ödeme Hesaplayıcısı: Kilometre taşı tabanlı tutarlar ile ödeme programlarını göstermeye olanak tanır
  • Yatırım Analizi: Kira getirisini, ROI, fiyat artışı projeksiyonlarını göstermeye yardımcı olur (1/3/5/10 yıl)
  • Envanter Yönetimi: Ünite durumunu takip etmeye olanak sağlar (mevcut, satılmış, rezerve, pazardan çıkmış)
  • Özellik Vurguları: Özel özellikleri göstermeye yardımcı olur (balkon, hizmetçi odası, akıllı ev, otopark yerleri)
  • İstek Listesi ve Karşılaştırma: Kullanıcıların üniteleri kaydetmesine ve başkalarıyla karşılaştırmasına olanak tanır
  • Fiyat Geçmişi: Pazar analizi için zaman içindeki fiyat değişikliklerini takip etmeye yardımcı olur

En Önemli: Ödeme Seçenekleri

✓ Birden Fazla Ödeme Planı: Her ünite, farklı koşullara sahip 3+ ödeme planı seçeneğine sahip olabilir (60/40 bölünme, 50/50, özel programlar). Her plan kilometre taşı tabanlı ödemeler, indirimler ve faydalar içerir. Bu, esnek ödemenin önemli bir satış noktası olduğu BAE gayrimenkul pazarı için çok önemlidir.

Önemli Alanlar

Alan Tip Uygulama Özelliği
unit_code String Takip için benzersiz ünite tanımlayıcısı
project_id ObjectId Projeye bağlantı, proje filtresi etkinleştir
type Enum Oda sayısına göre filtrele (Studio, 1BR, 2BR, 3BR)
floor.* Object Kat seviyesi, görüntü türü, kat kategorisi göster
areas.* Object Toplam alan, net alan, teras boyutunu kat planları ile göster
pricing.* Object Fiyat filtresi, metrekare başına fiyat karşılaştırması, fiyat geçmişi
payment_options[] Array Ödeme planı seçici, program hesaplayıcı, indirim gösterimi
status Enum Kullanılabilirlik durumunu göster (mevcut, satılmış, rezerve)
features.* Object Olanaklara göre filtrele (balkon, hizmetçi odası, akıllı ev, otopark)
investment.* Object Yatırım hesaplayıcı, kira getirisi, ROI zaman çizelgesi
stats.* Object Popülerlik rozetleri, trend üniteler, inceleme sayıları göster

Filtreleme ve Arama Yetenekleri

Gerçek Zamanlı Filtreleme Özellikleri

Bu sorgular, kullanıcıların tam olarak aradıklarını ne kadar kolay bulabileceğini gösterir. Karmaşık backend mantığına gerek yok - MongoDB indekslerimizle her şeyi verimli bir şekilde işler.

1. Konum ile Arama (Harita Tabanlı)

// Kullanıcı konumunun 5km yarıçapındaki tüm projeleri bul
db.projects.find({
  "location.coordinates": {
    $near: { $geometry: { type: "Point", coordinates: [55.27, 25.19] }, $maxDistance: 5000 }
  }
}).limit(20)
Uygulama Özelliği: Seçilen yarıçap içindeki tüm projeleri gösteren etkileşimli harita. Kullanıcılar harita üzerinde sürükleyerek arama alanını dinamik olarak ayarlayabilir ve anında sonuç alabilir.

2. Bütçe ve Türe Göre Filtrele

// Dubai'de 2M AED'in altındaki tüm 2BR daireleri bul
db.units.find({
  type: "2BR",
  status: "available",
  "pricing.base_price": { $lte: 2000000 },
  developer_id: { $in: [/* Dubai geliştiricileri */] }
}).sort({ "pricing.base_price": 1 })
Uygulama Özelliği: Fiyat kaydırıcısı (100K - 10M AED) ve oda türü seçici ile kullanıcı kaydırıcıyı hareket ettirdikçe sonuçlar gerçek zamanlı güncellenir. Eşleşen ünite sayısı anında görüntülenir.

3. Geliştirici Tarafından Filtrele

// Bingatti Properties'den tüm mevcut üniteleri göster
db.units.find({
  developer_id: ObjectId("507f..."),
  status: "available"
}).sort({ "stats.wishlist_adds": -1 }).limit(50)
Uygulama Özelliği: Şirket logoları ile geliştirici filtresi. "Bingatti'dan 245 mevcut ünite" bilgi rozeti görüntülenir. Tüm Bingatti projelerini karşılaştırmak için tek tıklama yeterlidir.

4. Karmaşık Çok Filtreli Arama

// Gelişmiş arama: Marina görüşü, yüksek kat, akıllı ev, 1-2BR, 1-2M AED
db.units.find({
  type: { $in: ["1BR", "2BR"] },
  "floor.view": "Marina View",
  "floor.floor_type": "high-floor",
  "features.smart_home": true,
  "pricing.base_price": { $gte: 1000000, $lte: 2000000 },
  status: "available"
})
Uygulama Özelliği: 6+ filtre seçeneğine sahip gelişmiş arama modu. Kullanıcılar yan çubukta filtreleri birleştirebilir. "12 sonuç gösteriliyor" mesajı ile sıralama seçenekleri sunulur (fiyat, en yeni, en çok görüntülenen).

5. Sıcak Anlaşmalar ve Öne Çıkan Projeler

// Dubai'deki sıcak anlaşmaları ve öne çıkan projeleri göster
db.projects.find({
  $or: [ { is_hot_deal: true }, { visibility: "featured" } ],
  "location.city": "Dubai"
}).sort({ "stats.total_views": -1 }).limit(12)
Uygulama Özelliği: Sıcak fırsat rozeti ile anasayfa banneri, öne çıkan projeler karuseli ve "bu hafta en çok görüntülenenler" sıralaması dinamik olarak güncellenir.

6. Yatırım Analiz Karşılaştırması

// Üniteler arasında kira ROI'sini karşılaştır
db.units.find({
  project_id: ObjectId("507f..."),
  status: "available"
}).project({ 
  unit_code: 1, 
  "pricing.base_price": 1,
  "investment.estimated_rental_price": 1,
  "investment.estimated_roi_months": 1 
})
Uygulama Özelliği: Aylık kira, yıllık getiri yüzdesi ve aylar içinde ROI gösteren yatırım hesaplayıcısı. "Bu ünite kendisini 180 ay içinde amorti eder" gibi anlamlı göstergeler sunulur.

7. Ödeme Planı Karşılaştırması

// Bir ünite için tüm ödeme planı seçeneklerini al
db.units.findOne(
  { unit_code: "DDB-T1-1501-A" },
  { "payment_options": 1 }
)
Uygulama Özelliği: Yan yana 3+ ödeme planı seçeneği sunan karşılaştırma paneli. Her plan peşin ödeme, ödeme programı, toplam indirim ve nihai fiyatı gösterir. "100K AED tasarruf edin" gibi vurgular dikkat çeker.

8. Trend ve Popüler Üniteler

// En çok istek listesine eklenen üniteler (trend)
db.units.find({ status: "available" })
  .sort({ "stats.wishlist_adds": -1 })
  .limit(10)
Uygulama Özelliği: Anasayfada trending bölümü ile "445 kişi bu üniteyi kaydetti" göstergesi dinamik olarak güncellenir. En çok beğenilen üniteler için özel trending rozeti görüntülenir.

9. Alan ve Bölge ile Filtrele

// Marina ve Downtown bölgelerindeki tüm projeleri bul
db.projects.find({
  "location.area": { $in: ["Marina", "Downtown", "Palm Jumeirah"] },
  "location.city": "Dubai"
}).sort({ "pricing.price_range_min": 1 })
Uygulama Özelliği: Popüler ilçeleri içeren alan seçici, mahalleler için otomatik tamamlama araması ve "bölgenizdeki en çok proje" bölümü kullanıcı deneyimini zenginleştirir.

10. Olanaklar ve Özellikler ile Filtrele

// Akıllı ev, spor salonu, havuz ve hizmetçi odası olan üniteleri bul
db.units.find({
  "features.smart_home": true,
  "features.maid_room": true,
  status: "available",
  "amenities.indoor": { $in: ["gym", "pool"] }
})
Uygulama Özelliği: İkonlu olanak kontrol kutuları ve çoklu seçim filtreleri. "Bu olanakların tümüne/herhangi birine sahip üniteleri göster" geçiş özelliği kullanıcıya esneklik sağlar.

11. Proje Durumu ve Zaman Çizelgesine Göre Filtrele

// Önümüzdeki 2-3 yılda tamamlanacak ön-plan projeleri bul
db.projects.find({
  status: "off-plan",
  "timeline.completion_date": { 
    $gte: new Date("2026-01-01"), 
    $lte: new Date("2028-12-31") 
  },
  "timeline.completion_percent": { $lte: 50 }
}).sort({ "timeline.completion_date": 1 })
Uygulama Özelliği: Proje zaman çizelgesi filtresi (şimdi ön-plan, inşaat halinde, taşınmaya hazır), tamamlanma tarihi için tarih aralığı seçici ve ilerleme göstergesi çubukları ile detaylı takip imkanı.

12. Metrekare Başına Fiyat Analizi ve Karşılaştırması

// Belirli bir projedeki en iyi değer üniteleri bul (metrekare başına fiyat)
db.units.find({
  project_id: ObjectId("507f..."),
  status: "available"
}).project({
  unit_code: 1,
  type: 1,
  "pricing.base_price": 1,
  "pricing.price_per_sqft": 1,
  "areas.total_area_sqft": 1
}).sort({ "pricing.price_per_sqft": 1 }).limit(20)
Uygulama Özelliği: Metrekare başına fiyat karşılaştırma grafiği ile ortalama fiyatın altındaki üniteler için "en iyi değer" rozeti. "Metrekare başına en pahalı" ve "en ucuz" karşılaştırma görünümü detaylı analiz sağlar.

13. Görüş Türü ve Kat Konumuna Göre Filtrele

// Premium görüşlü yüksek katlardaki üniteleri bul
db.units.find({
  "floor.floor_type": { $in: ["high-floor", "rooftop"] },
  "floor.view": { $in: ["Marina View", "Sea View", "Park View"] },
  status: "available"
}).sort({ "floor.number": -1 })
Uygulama Özelliği: Her görüşü fotoğraflarla gösteren görüş türü filtresi, zemin katından çatı katına kadar kat seviyesi kaydırıcısı ve premium fiyat göstergesi ile premium görüş rozeti sunulur.

14. Yatırım ROI Filtresi ve Karşılaştırması

// Yüksek getirili üniteleri bul (10 yıl içinde ROI)
db.units.find({
  "investment.estimated_annual_rental_income": { $gte: 50000 },
  "investment.price_appreciation.year_10_percent": { $gte: 30 },
  "pricing.base_price": { $lte: 3000000 },
  status: "available"
}).sort({ "investment.estimated_roi_months": 1 }).limit(50)
Uygulama Özelliği: "ROI zaman çizelgesi" kaydırıcılı yatırım hesaplayıcısı, kira getirisi yüzdesi ve fiyat artışı grafikleri (1/3/5/10 yıl). Metriklere dayalı "güvenli yatırım" veya "yüksek büyüme" rozetleri analizi kolaylaştırır.

15. Çok Kriterli Gelişmiş Arama

// Yatırım yapılabilir üniteler: 2-3BR, Marina bölgesi, yüksek kat, akıllı ev, 2.5M altı
db.units.find({
  type: { $in: ["2BR", "3BR"] },
  developer_id: ObjectId("507f..."),
  "floor.floor_type": "high-floor",
  "floor.view": "Marina View",
  "features.smart_home": true,
  "features.parking_spaces": { $gte: 2 },
  "pricing.base_price": { $lte: 2500000 },
  status: "available",
  "investment.estimated_annual_rental_income": { $gte: 60000 }
}).sort({ "investment.estimated_roi_months": 1 })
Uygulama Özelliği: Kaydedilmiş filtrelerle "gelişmiş arama" modu, aramayı "favoriler" olarak kaydetme ve yeni eşleşen üniteler göründüğünde e-posta bildirimleri. "Mükemmel ünite" profili eşleştirme algoritması kişiselleştirilmiş deneyim sunar.

16. Yakında Bulunan Yerler ve Konum Araması

// Belirli yerlere yakın projeleri bul (okullar, metro, plaj)
db.projects.find({
  "location.nearby_landmarks": {
    $elemMatch: {
      name: "Dubai Metro",
      distance_km: { $lte: 2 }
    }
  },
  "location.city": "Dubai"
}).limit(20)
Uygulama Özelliği: Kategorili yer filtresi (okullar, metro, plaj, alışveriş, hastaneler), kilometre cinsinden mesafe göstergeleri, yer işaretlerine gidiş süresi ve POI (ilgi noktaları) harita katmanı ile detaylı konum bilgisi.

17. Ödeme Planı Akıllı Filtresi

// En popüler ödeme planlarında en iyi indirimi olan üniteleri bul
db.units.find({
  "payment_options.is_available": true,
  "payment_options.is_popular": true,
  "payment_options.discount_percent": { $gte: 2 },
  status: "available"
}).project({
  unit_code: 1,
  "payment_options": {
    $filter: {
      input: "$payment_options",
      as: "plan",
      cond: { $gte: ["$plan.discount_percent", 2] }
    }
  }
}).limit(30)
Uygulama Özelliği: Ödeme planı karşılaştırma ızgarası ile en büyük indirimli planlar vurgulanır, "en popüler" rozeti, ödeme programı zaman çizelgesi görselleştirmesi ve indirimden sonra nihai fiyatı gösteren "toplam tasarruf" hesaplayıcısı sunulur.

18. Kullanılabilirlik ve Envanter Durumu

// Bir proje için envanter durumunu al (mevcut vs satılmış vs rezerve)
db.units.aggregate([
  { $match: { project_id: ObjectId("507f...") } },
  { $group: {
      _id: "$type",
      available: { $sum: { $cond: [{ $eq: ["$status", "available"] }, 1, 0] } },
      sold: { $sum: { $cond: [{ $eq: ["$status", "sold"] }, 1, 0] } },
      reserved: { $sum: { $cond: [{ $eq: ["$status", "reserved"] }, 1, 0] } },
      total: { $sum: 1 }
    }
  }
])
Uygulama Özelliği: Pasta grafik ile envanter durum widget'ları (mevcut, satılmış, rezerve), ünite türü başına dökümü, "hızlı satılıyor" göstergesi, "az ünite kaldı" uyarı rozeti ve canlı envanter sayacı gerçek zamanlı takip sağlar.

19. "Benzer Üniteler" Öneri Motoru

// Benzer üniteleri öner (aynı tür, fiyat aralığı, yakın geliştirici)
db.units.find({
  type: "2BR",
  status: "available",
  developer_id: { $ne: ObjectId("507f1") },  // Farklı geliştirici
  "pricing.base_price": { 
    $gte: 1500000 * 0.8,  // ±%20 fiyat aralığı
    $lte: 1500000 * 1.2
  },
  "floor.view": "Marina View"
}).limit(5)
Uygulama Özelliği: "Bunları da beğenebilirsiniz" bölümü 3-5 benzer üniteyi gösterir. Yan yana karşılaştırma görünümü, fiyat farkı vurguları, "daha iyi değer" veya "premium seçenek" rozetleri ve tam ünite detaylarını karşılaştırmak için tek tıklama kolaylığı sunar.

20. Pazar Analizi ve Fiyat Trendleri

// Bir geliştiricideki fiyat trendlerini analiz et (zaman içindeki ortalama fiyat değişimi)
db.units.aggregate([
  { $match: { 
      developer_id: ObjectId("507f..."),
      "pricing.price_history": { $exists: true, $ne: [] }
    }
  },
  { $unwind: "$pricing.price_history" },
  { $group: {
      _id: { 
        month: { $dateToString: { format: "%Y-%m", date: "$pricing.price_history.date" } }
      },
      avgPrice: { $avg: "$pricing.price_history.base_price" },
      minPrice: { $min: "$pricing.price_history.base_price" },
      maxPrice: { $max: "$pricing.price_history.base_price" }
    }
  },
  { $sort: { "_id.month": 1 } }
])
Uygulama Özelliği: 6 ay ve 12 ay tarihi verileri gösteren fiyat trend grafikleri, "fiyat yükseliyor" veya "fiyat istikrarlı" göstergeleri, ünite türü için ortalama fiyat, trend analizi kullanan tahmine dayalı fiyat tahmini ve pazar raporu PDF dışa aktarma özelliği.

2. Bütçe ve Türe Göre Filtrele

// Dubai'de 2M AED'in altındaki tüm 2BR daireleri bul
db.units.find({
  type: "2BR",
  status: "available",
  "pricing.base_price": { $lte: 2000000 },
  developer_id: { $in: [/* Dubai geliştiricileri */] }
}).sort({ "pricing.base_price": 1 })
Uygulama Özelliği: Fiyat kaydırıcısı (100K - 10M AED) + Oda türü seçici. Kullanıcı kaydırıcıyı hareket ettirdikçe sonuçlar gerçek zamanlı güncellenir. Eşleşen sayıyı anında gösterir.

3. Geliştirici Tarafından Filtrele

// Bingatti Properties'den tüm mevcut üniteleri göster
db.units.find({
  developer_id: ObjectId("507f..."),
  status: "available"
}).sort({ "stats.wishlist_adds": -1 }).limit(50)
Uygulama Özelliği: Şirket logoları ile geliştirici filtresi. "Bingatti'dan 245 mevcut ünite göster" rozeti. Tüm Bingatti projelerini karşılaştırmak için tek tıklama.

4. Karmaşık Çok Filtreli Arama

// Gelişmiş arama: Marina görüşü, yüksek kat, akıllı ev, 1-2BR, 1-2M AED
db.units.find({
  type: { $in: ["1BR", "2BR"] },
  "floor.view": "Marina View",
  "floor.floor_type": "high-floor",
  "features.smart_home": true,
  "pricing.base_price": { $gte: 1000000, $lte: 2000000 },
  status: "available"
})
Uygulama Özelliği: 6+ filtre seçeneğine sahip gelişmiş arama modu. Kullanıcılar yan çubukta filtreleri birleştirebilir. Sıralama seçenekleri ile "12 sonuç gösteriliyor" (fiyat, yeni, çok görüntülenen).

5. Hot Deals & Featured Projects

5. Sıcak Anlaşmalar ve Öne Çıkan Projeler

// Show hot deals and featured projects in Dubai
db.projects.find({
  $or: [ { is_hot_deal: true }, { visibility: "featured" } ],
  "location.city": "Dubai"
}).sort({ "stats.total_views": -1 }).limit(12)
App Feature: Homepage banner with Hot Deal badge. Featured projects carousel. "Most viewed this week" rankings.
Uygulama Özelliği: Sıcak Fırsat rozeti ile anasayfa banneri. Öne çıkan projeler karuseli. "Bu hafta en çok görüntülenenler" sıralaması.

6. Investment Analysis Comparison

6. Yatırım Analiz Karşılaştırması

// Compare rental ROI between units
db.units.find({
  project_id: ObjectId("507f..."),
  status: "available"
}).project({ 
  unit_code: 1, 
  "pricing.base_price": 1,
  "investment.estimated_rental_price": 1,
  "investment.estimated_roi_months": 1 
})
App Feature: Investment calculator showing: Monthly rent, annual yield %, ROI in months. "This unit will pay itself in 180 months" indicator.
Uygulama Özelliği: Gösteren yatırım hesaplayıcısı: Aylık kira, yıllık getiri %, aylar içinde ROI. "Bu ünite kendisini 180 ay içinde amorti eder" göstergesi.

7. Payment Plan Comparison

7. Ödeme Planı Karşılaştırması

// Get all payment plan options for a unit
db.units.findOne(
  { unit_code: "DDB-T1-1501-A" },
  { "payment_options": 1 }
)
App Feature: Payment plan selector showing 3+ options side-by-side. Each plan shows: Down payment, schedule timeline, total discount, final price. "Save 100K AED" highlights.
Uygulama Özelliği: Yan yana 3+ seçenek gösteren ödeme planı seçicisi. Her plan şunları gösterir: Peşin ödeme, ödeme programı zaman çizelgesi, toplam indirim, nihai fiyat. "100K AED tasarruf edin" vurguları.

8. Trending & Popular Units

8. Trending ve Popüler Üniteler

// Most wishlist-added units (trending)
db.units.find({ status: "available" })
  .sort({ "stats.wishlist_adds": -1 })
  .limit(10)
App Feature: Trending section on homepage. "445 people saved this unit" indicator. Trending badge for top-liked units.
Uygulama Özelliği: Anasayfada trending bölümü. "445 kişi bu üniteyi kaydetti" göstergesi. En çok beğenilen üniteler için trending rozeti.

9. Alan ve Bölge ile Filtrele

// Marina ve Downtown bölgelerindeki tüm projeleri bul
db.projects.find({
  "location.area": { $in: ["Marina", "Downtown", "Palm Jumeirah"] },
  "location.city": "Dubai"
}).sort({ "pricing.price_range_min": 1 })
Uygulama Özelliği: Popüler ilçeler ile alan seçici. Mahalleler için otomatik tamamlama araması. "Bölgenizdeki en çok proje" bölümü.

10. Olanaklar ve Özellikler ile Filtrele

// Akıllı ev, spor salonu, havuz ve hizmetçi odası olan üniteleri bul
db.units.find({
  "features.smart_home": true,
  "features.maid_room": true,
  status: "available",
  "amenities.indoor": { $in: ["gym", "pool"] }
})
Uygulama Özelliği: İkonlu olanak kontrol kutuları. Çok seçimli filtreler. "Bu olanakların TÜMÜne/HERHANGİ BİRİNE sahip üniteleri göster" geçişi.

11. Proje Durumu ve Zaman Çizelgesine Göre Filtrele

// Önümüzdeki 2-3 yılda tamamlanacak ön-plan projeleri bul
db.projects.find({
  status: "off-plan",
  "timeline.completion_date": { 
    $gte: new Date("2026-01-01"), 
    $lte: new Date("2028-12-31") 
  },
  "timeline.completion_percent": { $lte: 50 }
}).sort({ "timeline.completion_date": 1 })
Uygulama Özelliği: Proje zaman çizelgesi filtresi: Şimdi ön-plan, İnşaat halinde, Taşınmaya hazır. Tamamlanma tarihi için tarih aralığı seçici. İlerleme göstergesi çubukları.

12. Metrekare Başına Fiyat Analizi ve Karşılaştırması

// Belirli bir projedeki en iyi değer üniteleri bul (metrekare başına fiyat)
db.units.find({
  project_id: ObjectId("507f..."),
  status: "available"
}).project({
  unit_code: 1,
  type: 1,
  "pricing.base_price": 1,
  "pricing.price_per_sqft": 1,
  "areas.total_area_sqft": 1
}).sort({ "pricing.price_per_sqft": 1 }).limit(20)
Uygulama Özelliği: Metrekare başına fiyat karşılaştırma grafiği. Ortalama fiyatın altındaki üniteler için "En iyi değer" rozeti. "Metrekare başına en pahalı" vs "Metrekare başına en ucuz" karşılaştırma görünümü.

13. Görüş Türü ve Kat Konumuna Göre Filtrele

// Premium görüşlü yüksek katlardaki üniteleri bul
db.units.find({
  "floor.floor_type": { $in: ["high-floor", "rooftop"] },
  "floor.view": { $in: ["Marina View", "Sea View", "Park View"] },
  status: "available"
}).sort({ "floor.number": -1 })
Uygulama Özelliği: Her görüşü gösteren fotoğraflar ile görüş türü filtresi. Kat seviyesi kaydırıcısı (zemin katından çatı katına). Premium fiyat göstergesi ile premium görüş rozeti.

14. Yatırım ROI Filtresi ve Karşılaştırması

// Yüksek getirili üniteleri bul (10 yıl içinde ROI)
db.units.find({
  "investment.estimated_annual_rental_income": { $gte: 50000 },
  "investment.price_appreciation.year_10_percent": { $gte: 30 },
  "pricing.base_price": { $lte: 3000000 },
  status: "available"
}).sort({ "investment.estimated_roi_months": 1 }).limit(50)
Uygulama Özelliği: "ROI Zaman Çizelgesi" kaydırıcılı yatırım hesaplayıcısı. Kira getirisini % olarak göster. Fiyat artışı grafikleri (1yr, 3yr, 5yr, 10yr). Metriklere dayalı "Güvenli yatırım" vs "Yüksek büyüme" rozetleri.

15. Çok Kriterli Gelişmiş Arama

// Yatırım yapılabilir üniteler: 2-3BR, Marina bölgesi, yüksek kat, akıllı ev, 2.5M altı
db.units.find({
  type: { $in: ["2BR", "3BR"] },
  developer_id: ObjectId("507f..."),
  "floor.floor_type": "high-floor",
  "floor.view": "Marina View",
  "features.smart_home": true,
  "features.parking_spaces": { $gte: 2 },
  "pricing.base_price": { $lte: 2500000 },
  status: "available",
  "investment.estimated_annual_rental_income": { $gte: 60000 }
}).sort({ "investment.estimated_roi_months": 1 })
Uygulama Özelliği: Kaydedilmiş filtrelerle "Gelişmiş Arama" modu. Aramayı "Favoriler" olarak kaydet. Yeni eşleşen üniteler göründüğünde e-posta bildirimleri. "Mükemmel üniteniz" profili eşleştirme algoritması.

16. Yakında Bulunan Yerler ve Konum Araması

// Belirli yerlere yakın projeleri bul (okullar, metro, plaj)
db.projects.find({
  "location.nearby_landmarks": {
    $elemMatch: {
      name: "Dubai Metro",
      distance_km: { $lte: 2 }
    }
  },
  "location.city": "Dubai"
}).limit(20)
Uygulama Özelliği: Kategorilere sahip (Okullar, Metro, Plaj, Alışveriş, Hastaneler) yer filtresi. Kilometre cinsinden mesafe göstergeleri. Yer işaretlerine gidiş süresini göster. POI (İlgi Noktaları) harita katmanı.

17. Ödeme Planı Akıllı Filtresi

// En popüler ödeme planlarında en iyi indirimi olan üniteleri bul
db.units.find({
  "payment_options.is_available": true,
  "payment_options.is_popular": true,
  "payment_options.discount_percent": { $gte: 2 },
  status: "available"
}).project({
  unit_code: 1,
  "payment_options": {
    $filter: {
      input: "$payment_options",
      as: "plan",
      cond: { $gte: ["$plan.discount_percent", 2] }
    }
  }
}).limit(30)
Uygulama Özelliği: Ödeme planı karşılaştırma ızgarası. En büyük indirimli planları vurgula. "En Popüler" rozetini göster. Ödeme programı zaman çizelgesi görselleştirmesi. İndirimden sonra nihai fiyatı gösteren "Toplam Tasarruf" hesaplayıcısı.

18. Kullanılabilirlik ve Envanter Durumu

// Bir proje için envanter durumunu al (mevcut vs satılmış vs rezerve)
db.units.aggregate([
  { $match: { project_id: ObjectId("507f...") } },
  { $group: {
      _id: "$type",
      available: { $sum: { $cond: [{ $eq: ["$status", "available"] }, 1, 0] } },
      sold: { $sum: { $cond: [{ $eq: ["$status", "sold"] }, 1, 0] } },
      reserved: { $sum: { $cond: [{ $eq: ["$status", "reserved"] }, 1, 0] } },
      total: { $sum: 1 }
    }
  }
])
Uygulama Özelliği: Pasta grafik gösteren envanter durum widget'ları (mevcut, satılmış, rezerve). Ünite türü başına dökümü. "Hızlı satılıyor" göstergesi. "Az ünite kaldı" uyarı rozeti. Canlı envanter sayacı.

19. "Benzer Üniteler" Öneri Motoru

// Benzer üniteleri öner (aynı tür, fiyat aralığı, yakın geliştirici)
db.units.find({
  type: "2BR",
  status: "available",
  developer_id: { $ne: ObjectId("507f1") },  // Farklı geliştirici
  "pricing.base_price": { 
    $gte: 1500000 * 0.8,  // ±%20 fiyat aralığı
    $lte: 1500000 * 1.2
  },
  "floor.view": "Marina View"
}).limit(5)
Uygulama Özelliği: "Bunları da beğenebilirsiniz" bölümü 3-5 benzer üniteyi gösterir. Yan yana karşılaştırma görünümü. Fiyat farkı vurguları. "Daha iyi değer" veya "Premium seçenek" rozetleri. Tam ünite detaylarını karşılaştırmak için tek tıklama.

20. Pazar Analizi ve Fiyat Trendleri

// Bir geliştiricideki fiyat trendlerini analiz et (zaman içindeki ortalama fiyat değişimi)
db.units.aggregate([
  { $match: { 
      developer_id: ObjectId("507f..."),
      "pricing.price_history": { $exists: true, $ne: [] }
    }
  },
  { $unwind: "$pricing.price_history" },
  { $group: {
      _id: { 
        month: { $dateToString: { format: "%Y-%m", date: "$pricing.price_history.date" } }
      },
      avgPrice: { $avg: "$pricing.price_history.base_price" },
      minPrice: { $min: "$pricing.price_history.base_price" },
      maxPrice: { $max: "$pricing.price_history.base_price" }
    }
  },
  { $sort: { "_id.month": 1 } }
])
Uygulama Özelliği: 6 ay, 12 ay tarihi verileri gösteren fiyat trend grafikleri. "Fiyat yükseliyor" vs "Fiyat istikrarlı" göstergeleri. Ünite türü için ortalama fiyat. Trend analizi kullanan tahmine dayalı fiyat tahmini. Pazar raporu PDF dışa aktarma.

Bu Mimari Neden Uygulama Geliştirme İçin Kolaydır

  • Tüm filtreler doğrudan veritabanı alanlarına eşlenir - basit sorgu oluşturma
  • Bileşik indeksler 50K+ ünite ile bile filtreleme hızını sağlar
  • Karmaşık birleştirme gerekmez - tüm veriler normalize edilmemiş ve görüntülenmeye hazır
  • Sayfalandırma basit - sonsuz kaydırma için skip/limit kullanın
  • Gerçek zamanlı güncellemeler kolay - istatistik alanları anında güncellenir
  • Mobil uyumlu - hafif sorgular hızlı sonuç döndürür
  • Arama otomatik tamamlama hızlı - ad indeksleri önek eşleştirmesini etkinleştirir
  • N+1 sorgu sorunu yok - MongoDB tüm iç içe verilerle birlikte tam üniteleri döndürür

Tasarım İlkeleri

  • Denormalizasyon: Geliştirici/proje bilgileri, birleştirme olmadan anında görüntüleme için Ünitelerde saklanır
  • Verimli İndeksler: Çok hızlı filtreleme için bileşik indeksler (project_id + status)
  • Coğrafi-Mekansal Hazır: 2dsphere indeksi saniyeler içinde harita tabanlı aramaları mümkün kılar
  • Esnek Ödemeler: Kolay plan karşılaştırması için birden fazla ödeme seçeneği gömülü
  • Dahili Analitikler: İstatistik alanları kullanıcı davranışını takip eder (görüntülemeler, istek listesi, sorular)
  • SEO Optimize: Her varlık için meta etiketleri ve anahtar kelimeler arama sıralamasını iyileştirir
  • Durum Takibi: Enum alanları gerçek zamanlı envanter yönetimini sağlar
  • Fiyat Geçmişi: Pazar analiz araçları için zaman içindeki değişiklikleri takip eder