تخطَّ إلى المحتوى
كل المشاريع
الكود متاح التوصيل والتجارةمفتوح المصدر

وفر قريشاتك

وفّر في كل طلب بلمسة واحدة

تطبيق كوبونات وعروض عربي مبني بـ Flutter و Firebase: انسخ كود الخصم بلمسة، وافتح المتجر، وتصفّح العروض، واستقبل الصفقات الجديدة بالإشعارات.

الدولة
السعودية
النوع
الكود متاح
الفترة
2021
المنصات
Android · iOS
بانر وفر قريشاتك

نظرة عامة

وفر قريشاتك (ElMwafer) تطبيق كوبونات وعروض للمتسوقين العرب في السعودية والخليج. يعرض أكواد خصم لأشهر المتاجر الإلكترونية في الأزياء والمنزل والسفر والمطاعم والأطفال وغيرها.

ينسخ المستخدم الكود بلمسة واحدة وينتقل إلى المتجر، ويتصفح عروض المتاجر ويقرأ مقالات التسوق. يُدار المحتوى من تطبيق إدارة منفصل على Firebase، ويضم هذا المستودع الكود المصدري الكامل لتطبيق المستخدم.

التحدي

  1. 01

    كانت أكواد الخصم متفرقة في منشورات مواقع التواصل، وكثير منها ينتهي قبل أن يصل إليه المتسوق.

  2. 02

    احتاج المشغّل إلى إضافة المتاجر والكوبونات والعروض دون إصدار تحديث، وإبلاغ المستخدمين بالصفقات الجديدة فورًا.

  3. 03

    الجمهور يقرأ العربية، فكان لا بد أن تكون التجربة كلها RTL أولًا بخط عربي.

أبرز الميزات

الكوبونات

  • شريط أقسام للمطاعم والسفر والأطفال والمنزل وغيرها، ولكل قسم قائمة كوبونات.
  • بحث فوري عن المتاجر يعتمد على استعلامات النطاق في Firestore.
  • بطاقة كوبون بشعار المتجر والخصم والكود وعدّاد الاستخدام.
  • زر نسخ الكود ينسخه إلى الحافظة ويزيد عدّاد النقرات للمتجر.
  • زر تسوّق الآن يفتح المتجر، وزر المشاركة يرسل العرض مع رابط تحميل التطبيق.

العروض والتفاعل

  • عروض متاجر مثل Amazon و H&M و AliExpress تُحمَّل من Firestore مع بحث خاص بها.
  • كل عرض يفتح صفحة المتجر في المتصفح.
  • كل جهاز مشترك في topic باسم all على FCM ليرسل المشرف الصفقات الجديدة للجميع.
  • اهتزاز عند وصول إشعار والتطبيق مفتوح.

هيكل التطبيق

  • شاشات تعريف تظهر مرة واحدة عبر علَم محفوظ في shared_preferences.
  • قائمة جانبية للتبديل بين الوضعين الفاتح والداكن والتواصل عبر WhatsApp والتقييم والمشاركة.
  • واجهة عربية بخط Cairo من Google Fonts مع شريط علوي منحنٍ مخصص.

الميزة الأبرز

انسخ الكود وافتح المتجر

  • قائمة الكوبونات استعلام Firestore على coupons مفلتر حسب القسم المختار.
  • زر نسخ الكود يحدّث حقل click للمتجر أولًا ثم ينسخ الكود ويعرض رسالة تأكيد، فيعكس عدّاد الاستخدام في كل بطاقة نقرات حقيقية.
  • زر تسوّق الآن يتحقق عبر canLaunch قبل فتح رابط المتجر، ويعرض رسالة إذا كان الرابط معطّلًا.
  • زر المشاركة يكوّن رسالة عربية باسم المتجر وقيمة الخصم ورابط تحميل التطبيق.

ملاحظات هندسية

  1. 01

    بحث بالبادئة على Firestore

    لا يدعم Firestore استعلام LIKE، فيعتمد البحث على استعلام نطاق من النص المكتوب حتى النص مضافًا إليه آخر حرف عربي ي، فيطابق كل اسم متجر عربي يبدأ بما كُتب.

  2. 02

    عدّ الاستخدام الحقيقي

    يكتب إجراء النسخ عدّاد النقرات أولًا ثم ينسخ الكود داخل whenComplete، فيعكس العدّاد نقرات حقيقية.

  3. 03

    محتوى بلا إصدارات جديدة

    المتاجر والكوبونات والعروض والمقالات محفوظة في Firestore وتُعدَّل من تطبيق الإدارة، فتظهر الصفقات الجديدة دون تحديث من المتجر.

  4. 04

    تعريف لمرة واحدة

    تقرأ main() علَم initScreen قبل runApp وتختار المسار الأول: شاشات التعريف أو شاشة البداية.

  5. 05

    حفظ اختيار الثيم

    يحفظ ThemePreference اختيار الوضع الداكن، ويُبلغ ThemeProvider تطبيق GetMaterialApp لإعادة البناء بالـ ThemeData المناسب.

النتائج

  • نُشر على Google Play باسم الحزمة com.wafer.qrushatak، وصفحته لم تعد متاحة، لذلك لا تُذكر أرقام تثبيت.
  • مع Flutter 2.10.5 يعطي flutter analyze صفر أخطاء وصفر تحذيرات على كود 2021.
  • الكود المصدري الكامل لتطبيق المستخدم موجود في المستودع.

التقنيات

  • Flutter
  • Dart
  • Cloud Firestore
  • Firebase Storage
  • FCM
  • Provider
  • GetX navigation
  • flutter_typeahead
  • SharedPreferences
  • url_launcher
  • Google Fonts
  • Arabic RTL