⚡
چالشها
- نیاز به سیستم فروش فایل با آپلود امن و محافظت از فایلهای zip
- مدیریت همزمان کلاسهای آنلاین و فایلهای دانلودی در یک سبد خرید واحد
- محاسبه خودکار سهم اساتید از فروش فایل و ثبتنام کلاس
- نیاز به سیستم حسابداری و درخواست تسویه با حداقل مبلغ
- مدیریت ظرفیت کلاسها و جلوگیری از ثبتنام بیش از حد
- سیستم پشتیبانی تیکتی با امکان پاسخدهی و پیگیری
- یکپارچهسازی درگاه پرداخت زرینپال
- مدیریت سطوح دسترسی (کاربر، استاد، مدیر) و دسترسی ویژه مقالات
💡
راهحلها
- طراحی مدلهای Product، Classes و Article برای مدیریت محتوا
- پیادهسازی سیستم سبد خرید یکپارچه با مدلهای Cart و Class_student
- محاسبه خودکار سهم اساتید با درصد قابل تنظیم (professor_class_percent, professor_product_percent)
- استفاده از درگاه پرداخت زرینپال برای تراکنشهای امن
- طراحی سیستم حسابداری با مدل Accounting و امکان درخواست تسویه
- پیادهسازی سیستم پشتیبانی با مدل Support_table و قابلیت پاسخدهی
- استفاده از sorl-thumbnail برای بهینهسازی تصاویر
- استفاده از jdatetime و persiantools برای تبدیل تاریخ شمسی
- سیستم احراز هویت با پیامک از طریق API غدیر
- استفاده از pymysql برای اتصال به MySQL
📚
دستاوردها
- پلتفرم آموزشی کامل با فروش فایل و برگزاری کلاس
- سیستم پرداخت امن با درگاه زرینپال
- سیستم حسابداری خودکار برای اساتید
- سیستم پشتیبانی تیکتی حرفهای
- مدیریت سطوح دسترسی و مقالات ویژه
- پشتیبانی کامل از تاریخ شمسی
- طراحی واکنشگرا و کاربرپسند
- یکپارچهسازی با تلگرام بات
🔧
نکات فنی برجسته
- Django 4.2.6 و Python 3
- پایگاه داده MySQL با pymysql
- درگاه پرداخت زرینپال (Zarinpal)
- احراز هویت مبتنی بر SMS با API غدیر (Ghasedak)
- تبدیل تاریخ شمسی با persiantools و jdatetime
- بهینهسازی تصاویر با sorl-thumbnail و python-resize-image
- سیستم AJAX گسترده با JSON
- طراحی Multi-App (shop_account, shop_profile, zarinpal)
- مدیریت سطوح دسترسی (کاربر، استاد، مدیر)
- تلگرام بات با django-telegrambot و Pyrogram
- تولید فایل اکسل با xlwt
- سیستم حسابداری و تسویه با محاسبه خودکار سهم اساتید
- سیستم تخفیف با کدهای تخفیف کلاس و فایل
🏗️
معماری پروژه
پروژه فایلشاپ بر پایه معماری MVT (Model-View-Template) جنگو ساخته شده و از سه اپلیکیشن اصلی تشکیل شده است:
۱. shop_account: مسئول مدیریت کاربران، احراز هویت و ثبتنام
- مدل User سفارشی با فیلدهای education, property, group_of_user, mobile
- اطلاعات شبکههای اجتماعی و بانکی
- سیستم ورود با پیامک و رمز عبور
- درصد سهم اساتید (professor_class_percent, professor_product_percent)
۲. shop_profile: مسئول مدیریت محتوا و تراکنشها
- مدل Product برای فایلهای آموزشی
- مدل Classes برای کلاسهای آنلاین
- مدل Article برای مقالات
- مدلهای Cart و Class_student برای سبد خرید
- مدل Accounting برای حسابداری
- مدل Support_table برای پشتیبانی
- مدل News_table برای اطلاعیهها
۳. zarinpal: مسئول پرداخت آنلاین
- یکپارچهسازی با درگاه پرداخت زرینپال
پروژه در حالت DEBUG اجرا میشود و از SQLite برای توسعه و MySQL برای تولید استفاده میکند.
📐
مقیاس پروژه
- ۳ اپلیکیشن اصلی (shop_account, shop_profile, zarinpal)
- بیش از ۱۵ مدل دادهای
- ۳ نوع محتوای اصلی (فایل، کلاس، مقاله)
- ۳ سطح دسترسی (کاربر، استاد، مدیر)
- بیش از ۳۰ صفحه و قالب HTML
- بیش از ۴۰ ویو و endpoint
- سیستم پرداخت کامل با زرینپال
- سیستم حسابداری و تسویه
- سیستم پشتیبانی تیکتی
- سیستم اطلاعرسانی
- تلگرام بات
- سیستم تخفیف