⚡
التحديات
قبل هذا المشروع، كان مطعم تشاووش يستقبل الطلبات عبر الهاتف فقط، ولم يكن لديه أي قناة للطلب الإلكتروني.
في ساعات الذروة، كانت المكالمات الهاتفية تُفقد ويشعر العملاء بالإحباط.
كانت إدارة الطلبات تُجرى يدويًا على الورق، مما أدى إلى أخطاء بشرية.
غياب نظام الدفع الإلكتروني أجبر العملاء على الدفع نقدًا عند التسليم.
كانت معلومات العملاء وسجل الطلبات محفوظة بشكل متفرق وغير قابلة للاسترجاع.
لم يكن لدى صاحب المطعم أي أداة لتحليل المبيعات أو إدارة المنتجات.
💡
الحلول
تمّ تنفيذ تطبيق ويب بـ Django بمعمارية ثلاث تطبيقات (account / site_profile / zarinpal) لفصل المسؤوليات.
بناء نظام مصادقة مزدوج: تسجيل الدخول بكلمة المرور التقليدية وتسجيل الدخول برمز SMS لمرة واحدة (OTP).
تكامل واجهة قاصدك للرسائل النصية لإرسال رموز التسجيل وتسجيل الدخول وإشعارات الطلبات الجديدة إلى المدير.
تكامل بوابة الدفع زرينبال v4 مع تنفيذ كامل لدورة Request ← StartPay ← Verify وحفظ رقم المرجع (RefID).
تصميم سلة تسوق ديناميكية بـ AJAX تحدّث الكمية والسعر دون إعادة تحميل الصفحة.
بناء لوحة إدارة مخصّصة بصلاحيات قائمة على الأدوار لإدارة المنتجات والمستخدمين والطلبات والتحكّم اليدوي بساعات العمل.
📚
الإنجازات
انخفاض كبير في المكالمات الهاتفية، مع نقل معظم الطلبات إلى القناة الإلكترونية.
زيادة دقة الطلبات وإلغاء الأخطاء الناتجة عن الإدخال اليدوي على الورق.
دفع إلكتروني آمن وسريع مع إمكانية التتبع عبر رقم المرجع (RefID).
إدارة مركزية لجميع المنتجات والمستخدمين والطلبات من خلال لوحة إدارة واحدة.
تقليل زمن معالجة كل طلب من عدة دقائق إلى بضع ثوانٍ.
إمكانية الاطلاع على سجل مشتريات العملاء وتحليل المبيعات لصاحب المطعم.
🔧
النقاط الفنية البارزة
تنفيذ مصادقة OTP دون كلمات مرور لتجربة مستخدم أبسط.
تكامل كامل مع بوابة الدفع زرينبال v4 مع دورة Request و Verify وحفظ RefID في قاعدة البيانات.
إرسال SMS تلقائي للطلب الجديد إلى المدير عبر واجهة قاصدك لحظة تأكيد الدفع.
استخدام التقويم الهجري الشمسي (الجلالي) عبر مكتبة persiantools لعرض تواريخ الطلبات.
بناء سلة تسوق ديناميكية بـ AJAX دون إعادة تحميل الصفحة مع مزامنة الأسعار الفورية.
تصميم واجهة مستخدم RTL بالكامل، متجاوبة ومتوافقة مع الجوال والحاسوب.
🏗️
الهندسة المعمارية
تم بناء المشروع على نمط MTV (Model-Template-View) في Django.
يتولى تطبيق account إدارة نموذج المستخدم المخصص والمصادقة وإرسال الرسائل النصية.
يحتوي تطبيق site_profile على نماذج المنتج والسلة والطلبات إلى جانب لوحة الإدارة ولوحة المستخدم.
يتولى تطبيق zarinpal التواصل مع بوابة الدفع والتحقق من المعاملات.
تمّ تخصيص نموذج User عبر AbstractUser مع حقول إضافية مثل الجوال والمعلومات البنكية وصورة الملف الشخصي.
تمّ تنظيم القوالب على أساس المكوّنات (header و sidebar و footer كـ includes).
📐
نطاق المشروع
المشروع يعمل حاليًا بشكل مباشر على النطاق chavoosh.restaurant.
يخدم عملاء حقيقيين لمطعم تشاووش في منطقة فرديس ومشكين دشت.
يتكوّن من ثلاثة تطبيقات Django مستقلة وأكثر من عشرة نماذج بيانات.
يدعم طريقتَي مصادقة واثنتين من الواجهات الخارجية (زرينبال وقاصدك).
مصمّم للتوسّع بمعمارية معيارية وقابلة للتطوير.
يدير دورة الطلب كاملة من اختيار المنتج حتى الدفع والتأكيد النهائي.