⚡
چالشها
- نیاز به سیستم رزرو نوبت بدون ثبتنام اجباری و ایجاد خودکار حساب کاربری
- مدیریت تاریخهای شمسی در سیستم رزرو
- احراز هویت از طریق پیامک به جای رمز عبور سنتی
- مدیریت انواع مختلف درخواست پزشکی در یک سیستم واحد
- ایجاد پنل مدیریتی برای پیگیری و تایید رزروها
- یکپارچهسازی با سرویس پیامکی غدیر
💡
راهحلها
- پیادهسازی سیستم رزرو با ثبتنام خودکار کاربر در لحظه رزرو
- استفاده از کتابخانه persiantools برای تبدیل تاریخ شمسی به میلادی
- طراحی سیستم احراز هویت مبتنی بر پیامک با API غدیر (Ghasedak)
- طراحی مدل Reservation برای ذخیره اطلاعات رزرو شامل نوع پزشک، تاریخ و توضیحات
- پیادهسازی سیستم AJAX برای ارتباط بدون رفرش با سرور
- استفاده از pymysql برای اتصال به MySQL
- طراحی پنل مدیریتی با امکان تایید/رد رزروها
- استفاده از مدل User سفارشی با ارثبری از AbstractUser
📚
دستاوردها
- سامانه رزرو نوبت کاربرپسند و سریع
- ثبتنام خودکار بدون نیاز به فرم طولانی
- احراز هویت امن با پیامک
- پنل مدیریتی کامل برای پیگیری رزروها
- پشتیبانی از تاریخ شمسی
- طراحی واکنشگرا (Responsive)
- کاهش زمان رزرو نوبت به کمتر از یک دقیقه
🔧
نکات فنی برجسته
- Django 5.0.1 و Python 3
- پایگاه داده MySQL با pymysql
- مدل User سفارشی (AUTH_USER_MODEL)
- احراز هویت مبتنی بر SMS با API غدیر (Ghasedak)
- تبدیل تاریخ شمسی با persiantools
- سیستم AJAX گسترده با JSON
- طراحی Multi-App (store_account, store_profile)
- مدیریت سطوح دسترسی (کاربر، مدیر، Superuser)
- استفاده از Paginator برای صفحهبندی
- ثبتنام خودکار کاربر در لحظه رزرو
- مدیریت انواع درخواستهای پزشکی (عمومی، قلب، مغز و اعصاب، داخلی، گوارش، مشاوره تلفنی)
🏗️
معماری پروژه
پروژه دکتر آنلاین بر پایه معماری MVT (Model-View-Template) جنگو ساخته شده و از دو اپلیکیشن اصلی تشکیل شده است:
۱. store_account: مسئول مدیریت کاربران، احراز هویت و ثبتنام
- مدل User سفارشی با فیلدهای mobile, access_level, user_image, random_pass
- سیستم ورود با پیامک و رمز عبور
- ثبتنام خودکار هنگام رزرو نوبت
۲. store_profile: مسئول مدیریت رزروها و پروفایل
- مدل Reservation برای رزرو نوبت
- ذخیره نوع درخواست پزشکی، تاریخ و توضیحات
- پنل مدیریتی برای پیگیری رزروها
پروژه در حالت DEBUG اجرا میشود و از SQLite برای توسعه و MySQL برای تولید استفاده میکند.
📐
مقیاس پروژه
- ۲ اپلیکیشن اصلی (store_account, store_profile)
- ۲ مدل دادهای اصلی (User, Reservation)
- ۶ نوع درخواست پزشکی (عمومی، قلب، مغز و اعصاب، داخلی، گوارش، مشاوره تلفنی)
- بیش از ۱۵ صفحه و قالب HTML
- بیش از ۱۵ ویو و endpoint
- سیستم احراز هویت کامل با پیامک
- پنل مدیریتی اختصاصی
- سیستم رزرو نوبت با ثبتنام خودکار
- پشتیبانی کامل از تاریخ شمسی