على الجهاز
ثلاثة تطبيقات، وواحد تثبّته من المتصفح
الموظف والعميل والمورّد والمنضدة ليسوا الشخص نفسه، لكنهم لا يحتاجون ست شيفرات أيضًا. تطبيقان مكتوبان، وثالث يستحق أن يُكتب، وما تبقّى هو مساحة العمل نفسها — تثبّتها من Chrome أو Edge فتعمل في نافذتها الخاصة، وتبقى تعمل حين ينقطع الاتصال.
لا شيء من تطبيقاتنا على Google Play أو App Store اليوم. وأول إدراج، إن وُجد، سيكون POS.
التطبيقات الثلاثة
Workspace وPortal موجودان في هذه الشيفرة بلغة Dart. أما POS فلم يُكتب بعد، وهذه الصفحة تقول ذلك بدل أن تتظاهر.
thexsys Workspace
apps/mobile/workspace
- الحالة
- موجود في الشيفرة
- الجمهور
- موظفو المنشأة: الملّاك والمديرون وكل الأقسام — ومعهم الفنيون والسائقون الذين يعملون بعيدًا عن المكتب
- المنصات
- أندرويدiOSالأجهزة اللوحية
الموافقات وعروض الأسعار والفواتير وجرد المخزون والعملاء وسجلات الوقت والخدمة الذاتية للموظفين والمحادثات. أما شاشات الميدان — مهام اليوم وقوائم التحقق والصور والتوقيعات والتسليم — فتقع داخل هذا التطبيق خلف صلاحيات الدور، لا في تطبيق مستقل.
thexsys Portal
apps/mobile/portal
- الحالة
- موجود في الشيفرة
- الجمهور
- عملاء المنشأة ومورّدوها، في شيفرة واحدة
- المنصات
- أندرويدiOS
واجهتان في تطبيق واحد. يرى العميل قضاياه ومواعيده وفواتيره ومستنداته ومدفوعاته؛ ويرى المورّد طلبات عروض الأسعار ونموذج العرض وأوامر الشراء والمطالبات وكشف الحساب. وتُفتح الواجهة بحسب من سجّل الدخول، ولهذا لم يعد تطبيق المورّدين المخطط له تطبيقًا منفصلًا.
thexsys POS
—
- الحالة
- لم يُبنَ بعد
- الجمهور
- الكاشير وصالة المطعم ومنضدة المجوهرات ومنضدة التسليم
- المنصات
- أندرويدالأجهزة اللوحية
التطبيق الأصلي الجديد الوحيد في الخطة، ولم يُكتب بعد. المنضدة تحتاج لوحًا مقفلًا في وضع الكشك، ودرج نقود وطابعة حرارية على الطاولة، وجلسة تواصل البيع حين ينقطع الاتصال — أربعة أشياء لا يمكن الوثوق بأن يمنحها تبويب متصفح.
تطبيق الويب القابل للتثبيت
وكل ما عدا ذلك متصفّح تثبّته
مساحة العمل تطبيق ويب تقدّمي، لا بالاسم فقط: عامل خدمة يخزّن الهيكل مسبقًا فيفتح أول تشغيل بعد التثبيت دون شبكة، وصندوق صادر في IndexedDB يصفّ عملية بيع أو طلبًا للمطبخ أو غسلة سيارة بينما الاتصال مقطوع، وسجل مزامنة على /app/sync يعرض كل عملية مصفوفة وما ردّ به الخادم عليها، وملف manifest باختصارات مباشرة إلى الكاشير وصالة المطعم وشاشة المطبخ. افتحها في Chrome أو Edge واختر «تثبيت»، فتصير تطبيقًا في نافذة بأيقونته الخاصة. وهذا اختيار مقصود: الشاشات نفسها، وباللغتين، تُحدَّث لحظة النشر، دون طابور مراجعة يقف بين الإصلاح ومن ينتظره.
ما الذي يمنحه التثبيت
- تطبيق في نافذة بأيقونة خاصة على Windows وmacOS وأندرويد وChromeOS
- تشغيل دون أي اتصال، لأن الهيكل مخزّن مسبقًا والكتالوج في IndexedDB
- صندوق صادر: ما تفعله دون اتصال يُصفّ ويُعاد إرساله بالترتيب بمفتاح عدم تكرار، وتراه في سجل المزامنة حتى يصل
- الكاميرا، لتصوير مستند أو تسليم أو حالة العمل قبله وبعده
- الموقع، لختم الحضور وزيارة الموقع حيث حدثا فعلًا
- كل إصلاح على كل جهاز لحظة نشره — دون مراجعة متجر، ودون نسخة عالقة على هاتف قديم
وما الذي لا يمنحه
- لا إدراج في App Store أو Google Play. لا يوجد ما تبحث عنه، وعلى iPhone يعني التثبيت «إضافة إلى الشاشة الرئيسية» من Safari.
- لا إشعارات تبني عليها وردية. إشعارات الويب على iOS لا تعمل إلا بعد إضافة التطبيق إلى الشاشة الرئيسية، ونحن لا نرسلها بعد على أي منصة.
- لا طباعة حرارية في كل مكان. المتصفح يطبع عبر نافذة النظام؛ أما طابعة المنضدة على USB أو البلوتوث ودرج النقود وقفل الكشك فهي بالضبط سبب كون POS تطبيقًا أصليًا.
وثلاث لوحات لا تحتاج تطبيقًا أصلًا
لوحة إدارة المنصة
مشغّلو المنصة يعملون على مكتب وأمامهم صفوف كثيرة على الشاشة. ونسخة بحجم الهاتف من قائمة المستأجرين لا تفيد أحدًا.
بوابة الشركاء
الصفقات والعمولات والشهادات تُقرأ وتُحفظ ويُتناقش فيها على حاسوب محمول، لا في الحافلة.
بوابة المطورين
المفاتيح وتسليمات الويب هوك ومرجع OpenAPI مكانها بجوار المحرّر والطرفية.
لماذا ثلاثة لا ستة
كانت الخطة ستة تطبيقات: للموظفين وللعملاء وللموردين وللميدان وللكاشير ولإدارة المنصة. أربعة منها لم تُكتب قط، وبناؤها كان يعني أربعة قطارات إصدار إضافية لشاشات يصل إليها الشخص نفسه أصلًا. المورّد واجهة داخل Portal، لأن الهوية تختلف والجهاز لا يختلف. والفنّي دور داخل Workspace، لأن قائمة المهام هي السجلات نفسها بصلاحيات مختلفة. والمشغّل يكفيه متصفح. والذي ينجو من هذا الاختصار هو الكاشير، والكاشير عتاد مختلف فعلًا.