MRPYWEB

Web Sitesi, Web Uygulamaları ve İş Sistemleri Geliştirme
Portföylere Geri Dön
سامانه جامع مدیریت املاک و مشاورین (PropTech ERP)

Kapsamlı Gayrimenkul ve Danışman Yönetim Sistemi (PropTech ERP)

Emlak ofislerinin entegre yönetimi için geliştirilmiş kapsamlı bir web tabanlı platformdur. Müşteri yönetimi, gayrimenkul portföyleri, sözleşmeler, kurumsal kullanıcılar ve satış süreçlerinin tek bir sistem üzerinden yö…

Genel Bakış

Proje Hakkında

Emlak ofislerinin entegre yönetimi için geliştirilmiş kapsamlı bir web tabanlı platformdur. Müşteri yönetimi, gayrimenkul portföyleri, sözleşmeler, kurumsal kullanıcılar ve satış süreçlerinin tek bir sistem üzerinden yönetilmesini sağlar. Django ve PostgreSQL kullanılarak geliştirilen sistem, tapu kullanım amacı, bina yönü, tapu durumu, hisse oranı, metrekare, bütçe ve mevcut olanaklar gibi onlarca uzman parametreyi analiz ederek her müşteri için en uygun gayrimenkulleri önermek üzere yapay zekâ destekli bir eşleştirme motoru (AI Matching) sunmaktadır.

Sistemin başlıca özellikleri arasında kurumsal rol ve yetki yönetimi, yönetim panelleri ve KPI göstergeleri, Müşteri Süreci (Customer Process) takip sistemi, mükerrer kayıt doğrulama mekanizması, analitik raporlar ve tamamen responsive kullanıcı arayüzü yer almaktadır.

Vaka Çalışması

Proje Vaka Çalışması

Zorluklar, çözümler, kazanımlar, teknik öne çıkanlar, mimari ve proje ölçeği.

⚡

Zorluklar

Müşteriler ile gayrimenkuller arasında onlarca uzman parametreye dayalı akıllı bir eşleştirme motorunun tasarlanması, benzersiz kodların oluşturulması sırasında eşzamanlılık sorunlarının önlenmesi ve dinamik yetki seviyelerine sahip çok rollü bir mimarinin geliştirilmesi, projenin temel zorlukları arasında yer aldı.

Hukuki kullanım amacı, mülkiyet hissesi, bina yönü ve tapu bilgileri gibi karmaşık gayrimenkul alanının modellenmesi; benzerlik analizi algoritmaları kullanılarak mükerrer verilerin önlenmesi ve mevcut verilerin herhangi bir bilgi kaybı yaşanmadan yeni sisteme aktarılması yüksek düzeyde hassasiyet gerektirdi.

Kapsamlı formlar, etkileşimli harita ve aynı anda görsel ve video yükleme özelliklerine sahip Farsça ve sağdan sola (RTL) bir kullanıcı arayüzünün tasarlanması da önemli kullanıcı deneyimi zorlukları oluşturdu.

Diğer önemli zorluklar arasında N+1 problemlerini önlemek için veritabanı sorgularının optimize edilmesi, müşteri yaşam döngüsünün yönetilmesi ve müzakere aşamasında gayrimenkulün otomatik olarak kilitlenmesini sağlayan mekanizmanın uygulanması yer aldı.

Sonuç olarak, Django'nun gelişmiş özelliklerinden, atomik işlemlerden (Atomic Transactions) ve dikkatle tasarlanmış veri modellerinden yararlanılarak modern emlak ofislerinin ihtiyaçlarını karşılayan kapsamlı ve istikrarlı bir sistem geliştirildi.

💡

Çözümler

Akıllı eşleştirme motoru için ağırlıklı bir puanlama algoritması tasarlandı. Gayrimenkul kullanım amacı, yön, tapu durumu, mülkiyet hissesi, bütçe ve diğer parametrelerin her birine belirli bir ağırlık verildi ve nihai skor normalizasyon yöntemiyle hesaplandı. Performans optimizasyonu için `select_related`, `prefetch_related` ve bellek içi hesaplamalardan yararlanıldı.

Benzersiz kodların oluşturulması sırasında oluşabilecek Race Condition sorunlarını önlemek amacıyla `select_for_update()` ve atomik veritabanı işlemleri kullanıldı. Böylece her kaydın çakışma olmadan benzersiz bir kod alması sağlandı.

Gayrimenkul alanı; kullanım amacı, tapu, yön ve bağımsız bölüm durumu gibi uzmanlaşmış modellerden oluşan modüler bir mimari ile modellendi. Mükerrer kayıtları önlemek için parametre bazında çalışan ve eşik değerleri yapılandırılabilen bir benzerlik eşleştirme algoritması geliştirildi.

Mevcut veriler, aşamalı migration süreçleri ve `RunPython` kullanılarak taşındı. `null` ve `unique` kısıtları dikkatli şekilde yönetilerek herhangi bir veri kaybının önüne geçildi.

Farsça ve sağdan sola (RTL) çalışan kullanıcı arayüzü Bootstrap kullanılarak geliştirildi. Gerçek zamanlı sayı formatlama, Farsça takvim, etkileşimli Leaflet haritaları ve canlı önizleme destekli AJAX tabanlı görsel ve video yükleme özellikleri uygulandı.

Performans optimizasyonu kapsamında uygun veritabanı indeksleme, sayfalama (Pagination) ve `select_related` ile `prefetch_related` kullanılarak N+1 sorgu problemlerinin ortadan kaldırılması gerçekleştirildi. Müşteri yaşam döngüsü ve müzakere aşamasında gayrimenkulün otomatik olarak kilitlenmesi, Django sinyalleri (`post_save`) kullanılarak yönetildi.

Sonuç olarak, Django'nun gelişmiş özellikleri, atomik işlemler ve modüler mimariden yararlanılarak modern emlak ofislerinin gerçek üretim ortamında kullanabileceği kapsamlı, kararlı ve production-ready bir sistem geliştirildi.

📚

Kazanımlar

Müşteri ve gayrimenkul kaydından sözleşme yönetimine kadar emlak ofislerinin tüm operasyonlarını tek bir platform üzerinden yönetebilen kapsamlı ve entegre bir sistem geliştirildi.

Onlarca uzman parametreye dayalı ağırlıklı puanlama sistemi kullanan bir AI Matching motoru başarıyla uygulandı. Böylece müşterilere uygun gayrimenkul önerme süreci daha doğru, hızlı ve veri odaklı hale getirildi.

Emlak ofislerinin gerçek organizasyon yapısına uygun olarak yönetici, çağrı merkezi personeli, süpervizör, danışman ve müşteri rollerini kapsayan çok rollü bir mimari ve dinamik yetki seviyeleri tasarlandı.

İlk iletişimden sözleşmenin tamamlanmasına kadar müşteri yaşam döngüsünün tamamı; zaman sınırları, bildirimler ve performans raporlarıyla birlikte yönetilebilir hale getirildi.

Danışman performansını, dönüşüm oranlarını, takip oranlarını ve müşteri kazanım kaynaklarını değerlendirmek için analitik dashboard'lar ve KPI göstergeleri geliştirildi.

Kapsamlı formlar, etkileşimli haritalar ve eş zamanlı görsel ve video yükleme özelliklerine sahip tamamen Farsça ve sağdan sola (RTL) çalışan bir kullanıcı arayüzü geliştirildi.

Yüksek veri hacimlerini desteklemek amacıyla veritabanı indeksleme, `select_related`, `prefetch_related` ve Pagination kullanılarak sistem performansı optimize edildi.

Benzerlik eşleştirme algoritmaları kullanılarak mükerrer kayıtların önüne geçildi; atomik işlemler ve `select_for_update` kullanılarak eşzamanlılık güvenliği sağlandı.

Sonuç olarak, modern bir gayrimenkul CRM/ERP sisteminden beklenen teknik ve kullanıcı deneyimi standartlarını karşılayan, gerçek üretim ortamında kullanıma hazır kapsamlı bir yazılım ürünü ortaya çıkarıldı.

🔧

Teknik Öne Çıkanlar

Bakım yapılabilirliğini, ölçeklenebilirliği ve geliştirilebilirliği artırmak amacıyla Django'nun modüler mimarisi kullanıldı ve uygulamalar (`estate`, `case_management`, `account`) birbirinden ayrıldı.

Ağırlıklı puanlama algoritması, skor normalizasyonu ve eşleştirme sonuçlarının tüm detaylarının `JSONField` içerisinde saklanmasını içeren bir Match Engine geliştirildi.

Sıralı benzersiz kodların oluşturulması sırasında Race Condition sorunlarını önlemek için `select_for_update()` ve `transaction.atomic()` kullanıldı.

N+1 sorgu problemlerini ortadan kaldırmak ve genel performansı artırmak amacıyla `select_related`, `prefetch_related`, `distinct()` ve kritik alanlar üzerinde veritabanı indeksleri kullanılarak sorgular optimize edildi.

Daha yüksek esneklik sağlamak amacıyla gayrimenkul alanına özel modeller `TextChoices`, validators ve yapılandırılmış Many-to-Many (M2M) ilişkiler kullanılarak tasarlandı.

Müşteri süreç yaşam döngüsünün otomatik yönetimi, müzakere aşamasında gayrimenkul kilitleme ve aktivite kayıtlarının tutulması için Django sinyalleri (`pre_save`, `post_save`) uygulandı.

Özel bir `User` modeli, dinamik roller (`Role`, `UserRole`) ve `views_permissions` tabanlı yetkilendirme kullanılarak özel bir kimlik doğrulama ve yetkilendirme sistemi geliştirildi.

Mükerrer kayıtların tespiti (Duplicate Detection) için parametre bazında çalışan bir benzerlik eşleştirme algoritması geliştirildi ve eşleşme detayları `JSONField` içerisinde saklandı.

Eşleştirme, görsel yönetimi, durum değişiklikleri ve arama işlemleri gibi frontend-backend iletişimini sağlamak amacıyla `JsonResponse` kullanan REST tarzı API'ler geliştirildi.

Bootstrap 5 ve Leaflet.js kullanılarak tamamen Farsça ve sağdan sola (RTL) çalışan bir kullanıcı arayüzü geliştirildi. Ayrıca gerçek zamanlı sayı formatlama ve AJAX tabanlı görsel ve video yükleme özellikleri uygulandı.

Mevcut verilerin herhangi bir bilgi kaybı olmadan taşınabilmesi için `RunPython` kullanılarak aşamalı migration süreçleri uygulandı ve `null` / `unique` kısıtları dikkatli şekilde yönetildi.

Müşteriler ve gayrimenkullerle gerçekleştirilen tüm etkileşimlerin kapsamlı şekilde takip edilebilmesi için süreç loglama sistemi (`ProcessLog`) ve not sistemi (`Note`) tasarlandı.

Gizli gayrimenkul görsellerine (`Showcase Image`) erişimi kontrol etmek amacıyla çok katmanlı bir yetkilendirme sistemi uygulandı; hem View hem de Template seviyesinde izin kontrolleri gerçekleştirildi.

🏗️

Mimari

Proje, Django'nun **MVT (Model-View-Template)** mimarisi üzerine kurulmuş ve birden fazla bağımsız uygulama şeklinde organize edilmiştir: `estate` gayrimenkul ve müşteri yönetimi, `case_management` müşteri süreçleri ve yaşam döngüsü yönetimi, `account` ise kullanıcı ve rol yönetiminden sorumludur.

**Veri Katmanı (Models):** `TimeStampedModel`, `SoftDeleteModel` ve `UUIDModel` gibi soyut temel modellerin yanı sıra `Customer`, `Property`, `Match`, `Requirement`, `UsageType`, `DocumentType` ve diğer uzmanlaşmış gayrimenkul modellerini içerir. Tüm ilişkiler `ForeignKey`, `ManyToManyField` ve `PROTECT` / `SET_NULL` stratejileri kullanılarak tasarlanmıştır.

**İş Mantığı Katmanı (Views & Utils):** CRUD işlemleri için CBV/FBV tabanlı View'lar ile birlikte eşleştirme skorlarını hesaplamak için `MatchCalculator` ve `MatchManager` gibi özel modüller ve erişim kontrolü için `views_permissions` mekanizması kullanılmıştır.

**Sunum Katmanı (Templates & Frontend):** Bootstrap 5 ile Django Templates kullanılmış, tamamen sağdan sola (RTL) çalışan bir kullanıcı arayüzü tasarlanmış, interaktif haritalar için Leaflet.js ve doğrulama, sayı formatlama ve backend ile AJAX iletişimi için JavaScript kullanılmıştır.

**Signals:** Aktivite kayıtlarının oluşturulması, müzakere aşamasında gayrimenkulün kilitlenmesi ve müşteri süreçleri için zaman sınırlarının otomatik olarak belirlenmesi gibi olayların yönetimi için Django Signals kullanılmıştır.

**Kimlik Doğrulama ve Yetkilendirme:** Özel bir User modeli, dinamik roller (`Role`, `UserRole`) ve View'lar ile kullanıcı arayüzü bileşenlerine ayrıntılı erişim kontrolü sağlayan `views_permissions` mekanizması üzerine kurulmuştur.

**Veritabanı:** PostgreSQL kullanılmakta; `status`, `display_code`, `city` ve `expert` gibi sık sorgulanan alanlar üzerinde uygun indeksler bulunmakta ve veri bütünlüğünü korumak için atomik işlemler kullanılmaktadır.

**Modüler Match Engine:** Eşleştirme skorlarının hesaplanmasından sorumlu `MatchCalculator` ile sonuçların yönetimi ve saklanmasından sorumlu `MatchManager` birbirinden ayrılarak test edilebilirlik, bakım kolaylığı ve geliştirilebilirlik artırılmıştır.

**API ve İletişim:** AJAX yanıtları için `JsonResponse` kullanılmış ve arama, gayrimenkul eşleştirme, görsel yönetimi ve konum tabanlı veri erişimi için özel API'ler geliştirilmiştir.

📐

Proje Ölçeği

Proje, **5 bağımsız Django uygulaması** (`estate`, `case_management`, `account`) şeklinde organize edilmiştir.

Temel modeller, konum, müşteri, gayrimenkul, eşleştirme, süreç, not ve gayrimenkul alanına özgü uzmanlaşmış modeller dahil olmak üzere **30'dan fazla veri modeli** tasarlanmış ve uygulanmıştır.

Tam CRUD işlemleri, AJAX API'leri, raporlama ve erişim kontrolünü kapsayan **50'den fazla View** geliştirilmiştir.

Liste, form, detay, dashboard ve arama sayfaları dahil olmak üzere farklı ekranlar için tamamen Farsça ve RTL destekli **50'den fazla HTML template** geliştirilmiştir.

Ana modellerde (Customer ve Property) İran gayrimenkul sektörünün kapsamlı gereksinimlerini karşılayacak şekilde **100'den fazla uzmanlaşmış veri alanı** tasarlanmıştır.

**AI Matching Engine**, aynı anda yüzlerce müşteriyi binlerce gayrimenkulle değerlendirebilmekte ve eşleştirme skorlarını **20'den fazla uzmanlaşmış parametreye** göre hesaplayabilmektedir.

**Çok Rollü Sistem (Multi-Role System)**; Yönetici, Çağrı Merkezi Operatörü, Süpervizör, Gayrimenkul Danışmanı ve Müşteri olmak üzere 5 temel rolü ve dinamik erişim seviyelerini desteklemektedir.

İlk iletişimden sözleşme imzalanmasına kadar **tam müşteri yaşam döngüsü** uygulanmış; 10'dan fazla süreç durumu, zaman bazlı son tarihler ve otomatik uyarılar sisteme dahil edilmiştir.

**Raporlama ve KPI sistemi**, danışman performansının, dönüşüm oranlarının ve müşteri edinme kaynaklarının değerlendirilmesi için **15'ten fazla analitik gösterge** içermektedir.

Proje genel olarak **binlerce satır Python, HTML, CSS ve JavaScript kodu** ile geliştirilmiş olup, modern bir gayrimenkul danışmanlık ofisinin gerçek çalışma ortamında kullanıma hazır hale getirilmiştir.

Teknolojiler

Teknolojiler

Bootstrap Django Django REST Framework HTML/CSS JavaScript MySQL Python SQLite
Kategoriler

Kategoriler

Girişim Platformu Çevrimiçi Hizmet Platformu Yönetim Paneli / Dashboard Ofis Otomasyonu CRM Sistemi ERP Sistemi
Sektör

İş Alanı

Gayrimenkul Danışmanları
Faaliyet Alanı

Faaliyet Alanı

Gayrimenkul Danışmanları için Yönetim ERP Sistemi
İstatistikler

Proje İstatistikleri

27
👁️ Görüntülenme
0
❤️ Beğeni
0
⬇️ İndirme
0
⭐ Puan
Metrikler

Özel Metrikler

Projenin temel performans göstergeleri

5 Django Uygulama Sayısı
+30 Veri Modeli Sayısı
+50 View Sayısı
+100 Uzmanlaşmış Gayrimenkul Alanları
+20 Eşleştirme Motoru Parametreleri
+10 Müşteri Yaşam Döngüsü Durumları
+15 KPI Göstergeleri
+8 Kullanıcı Rolleri
Ekip

Proje Ekibi

Bu projede iş birliği yapan kişiler

حسن کاظمی
Hasan Kazemi
Full Stack Geliştirici
Faydalı Bağlantılar

Faydalı Bağlantılar

Görseller

Proje Görselleri

Proje ortamının ve kullanıcı arayüzünün bölümleri

Aklınızda benzer bir proje mi var?

Bir web sitesi, CRM, ERP veya özel bir sistem geliştirmek için iş birliğine ihtiyacınız varsa, projenizi görüşmekten mutluluk duyarım.

Proje Başlat