تفاصيل العمل

هو نظام كامل مبني من الألف إلى الياء، من واجهة Flutter حتى خادم Laravel، مع كل الميزات التي تبحث عنها الشركات الناشئة والتجار المحليون.

ما الذي تم تطويره بالكامل؟

الواجهة الأمامية (Flutter) – تجربة مستخدم لا تُضاهى

تصميم عصري بلوحة ألوان مخصصة (#4361EE, #F72585) وواجهة متجاوبة.

دعم اللغة العربية والإنجليزية بشكل كامل.

تحديد الموقع الجغرافي بدقة عالية باستخدام Geolocator.

حساب المسافة بين المستخدم والمحل باستخدام صيغة Haversine.

عرض المتاجر القريبة (حتى 30 كم)، مع ترتيبها حسب التقييم ثم المسافة.

تصنيفات متعددة (مطاعم، بقالات، صيدليات...) مع أيقونات مخصصة.

بحث ذكي بالنص داخل اسم المحل أو العنوان.

قائمة "المفضلة" مع حفظ دائم عبر SharedPreferences.

إشعارات فورية عند ظهور متجر جديد (عبر Firebase Cloud Messaging).

عربة تسوق ديناميكية مع عدد المنتجات المضافَة.

تبويبات متقدمة: الكل، الجديد، الأقرب، المفضلة.

شريط بحث، تحديث تلقائي، وإعادة تحميل ذكية.

واجهة مخصصة لكل نوع متجر (مثلاً: متجر طعام مخصص → CustomProductEntryPage).

دعم كامل للصور من الخادم مع التخزين المؤقت (CachedNetworkImage).

️ الخلفية (Laravel API) – بنية قوية وآمنة

واجهة RESTful كاملة مبنية على Laravel 9+.

نظام مصادقة آمن باستخدام JWT / Token.

واجهات API مفصلة:

/api/categories ← استرجاع التصنيفات

/api/products ← منتجات المتجر

/api/stores/category/{id} ← متاجر حسب التصنيف + موقع المستخدم

/api/orders ← إنشاء/عرض/إدارة الطلبات

/api/ratings ← تقييم الطلبات بعد التسليم

حساب المسافة بدقة باستخدام صيغة Haversine (نفسها المستخدمة في Google Maps).

تقييد التوصيل لمسافة 17 كم فقط (لضمان الجودة والسرعة).

حماية كاملة ضد الوصول غير المصرح به (الطلب يجب أن يكون من المستخدم المسجل).

دعم كامل لإدخال طلب مخصص (custom_name) للمنتجات غير المتوفرة.

تخزين تقييمات العملاء مع ربطها بالطلب والمتجر.

استجابة JSON دقيقة، مع رسائل خطأ واضحة وتصحيح مدعوم.

ميزات تقنية متقدمة

تحديد الموقع

Geolocator + GPS High Accuracy

تخزين البيانات

SharedPreferences (Flutter)

إدارة الحالة

Provider (Flutter State Management)

التخزين السحابي

Firebase Cloud Messaging (FCM)

التحقق من الصلاحية

Laravel Middleware & Validation

التحميل الآمن للصور

CachedNetworkImage + Laravel Storage

ترتيب المتاجر

Sort by Rating > Distance

التحديث التلقائي

Timer.periodic (كل 4 دقائق)

تجربة المستخدم

Material Design 3، تأثيرات، مؤشرات تقدم

بطاقة العمل

اسم المستقل
عدد الإعجابات
0
تاريخ الإضافة
تاريخ الإنجاز
المهارات