MA↗محمد
عبد الرحمان
← كل المشاريع
01 / React Native · Expo · NestJS · Prisma · PostgreSQL · React

لحظةتطبيق توصيل الطعام والبقالة

طلب وجبات المطاعم واحتياجات البقالة من تطبيق موبايل مرتبط بتحضير التاجر وتوصيل السائق ولوحة الإدارة.

Lahda — واجهة التطبيق ببيانات تجريبية
واجهة التطبيق · بيانات تجريبية
01

المشكلة وسير العمل

يختار العميل العنوان والمنتجات ← يحسب الخادم الطلب ← يجهز التاجر ← يقبل السائق العرض ← تُحدَّث متابعة التوصيل ← تسوي الإدارة النقد وقيود الدفتر.

الوظائف الرئيسية

  • كتالوج العميل والمفضلة والعناوين والسلة والعروض
  • تجهيز الطلبات وإدارة منتجات التاجر
  • عروض السائق والتعيين والتتبع وحالات التوصيل
  • إعدادات الإدارة ودفتر التاجر وأرباح السائق وتحويلات الدفع النقدي وإيصالات التسوية
  • تكامل إشعارات Firebase وتغطية التوصيل حسب الموقع
02

البنية والقرارات

لحظة — component relationships
  • جمعت تطبيقات العميل والتاجر والسائق والإدارة وAPI في مستودع واحد لربط مسار الطلب.
  • استخدمت ترحيلات Prisma لتطور المخطط وحماية الأدوار للواجهات والتحقق من ملكية السجلات.
  • تربط محاسبة الدفع عند الاستلام أرصدة التجار وأرباح السائقين والتحويلات وإيصالات التسوية.

من الشيفرة

03

تنسيق أربعة أدوار في منتج توصيل واحد

طورت لحظة لربط طلبات الطعام والبقالة بتحضير التاجر وتوصيل السائق وتسوية النقد.

يرى العميل والتاجر والسائق والمدير أجزاء مختلفة من الطلب نفسه. لذلك نحتاج سؤالين للصلاحيات: هل يحق لهذا الدور تنفيذ العملية؟ وهل يملك هذا الحساب السجل المحدد أو يتولى معالجته؟ تجمع API حراس الأدوار مع فحوص ملكية السجل داخل الخدمات. ينفذ العرض مسار توصيل كاملاً بحسابات اصطناعية بدلاً من عرض لوحات منفصلة فقط.

تؤثر حالة الطلب أيضاً على السجلات المالية. يمكن أن ينشئ التسليم قيوداً للتاجر وأرباحاً للسائق، فلا ينبغي أن يكرر تحديث التسليم هذه القيود. يفحص أمر القبول التكرار المتتابع ورفض تغيير الحالة النهائية، بينما تبقى الكتابات المتزامنة مهمة تحقق مستقلة.

درس من تحصيل النقد بعد الخصم

كشف الطلب التجريبي أن مجموع أسعار المنتجات قبل الخصم لا يساوي نقد العميل المحصل. يعتمد التحويل الآن إجمالي العميل ناقص رسم التوصيل، بحد أدنى صفر. تعرض الإدارة فرق التحصيل مستقلاً عن المجموع ورسم التطبيق قبل الخصم، لتفسير السعر بدلاً من إخفاء الخصم في رقم مجمع.

يعكس النشر السابق على Google Play خبرة تسليم الموبايل. يجهز الإصدار الحالي عرض API والإدارة بصورة قابلة للتكرار؛ تحتاج الخرائط وFirebase والتوقيع الجديد وسلوك الأجهزة إعداداً وفحصاً مستقلين. من الأولويات التالية تسوية العمليات المتزامنة والإشعارات المتكاملة على الأجهزة.

04

حالة المشروع

نشرت لحظة واختبرته ونشرت تطبيق العملاء على Google Play.

أنشئ PostgreSQL فارغة ثم انسخ api/.env.example إلى api/.env واضبط DATABASE_URL وJWT_SECRET جديداً بطول 32 حرفاً على الأقل وكلمتي ADMIN_PASSWORD وDEMO_PASSWORD بطول 12 على الأقل. اجعل SEED_DEMO_DATA=1 للعرض المؤقت فقط. تضيف التعبئة سائقاً وتجاراً اصطناعيين، ويضيف bootstrap-customer عميلين. اضبط بيئة الإدارة وAPI على 2007 وبيئات العميل والسائق حسب المحاكي أو الشبكة. أعد إعداد الخرائط وFirebase والتوقيع بصورة مستقلة.

فحوص التطوير وحدود التشغيل

نجح بناء API ولوحة الإدارة. طبقت قاعدة PostgreSQL جديدة ترحيلات Prisma الستة عشر. نجح فحص مصادقة الأدوار الأربعة ورفض التسجيل كمدير والوصول لطلب آخر وخصم 10% وإتمام التسليم وقيد أرباح واحد للسائق والتاجر وعدم تكراره عند تكرار التسليم ورفض تغيير الحالة النهائية وتأكيد تحويل نقدي مرة واحدة. أثبت فحص قاعدة جديدة التحويل النقدي بعد الخصم: إجمالي العميل 3,140 دج ناقص توصيل 1,000 دج يساوي 2,140 دج للإدارة، مع رفض التأكيد المكرر. كانت الصيغة السابقة تحمل السائق خصم العميل اعتماداً على المجموع قبل الخصم وأُصلحت.

لم تُفحص أجهزة وبناء أندرويد والخرائط وFirebase وإشعارات عدة أجهزة والتحديثات المالية المتزامنة. نجح التكرار التسلسلي فقط. أوقف API قبل توليد Prisma أو الاستعادة على Windows لتجنب قفل DLL.

التفاصيل التقنية ↗

جولة الواجهة

تسلسل لقطات من التطبيق ببيانات تجريبية.

المشروع التاليIQBox ↗
لنعمل معاً

لديك فكرة مشروع؟

تواصل معي لمناقشة تطبيقك أو موقعك.

تواصل عبر واتساب +213794873386 ↗