دستهبندی
پروژه وب با Djangoتاریخ
1404/01/16وبسایت املاک نجفی دماوند | سامانه مدیریت و نمایش فایلهای ملکی با Django
این پروژه یک وبسایت املاک حرفهایه که با Django توسعه داده شده و امکان ثبت، مدیریت و نمایش فایلهای ملکی رو بهصورت کامل فراهم میکنه و از فیلتر پیشرفته املاک و نمایش جزئیات هر ملک گرفته تا پنل مدیریت اختصاصی برای مشاورین، همهچیز بهشکل بهینه، امن و قابل توسعه پیادهسازی شده تا دقیقاً مناسب یک دفتر املاک واقعی باشه
پروژه وبسایت املاک نجفی - سیستم جامع مدیریت و نمایش املاک با جنگو
وبسایت املاک نجفی یک پلتفرم جامع و پیشرفته برای مدیریت، نمایش و معامله املاک است که با استفاده از آخرین تکنولوژیهای وب توسعه یافته است. این پروژه یک سیستم کامل و حرفهای است که تمام نیازهای یک مرکز املاک مدرن را پوشش میدهد و شامل ماژولهای متعددی برای مدیریت املاک، نمایندگان، مشتریان، وبلاگ، تورهای مجازی و سیستم CRM میباشد.
معماری و تکنولوژیهای به کار رفته
بکاند (Backend)
Django 5.0.3 Python PostgreSQL Multi-Database Architecture Django REST Framework
احراز هویت و امنیت
Django Allauth Google OAuth 2.0 Custom User Model CAPTCHA System CSRF Protection
مدیریت محتوا
CKEditor 5 Rich Text Editing Media Upload Image Optimization
ذخیرهسازی و میزبانی
AWS S3 Compatible (ParsPack) Cloud Storage CDN Integration
سایر تکنولوژیها
Jalali Date (تقویم شمسی) Django Select2 Pandas & NumPy OpenPyXL (Excel) Pillow (Image Processing)
معماری چند دیتابیسی (Multi-Database Architecture)
یکی از ویژگیهای منحصر به فرد این پروژه، استفاده از معماری چند دیتابیسی است که عملکرد و مقیاسپذیری سیستم را به طور قابل توجهی بهبود میبخشد. این معماری شامل چهار دیتابیس جداگانه است:
- دیتابیس اصلی (Default): شامل اطلاعات املاک، کاربران، نمایندگان و سایر ماژولهای اصلی
- دیتابیس تورهای مجازی (Tour Model): جدا سازی دادههای تورهای 360 درجه برای بهینهسازی عملکرد
- دیتابیس وبلاگ (Blog Model): مدیریت مستقل مقالات و محتوای وبلاگ
- دیتابیس فایلهای املاک (Files Model): ذخیرهسازی اطلاعات فایلهای املاک به صورت جداگانه
این معماری با استفاده از Database Router سفارشی پیادهسازی شده که به صورت خودکار عملیات خواندن و نوشتن را به دیتابیس مناسب هدایت میکند.
ماژولهای اصلی سیستم
1. ماژول املاک (Property Module)
این ماژول قلب سیستم است و شامل قابلیتهای زیر میباشد:
مدیریت کامل اطلاعات املاک: شامل نام، توضیحات کامل با CKEditor، تصاویر متعدد، ویدیو، مشخصات فنی (تعداد اتاق خواب، سرویس بهداشتی، پارکینگ، متراژ و...)

- سیستم قیمتگذاری پیشرفته: پشتیبانی از قیمت نهایی، قیمت هر متر مربع، ودیعه و اجاره ماهانه
- دستهبندی املاک: انواع مختلف ملک (آپارتمان، ویلا، زمین، تجاری و...)
- نوع معامله: فروش، اجاره و رهن
- امکانات و ویژگیها: آسانسور، انباری، تراس، استخر، سونا، جکوزی، روف گاردن و سایر امکانات سفارشی
- موقعیتیابی جغرافیایی: سیستم موقعیتیابی کامل با جهتهای جغرافیایی (شمالی، جنوبی، شرقی، غربی و ترکیبی)
- نقشهیابی: نمایش موقعیت ملک روی نقشه با قابلیت ذخیرهسازی مختصات جغرافیایی
- سیستم طبقات: مدیریت طبقه ملک و تعداد کل طبقات ساختمان
- سیستم گرمایش و سرمایش: ثبت نوع سیستمهای گرمایشی و سرمایشی
- سال ساخت: ثبت سال ساخت بنا
- تصاویر پلان: امکان آپلود تصاویر پلان ساختمان با توضیحات
- تصاویر اضافی: گالری تصاویر نامحدود برای هر ملک
- سیستم جستجوی پیشرفته: فیلتر بر اساس نوع ملک، موقعیت، قیمت، متراژ، تعداد اتاق و سایر معیارها
- جستجوی متنی: استفاده از PostgreSQL Full-Text Search برای جستجوی سریع و دقیق
- صفحهبندی (Pagination): نمایش بهینه نتایج جستجو
- املاک ویژه: امکان علامتگذاری املاک به عنوان ویژه برای نمایش در بخشهای خاص
- نمایش در صفحه اصلی: کنترل نمایش املاک در صفحه اصلی
- سیستم کامنت و امتیازدهی: امکان ثبت نظر و امتیازدهی ستارهای (0 تا 5) برای هر ملک
- سیستم پاسخ به نظرات: امکان پاسخ به نظرات کاربران
- مدیریت نظرات: تایید یا رد نظرات قبل از نمایش عمومی
- تیکت خرید: سیستم درخواست خرید/اجاره برای هر ملک با CAPTCHA
- سیستم علاقهمندیها: امکان ذخیره املاک مورد علاقه برای کاربران
- SEO بهینه: شامل Meta Description و Slug یکتا برای هر ملک
Sitemap پویا: تولید خودکار Sitemap برای موتورهای جستجو
ثبت ملک به صورت مرحله به مرحله



.png)
2. ماژول نمایندگان (Realestate Profiles Module)
سیستم مدیریت کامل نمایندگان و کارشناسان املاک:
- پروفایل کامل نمایندگان: شامل نام، تصویر، سمت، درجه سمت (1 تا 5)، توضیحات کوتاه و کامل
- اطلاعات تماس: ایمیل، شماره تماس، لینک تلگرام و اینستاگرام
- سیستم درجهبندی: درجهبندی نمایندگان از 1 تا 5
- ارتباط با املاک: هر ملک میتواند به یک نماینده اختصاص یابد
- سیستم کامنت و امتیازدهی: امکان ثبت نظر و امتیاز برای نمایندگان
- سیستم پاسخ به نظرات: امکان پاسخ نماینده به نظرات
- نقش منشی: امکان تعیین نماینده به عنوان منشی برای دریافت ایمیلهای تیکتهای پشتیبانی
- دسترسیهای فایلهای املاک: سیستم کنترل دسترسی پیشرفته با ArrayField برای مدیریت دسترسی نمایندگان به فایلهای خاص
- صفحه اختصاصی: صفحه پروفایل جداگانه برای هر نماینده با Slug یکتا
- SEO بهینه: Sitemap جداگانه برای صفحات نمایندگان
.png)
3. ماژول تورهای مجازی (Tour Module)
سیستم پیشرفته تورهای مجازی 360 درجه:
- ایجاد تور مجازی: امکان ایجاد تور مجازی برای هر ملک
- مدیریت تصاویر 360 درجه: آپلود و مدیریت تصاویر پانورامای 360 درجه
- سیستم مارکر و ناوبری: امکان قرار دادن مارکر روی تصاویر برای انتقال بین نقاط مختلف
- تصویر اصلی و هدف: تعیین تصویر اصلی و تصویر هدف برای هر مارکر
- مختصات مارکر: ذخیره مختصات X و Y برای موقعیتیابی دقیق مارکرها
- توضیحات مارکر: امکان افزودن توضیحات برای هر مارکر
- نمایش در iframe: پشتیبانی از نمایش تور در iframe با تنظیمات امنیتی مناسب
- دیتابیس جداگانه: استفاده از دیتابیس مستقل برای بهینهسازی عملکرد
4. ماژول وبلاگ (Blog Module)
سیستم مدیریت محتوا و وبلاگ کامل:
- ویرایشگر پیشرفته: استفاده از CKEditor 5 با پیکربندی کامل برای وبلاگ
- قابلیتهای ویرایشگر: شامل HTML Embed، Media Embed (ویدیو، یوتیوب و...)، کدگذاری، جداول پیشرفته و...
- دستهبندی مقالات: سیستم دستهبندی کامل با امکان نمایش در نویگیشن
- نمایش در صفحه اصلی: امکان نمایش 4 مقاله آخر هر دسته در صفحه اصلی
- برچسبها (Tags): سیستم برچسبگذاری برای مقالات
- تصویر شاخص: آپلود تصویر کاور برای هر مقاله
- Meta Description: توضیحات متا برای SEO
- Slug یکتا: آدرس یکتا و قابل تغییر برای هر مقاله
- وضعیت انتشار: کنترل انتشار مقالات (پیشنویس یا منتشر شده)
- سیستم کامنت: امکان ثبت نظر برای مقالات
- سیستم پاسخ به نظرات: امکان پاسخ به نظرات کاربران
- مدیریت نظرات: تایید یا رد نظرات قبل از نمایش
- نویسنده: ثبت نویسنده هر مقاله
- تاریخ انتشار و بروزرسانی: ثبت خودکار تاریخ انتشار و آخرین بروزرسانی
- دیتابیس جداگانه: استفاده از دیتابیس مستقل برای بهینهسازی
- Sitemap پویا: تولید خودکار Sitemap برای مقالات


5. ماژول CRM (Customer Relationship Management)
سیستم جامع مدیریت ارتباط با مشتری:
- ثبت درخواست مشتری: ثبت کامل اطلاعات درخواستهای مشتریان
- نوع درخواست: خرید، فروش، رهن و اجاره
- نوع ملک: زمین، زمین مسکونی، آپارتمان +100، آپارتمان -100، مستغلات، ویلا، تجاری، اداری
- وضعیت درخواست: فعال، غیرفعال، در حال بررسی
- وضعیت بازدید: بازدید شده، بازدید نشده، نامشخص
- اطلاعات مشتری: نام، شماره تماس
- مشخصات ملک مورد نظر: لوکیشن، متراژ، طبقه، تعداد خواب، تعداد نفرات
- بودجه و قیمت: بودجه، رهن، اجاره
- امکانات مورد نیاز: ثبت امکانات مورد نظر مشتری
- وضعیت اتباع: امکان ثبت وضعیت اتباع خارجی
- منبع آشنایی: دفتر، اینستاگرام، دیوار، حضوری، دوستان
- مرجع آگهی: ثبت آگهی مرتبط با درخواست
- ثبت کننده: ثبت نماینده یا کاربری که درخواست را ثبت کرده
- توضیحات کامل: فیلد متنی برای توضیحات اضافی
- تاریخ ثبت و بروزرسانی: ثبت خودکار تاریخ ثبت و آخرین بروزرسانی
6. ماژول فایلهای املاک (Property Files Module)
سیستم مدیریت فایلهای املاک با جزئیات کامل:
- کد فایل: کد یکتا برای هر فایل
- نوع معامله: فروش یا اجاره
- وضعیت فایل: ✓، ✗، ◯
- کاربری: نوع کاربری ملک
- اطلاعات مالک: نام مالک و شماره تماس
- موقعیت و آدرس: لوکیشن و آدرس کامل
- مشخصات فیزیکی: نوع ملک، مساحت زمین، زیر بنا، طبقه، تعداد کل طبقات، تعداد واحدها، واحد، جهت واحد
- امکانات داخلی: تعداد خواب، تعداد مستر، متریال کابینت، کفپوش، سرویس بهداشتی، سیستم سرمایش، سیستم گرمایش، سن بنا
- امکانات رفاهی: پارکینگ، آسانسور، انباری، تراس، حیاط، استخر، جکوزی، روف گاردن، سوییت سرایدار
- زیرساختها: آب، برق، گاز، انشعابات
- اطلاعات سند: نوع سند، وضعیت سکونت، تمدید
- قیمتگذاری: ودیعه (رهن)، اجاره ماهانه، قیمت هر متر، قیمت کل
- ویژگیهای زمین: جهت زمین، طول بر، درصد تراکم، سطح اشتغال، وضعیت بافت، سهمیه آب، دور دیوار، درختکاری، شماره قطعه
- توضیحات: فیلد متنی برای توضیحات اضافی
- دیتابیس جداگانه: استفاده از دیتابیس مستقل برای بهینهسازی
- واردات از Excel: امکان واردات فایلها از فایل Excel
7. ماژول حساب کاربری (Account Module)
سیستم احراز هویت و مدیریت کاربران:
- مدل کاربری سفارشی: Custom User Model با فیلدهای اضافی
- احراز هویت با Google: ورود و ثبتنام با حساب Google
- احراز هویت سنتی: ثبتنام و ورود با ایمیل و رمز عبور
- مدیریت پروفایل: ویرایش اطلاعات کاربری
- آواتار Google: نمایش خودکار آواتار کاربران Google
- سیستم مجوزها: کنترل دسترسی کاربران به بخشهای مختلف
8. ماژول صفحه اصلی (Home Module)
صفحه اصلی با قابلیتهای پیشرفته:
- نمایش املاک: نمایش املاک برای فروش و اجاره
- نمایش بر اساس نوع: نمایش املاک دستهبندی شده بر اساس نوع ملک
- نمایش نمایندگان: نمایش لیست نمایندگان با شعارهای تصادفی
- نمایش مقالات: نمایش 4 مقاله آخر از دستهبندیهای انتخاب شده
- گالری تصاویر: سیستم گالری تصاویر با تصویر اصلی
- بهینهسازی تصاویر: بهینهسازی خودکار تصاویر گالری
- سیستم تیکت پشتیبانی: فرم تماس با CAPTCHA
- ارسال ایمیل: ارسال خودکار ایمیل برای تیکتهای جدید
- فیلتر پیشرفته: فیلتر بر اساس نوع ملک، موقعیت، قیمت، متراژ و...
- آمار و اطلاعات: نمایش تعداد املاک برای فروش و اجاره
- محدوده قیمت: محاسبه و نمایش محدوده قیمت املاک
ویژگیهای امنیتی
- CAPTCHA: استفاده از سیستم CAPTCHA برای جلوگیری از اسپم در فرمهای تماس و نظرات
- CSRF Protection: محافظت کامل در برابر حملات CSRF
- XSS Protection: محافظت در برابر حملات XSS با استفاده از Django Template System
- SQL Injection Protection: استفاده از ORM Django برای جلوگیری از SQL Injection
- Clickjacking Protection: محافظت در برابر Clickjacking (با امکان سفارشیسازی برای تورهای مجازی)
- Rate Limiting: محدودیت نرخ درخواست برای جلوگیری از سوء استفاده
- احراز هویت امن: استفاده از Django Allauth برای احراز هویت امن
- رمزنگاری رمز عبور: استفاده از الگوریتمهای رمزنگاری پیشرفته Django
- مدیریت Session: مدیریت امن Session ها
- لاگگیری خطاها: ثبت و ارسال خودکار خطاها به مدیران سیستم
بهینهسازی و عملکرد (Performance & Optimization)
- معماری چند دیتابیسی: توزیع بار بین چند دیتابیس برای بهبود عملکرد
- بهینهسازی تصاویر: بهینهسازی خودکار تصاویر با استفاده از Pillow
- ذخیرهسازی ابری: استفاده از ParsPack (سازگار با S3) برای ذخیرهسازی فایلها
- CDN Integration: امکان استفاده از CDN برای فایلهای استاتیک
- صفحهبندی: استفاده از Pagination برای کاهش بار سرور
- Query Optimization: بهینهسازی Query های دیتابیس با استفاده از select_related و prefetch_related
- جستجوی بهینه: استفاده از PostgreSQL Full-Text Search برای جستجوی سریع
- Cache Ready: آماده برای استفاده از سیستم Cache Django
- Static Files Optimization: مدیریت بهینه فایلهای استاتیک
سئو (SEO) و بهینهسازی موتورهای جستجو
- Sitemap پویا: تولید خودکار Sitemap برای املاک، مقالات، نمایندگان و صفحات استاتیک
- Meta Description: امکان تعیین Meta Description برای هر ملک و مقاله
- Slug یکتا: استفاده از Slug یکتا و SEO-friendly برای URL ها
- ساختار URL بهینه: ساختار URL منطقی و قابل فهم برای موتورهای جستجو
- پشتیبانی از زبان فارسی: پشتیبانی کامل از کاراکترهای فارسی در URL و محتوا
- Schema Markup Ready: آماده برای افزودن Schema Markup
- تصاویر بهینه: استفاده از Alt Text و Title برای تصاویر
رابط کاربری و تجربه کاربری (UI/UX)
- طراحی واکنشگرا (Responsive): سازگاری کامل با تمام دستگاهها (موبایل، تبلت، دسکتاپ)
- تم RTL: پشتیبانی کامل از راست به چپ برای زبان فارسی
- ویرایشگر پیشرفته: استفاده از CKEditor 5 با رابط کاربری مدرن
- Select2: استفاده از Select2 برای فیلدهای انتخاب چندگانه
- سیستم پیامها: نمایش پیامهای موفقیت و خطا به کاربر
- فرمهای تعاملی: فرمهای کاربرپسند با اعتبارسنجی سمت کلاینت و سرور
- گالری تصاویر: نمایش بهینه تصاویر در گالری
- تور مجازی تعاملی: رابط کاربری جذاب برای تورهای 360 درجه
مدیریت و پنل ادمین
- پنل ادمین Django: پنل ادمین قدرتمند و قابل سفارشیسازی
- مدیریت کامل املاک: افزودن، ویرایش، حذف و مدیریت املاک
- مدیریت نمایندگان: مدیریت کامل پروفایل نمایندگان
- مدیریت مقالات: مدیریت کامل وبلاگ و مقالات
- مدیریت نظرات: تایید، رد و پاسخ به نظرات
- مدیریت تیکتها: مشاهده و پاسخ به تیکتهای پشتیبانی
- مدیریت CRM: مدیریت کامل درخواستهای مشتریان
- مدیریت فایلهای املاک: مدیریت و واردات فایلهای Excel
- مدیریت تورهای مجازی: ایجاد و مدیریت تورهای 360 درجه
- گزارشگیری: امکان تولید گزارشهای مختلف
- فیلتر و جستجو: فیلتر و جستجوی پیشرفته در پنل ادمین
سیستم ایمیل و اطلاعرسانی
- ارسال ایمیل SMTP: پیکربندی کامل SMTP برای ارسال ایمیل
- ایمیل تیکتها: ارسال خودکار ایمیل برای تیکتهای جدید
- ایمیل خطاها: ارسال خودکار ایمیل خطاها به مدیران
- تمپلیت ایمیل: استفاده از تمپلیت HTML برای ایمیلها
- تایید ایمیل: امکان تایید ایمیل کاربران (قابل فعالسازی)
پشتیبانی از تاریخ شمسی
- Jalali Date: استفاده از کتابخانه Jalali Date برای نمایش تاریخ شمسی
- تبدیل خودکار: تبدیل خودکار تاریخ میلادی به شمسی در رابط کاربری
- ویجت تاریخ: استفاده از ویجت تاریخ شمسی در فرمهای ادمین
قابلیتهای پیشرفته
- Context Processors: استفاده از Context Processors برای دسترسی به دادههای مشترک در تمام صفحات
- Custom Template Tags: استفاده از Template Tags سفارشی برای قابلیتهای خاص
- Signals: استفاده از Django Signals برای عملیات خودکار
- Middleware: استفاده از Middleware برای عملیات سطح درخواست
- Error Handling: صفحات خطای سفارشی (404, 403, 502)
- Logging System: سیستم لاگگیری کامل برای خطاها
- Multi-language Ready: آماده برای پشتیبانی از چند زبان (i18n)
- API Ready: استفاده از Django REST Framework برای آمادهسازی API
خلاصه بگم ...
وبسایت املاک نجفی یک سیستم جامع، پیشرفته و حرفهای است که تمام نیازهای یک مرکز املاک مدرن را پوشش میدهد. این پروژه با استفاده از آخرین تکنولوژیهای وب و بهترین روشهای برنامهنویسی توسعه یافته است و شامل ماژولهای متعددی برای مدیریت کامل املاک، نمایندگان، مشتریان، محتوا و ارتباطات میباشد.
معماری چند دیتابیسی، سیستم امنیتی قوی، بهینهسازی عملکرد، پشتیبانی کامل از SEO، رابط کاربری مدرن و پنل ادمین قدرتمند از جمله ویژگیهای برجسته این پروژه هستند که آن را به یک راهحل کامل و قابل اعتماد برای مدیریت املاک تبدیل کرده است.
این پروژه قابلیت مقیاسپذیری بالا دارد و میتواند برای مراکز املاک کوچک تا بزرگ استفاده شود. کدهای تمیز، ساختار منظم، مستندسازی مناسب و استفاده از الگوهای طراحی مناسب، نگهداری و توسعه آینده این پروژه را آسان کرده است.
مهارتهای به کار رفته در این پروژه
Python Programming Django Framework PostgreSQL Database Design Multi-Database Architecture RESTful API OAuth 2.0 Authentication & Authorization Security Best Practices SEO Optimization Performance Optimization Cloud Storage (S3) Image Processing Email Systems Error Handling & Logging Responsive Design RTL Support Content Management CRM Systems Virtual Tour Integration