ماجيستيك — مبيعات ميدانية ونقاط بيع
نظام نقاط بيع ومبيعات ميدانية لموزّع إلكترونيات، مبني ليواصل البيع حين لا تكون هناك شبكة أصلًا.
- المنصة
- أندرويد
- السنة
- 2026
- الدور
- مطوّر أندرويد

بالأرقام
- سياسة أمان على مستوى الصف
- 69
- جدولًا
- 38
- يبيع بلا شبكة
- Offline
التحدّي
المندوبون يبيعون من السيارات والمخازن وواجهات المحلات — أماكن الاتصال فيها ليس مضمونًا. ونظام نقاط بيع يتوقف في انتظار الشبكة هو نظام يضيّع البيعة. والمال المتحرك بين الخزائن النقدية والمحافظ والأقساط لا بد أن يتطابق تمامًا في نهاية اليوم على أي حال.
الحل
تطبيق الموبايل يكتب أولًا في قاعدة Drift محلية ويضع كل إجراء في outbox لا يتكرّر أثره، فتكتمل البيعة سواء وُجدت الشبكة أم لا، ولا تُحتسب المزامنة مرتين أبدًا. والخادم هو المرجع: ٣٨ جدولًا و٨٢ دالة و٦٩ سياسة أمان على مستوى الصف تفرض من يرى أي مخزن وأي خزينة وأي عميل — في قاعدة البيانات، لا في الواجهة.
النتيجة
البيع لم يعد معلّقًا على الشبكة، واليوم يُغلق بتقرير Z يربط كل فاتورة وتحصيل ومصروف بخزينته. ولأن القواعد تعيش في قاعدة البيانات، فإن إضافة دور جديد صارت صفًّا في جدول الصلاحيات لا إصدارًا جديدًا.
أبرز النقاط
- نقاط بيع تعمل بلا شبكة — البيعة تُكتب في قاعدة محلية أولًا وتنتظر في outbox لا يتكرّر أثره، فلا تُحتسب مرتين مهما تكرّرت المزامنة.
- خزائن ويوم عمل — نقدي وفودافون كاش وإنستا وخزائن فرعية، مع فتح يوم العمل وتوريده وإغلاقه بتقرير Z يربط كل حركة بخزينتها.
- مخازن وجرد ومشتريات — بضاعة وعملاء ومشتريات وسلف وجرد، مع استيراد من Excel لمن يبدأ بسجل قائم بالفعل.
- الصلاحيات في قاعدة البيانات — ٦٩ سياسة أمان على مستوى الصف تقرّر من يرى أي مخزن وأي خزينة — الواجهة لا تُخفي البيانات، القاعدة لا تعطيها أصلًا.
- تقارير وتدقيق — تقارير شاملة وسجل تدقيق لكل حركة، ونسخ احتياطي تلقائي إلى Google Drive.
- موبايل ولوحة ويب من كود واحد — تطبيق المندوب ولوحة الأدمن مبنيان بـFlutter من قاعدة كود واحدة فوق Supabase.
اتبنى بـ
- Flutter
- Dart
- Drift
- Supabase
المشروع التالي
أبو دولة ستوديو