⚡
چالشها
- نیاز به سیستم فروش مستقیم از کشاورز به مصرفکننده بدون واسطه
- مدیریت دو نوع قیمت (خرده فروشی و عمده فروشی) برای هر محصول
- سیستم حمل و نقل پیچیده با سه نوع وسیله نقلیه و قیمتهای متفاوت برای هر استان
- نیاز به سیستم ثبتنام خودکار کاربر در لحظه خرید
- مدیریت بازاریابان و تسویه با آنها
- محاسبه هزینه حمل و نقل بر اساس استان و شهرستان
- نیاز به پنل مدیریتی با سطوح دسترسی مختلف
- مدیریت تاریخ شمسی در کل سیستم
💡
راهحلها
- پیادهسازی مدل Commodity با دو فیلد قیمت (retail_price, overall_price)
- طراحی مدل Transport با سه فیلد قیمت برای هر نوع وسیله (vanet_price, nasan_price, khavar_price)
- پیادهسازی ثبتنام خودکار کاربر با random password در لحظه خرید
- طراحی مدل Cart با فیلدهای visitor_id و visitor_paid برای مدیریت بازاریابان
- پیادهسازی مدل State_city با رابطه ManyToMany به City
- سیستم احراز هویت با پیامک از طریق API غدیر
- پیادهسازی سطوح دسترسی (مدیر، کاربر) با فیلد access_level
- استفاده از persiantools برای تاریخ شمسی
- طراحی صفحات Takestan_us برای معرفی منطقه
📚
دستاوردها
- فروشگاه آنلاین کامل با دو نوع فروش (خرده و عمده)
- سیستم حمل و نقل هوشمند با قیمتهای متغیر
- سیستم بازاریابی و تسویه با بازاریابان
- ثبتنام خودکار کاربر در لحظه خرید
- پنل مدیریتی با سطوح دسترسی مختلف
- پشتیبانی کامل از تاریخ شمسی
- طراحی واکنشگرا و کاربرپسند
- سیستم مدیریت استان و شهرستان
🔧
نکات فنی برجسته
- Django 4.2.6 و Python 3
- پایگاه داده MySQL با pymysql
- django-jalali و persiantools برای تاریخ شمسی
- python-telegram-bot برای بات تلگرام
- sorl-thumbnail برای بهینهسازی تصاویر
- Pillow برای پردازش تصویر
- xlwt برای خروجی Excel
- Flask برای سرویسهای جانبی
- سیستم ثبتنام خودکار با random password
- مدیریت سطوح دسترسی (مدیر، کاربر)
- سیستم حمل و نقل با سه نوع وسیله
- سیستم بازاریابی و تسویه
- مدیریت State_city با ManyToMany
- API غدیر (Ghasedak) برای پیامک
- مدیریت تاریخ شمسی در کل سیستم
🏗️
معماری پروژه
پروژه یار کشاورز بر پایه معماری MVT (Model-View-Template) جنگو ساخته شده و از دو اپلیکیشن اصلی تشکیل شده است:
۱. store_account: مسئول مدیریت کاربران و احراز هویت
- مدل User سفارشی با فیلدهای access_level, mobile, bank_card_number, total_income, paid_income
- سیستم ورود با پیامک و رمز عبور
- ثبتنام خودکار کاربر در لحظه خرید
۲. store_profile: مسئول مدیریت محصولات، سبد خرید و حمل و نقل
- مدل Commodity برای محصولات کشاورزی
- مدل Cart برای سبد خرید با فیلدهای visitor_id و visitor_paid
- مدل Transport برای مدیریت حمل و نقل
- مدل State_city برای مدیریت استان و شهرستان
- مدل ImageFile و Keyword برای تصاویر و کلمات کلیدی محصولات
ویوهای اصلی پروژه:
- home_page: صفحه اصلی با نمایش محصولات و جدول حمل و نقل
- commodity_details: جزئیات محصول با فرم خرید
- new_home: صفحه اصلی اختصاصی بازاریاب
- new_commodity_details: جزئیات محصول اختصاصی بازاریاب
- transport: لیست حمل و نقل
- about_us: درباره ما
- contact_us: تماس با ما
- takestan_us: درباره شهرستان تاکستان
پنل مدیریتی شامل:
- dashboard: داشبورد
- addcommodity: افزودن محصول
- allcommodity: لیست محصولات
- edit_commodity: ویرایش محصول
- edit_image: ویرایش تصاویر
- admin_cart: پیگیری سفارشات جدید
- follow_user_cart: پیگیری سبد خرید کاربر
- sent_cart: لیست تسویه بازاریابان
- all_visitor_paid_cart: سوابق فروش
- manage_transport: مدیریت حمل و نقل
- state_city: مدیریت استان و شهرستان
- allusers: لیست کاربران
- profile_settings: تنظیمات شخصی
- user_cart: سبد خرید
- user_sent_cart: لیست خریدهای قبل
- visitor_cart: فروشهای جاری
- visitor_paid_cart: فروشهای قبل
پروژه در حالت DEBUG اجرا میشود و از SQLite برای توسعه و MySQL برای تولید استفاده میکند.
📐
مقیاس پروژه
- ۲ اپلیکیشن اصلی (store_account, store_profile)
- ۵ مدل دادهای اصلی (User, Commodity, Cart, Transport, State_city)
- ۳ نوع وسیله نقلیه (وانت، نیسان، خاور)
- ۲ نوع قیمت (خرده فروشی و عمده فروشی)
- ۲ سطح دسترسی (مدیر، کاربر)
- بیش از ۲۰ صفحه و قالب HTML
- سیستم ثبتنام خودکار
- سیستم بازاریابی و تسویه
- مدیریت تاریخ شمسی