دستهبندی
Django RESTمشارکتکنندگان
تاریخ
1405/05/27سامانه جامع املاک گویا | پروژه Django REST Framework
یه پروژه خفن تیمی برای ایجاد یک سامانه مرجع املاک در دماوند یعنی املاکی های مختلف در دماوند و شرق استان تهران در این وب سایت فایل ها و اگهی هاشون رو قرار میدن و یه سیستم کامل مجهز به ویجت هوش مصنوعی برای پیدا کردن ملک توی این منطقه است
پروژه گویا ملک یه کار تیمی قویه که ما توی شرکت گویا با درست حسابی ترینا زدیم - لینک گیت هابشون و گذاشتم بهشون فیدبک مثبت بدید :) -
من بکند کار و داشتم و البته Product manager پروژه هم هستم و این کار رو از صفر با Django REST Framework پیاده کردم؛ خروجیش همین سایت زندهست: goooya.ir. کارفرما نمیخواست یه ویترین آگهی مثل بقیه سایتهای املاک داشته باشه. میخواست یه سامانه واقعی برای شرق استان تهران — مخصوصاً دماوند و پردیس — که هم فایل ملک داخلش مدیریت بشه، هم مشاورها حساب داشته باشن، هم خدمات مهندسی جدا از آگهیها کار کنه.
من امیرحسین علیجانیام. کارم توسعه وب با جنگوست و این پروژه از اونایی بود که قبلا با یک تکنولوژی ای پیاده شده بود اما به دلایل زیادی تصمیم به پیاده کردن مجدد سایت از صفر گرفته شده بود که تیم ما از طراحی و ریدیزاین ui کار و پیاده کردن فرانت کار با Next Js و بکند کار با DRF کارو جمع کرد و دراورد :)
چی قرار بود ساخته بشه؟
بازار املاک دماوند یه بازار محلیه. فایلها توافقیان، مشاورها منطقهای کار میکنن، بازدید ملک باید ثبت بشه، و سپردن ملک هم نباید مستقیم بره روی سایت. یعنی اگه کسی فرم پر کرد، اول تیکت بخوره، ادمین مشاور رو انتخاب کنه، بعد تازه فایل منتشر بشه. این جزئیات رو نمیشه با یه قالب وردپرس جمع کرد؛ باید مدل داده و گردش کار مال خود پروژه باشه
تو صفحه اصلی سه مسیر مشخص گذاشتیم: خرید ملک، اجاره، خدمات مهندسی. زیرش فیلتر شهر و نوع ملک. املاک ویژه هم از همون API لیست میان، نه از یه اسلایدر استاتیک اگه فردا فایل جدید ثبت بشه، همونجا میشینه
جستجو و آرشیو فایلهای ملکی
لیست فروش الان حدود ۱۷۸ فایل داره و صفحهبندی شده. فیلترها روی شهر، محله، نوع ملک و نوع معامله سوارن. قیمت توافقی هم جدا هندل میشه؛ نمیشه یه ملک با قیمت صفر رو قاطی بازه قیمتی کرد و نتیجه رو خراب کرد. برای جستجوی متنی هم Elasticsearch گذاشتم و اگه سرویس سرچ بالا نباشه، سیستم میره روی جستجوی PostgreSQL. اینو برای محیطی نوشتم که سرور گاهی اذیت میکنه، نه برای دمو
صفحه جزئیات ملک همون جاییه که کار واقعی معلوم میشه. گالری، موقعیت روی نقشه، مشخصات، قیمت، مشاور فایل و دکمه درخواست بازدید. بازدید لاگین میخواد؛ تیکتش تو پنل میشینه تا پیگیری بشه. شماره مشاور هم از پروفایل ایجنت میاد، نه یه فیلد الکی تو متن آگهی

مشاورین، ورود با پیامک، سپردن ملک
دایرکتوری مشاورین فیلتر شهر و محله داره. مشاور تاییدشده و مشاور گویا از هم جدا هستن؛ چون همه ایجنتهای سایت قرار نبود به تیکتهای داخلی جواب بدن. پروفایل هر مشاور تعداد فایل و سابقه رو نشون میده
لاگین رو با رمز عبور نساختم. شماره موبایل میگیره، OTP میفرسته، JWT برمیگرده. کاربر جدید همون لحظه ساخته میشه. برای یه سامانه املاک این مدل طبیعیتره؛ کسی حوصله ساختن پسورد نداره وقتی میخواد فایل بسپره یا بازدید ثبت کنه
خدمات مهندسی و محتوای سایت
گویا فقط آگهی نیست. بخش خدمات مهندسی — از نقشه و نقشهبرداری تا پایانکار و اجرا — جدا طراحی شده و فرم درخواست خودش را دارد. این بخش رو قاطی تیکت ملک نکردم، چون گردش کارش فرق میکنه
بلاگ هم از پنل جنگو مدیریت میشه. دستهبندی، نویسنده، تصویر شاخص. مقالهها بیشتر حول ساختوساز و امور ثبتی میچرخن تا سایت فقط ویترین فایل نباشه و برای جستجوی گوگل هم صفحه داشته باشه
پنل ادمین سفارشی جنگو
این قسمت کار خودمه. ادمین پیشفرض جنگو برای این پروژه کافی نبود. ظاهر پنل رو برند گویا کردم، تاریخها شمسی شد، آپلود عکس ملک با انتخاب تصویر اصلی جدا نوشته شد، و تیکتهای کامل ملک دیگه خودکار به مشاور وصل نمیشن. وضعیت پیشفرض «در انتظار تخصیص»ه؛ ادمین میشینه مشاور را انتخاب میکنه. اگه تیکتی بیشتر از ۲۴ ساعت بمونه، تو خود پنل اعلان میآید.

یه نکته خیلی مهم : این پنل خب پنل جنگو هست و این پنل فقط برای سیستم منیجر طراحی شد و مشاورین و کاربران اصلی سایت پنل های جداگانه دارن و همه ی اونا از داخل خود سایت و با api داره کنترل میشه
API Docs خیلی تمیز !
برای این پروژه مستقلا یک داکیومنت شرکتی کامل پیاده کردم که در طی توسعه خیلی مفید بود
میتونید برای پروژه هاتون از این سبک داکیومنت کردن اندپوینت هاتون ایده بگیرید

ویجت شهر جی پی تی | shahrgpt.ir
این یه پروژه ی خیلی مفصله که تیم ما توی شرکت گویا شروع به طراحی و توسعه ش کرد
هدف این بود که در ابتدا به سوالات مردم در مورد شهر خودشون از جستجو به کمک AI در همه موارد شهری از خدمات شهرداری و خدمات فردی و ... تا پرسش در مورد حتی ملک های موجود در شهر و منطقه خودشون پاسخ کامل بدیم و البته این ویجت در کنار سایت گویا هم یک اپشن فوق العاده است برای کسانی که توی دماوند و شرق تهران دنبال ملک میگردن !

برای ویجت دستیار هوشمند هم سهمیه پیام گذاشتم. کاربر مهمان تعداد محدودی سوال میپرسه؛ بعد از لاگین کردنش سقف بالاتر میره. پاسخ از سرویس شهر جیپیتی میاد و تاریخچه سمت کلاینت میمونه که در اپدیت های اینده هیستوری چت کاربر هم بهش نمایش داده میشه
اگر دوست داشتید بیشتر در مورد شهر جی پی تی بدونید حتما بهش سر بزنید :
ورود به شهر جی پی تی
زیرساخت فنی، بدون شعار
- بکاند: Django و Django REST Framework
- احراز هویت: OTP + JWT
- دیتابیس: PostgreSQL
- جستجو: Elasticsearch با Fallback روی Postgres
- فایل و تصویر: ذخیرهسازی ابری
- تیکتها: سپردن ملک، بازدید، درخواست ایجنت، خدمات مهندسی
- مستندات API برای تیم فرانت
چیزی که برای من مهم بود این بود که API تمیز باشه و پنل ادمین با کار روزمره مشاور و مدیر سایت بجنگه، نه اینکه فقط دموی لوکال خوب به نظر برسه. سایت الان روی دامنه خود پروژه بالا است و کاربرای خاص خودشم داره :)
نتیجه این نمونه کار
اگه دنبال طراحی سیستم های پیچیده ، اتوماسیون یا هر ایده جالب برای پیاده سازی هستی در هر حوزه ای، این پروژه را بهعنوان نمونه کار واقعیام ببین: یه سامانه اختصاصی با گردش تیکت، مشاور، جستجو و پنل مدیریت سفارشی
برای پروژه مشابه — املاک، پنل اختصاصی یا API جنگو — از طریق janigo.ir پیام بده