دراسة حالة
Keforo App
مكتب الطلبات لفرق التجارة الإلكترونية في المنطقة: طلبات ومخزون وعملاء وورقة Google Sheets تبقى متزامنة.
- الدور
- المؤسس، مهندس برمجيات متكامل
- السنة
- 2024
- الأدوات
- Next.js · Hono · Bun · MongoDB · Redis
التحدي
المتاجر هنا تعمل على ورقة Google Sheets قبل أي شيء آخر. كان على مكتب الطلبات أن يقرأ تلك الورقة، وأن يحرّك المخزون والحالة معًا، وألّا يسمح لأحد بأن يفعل أكثر مما يحق له.
بالأرقام
- 386مسارًا، كل واحد مُعلن كبيانات: الطريقة والمسار والصلاحيات والمخطط.
- 68نطاق صلاحية في 18 وحدة، تُضبط لكل شخص.
- 585اختبارًا للخلفية، على MongoDB وRedis.
- 7انتقالات للطلب، نقطة وصول لكل واحد.
ما الذي يشغّله
لوحة واحدة لكل الطلبات.
لوحة واحدة لكل الطلبات، بدورة حياة صارمة، وبنود يمكن إلغاؤها أو تعليمها «نفد» واحدًا واحدًا، ومرتجعات جزئية تعيد إلى المخزون، وسجل نشاط من 18 نوعًا.
المخزون في جيبين: المتوفر والمحجوز. كل تغيير يكتب حركة مخزون تشير إلى الطلب أو الاستيراد أو المرتجع الذي سبّبها.
بالعربية والفرنسية والإنجليزية، مع تخطيط حقيقي من اليمين إلى اليسار.
دورة الحياة
الطلب آلة حالات
كل تغيير حالة يمر عبر خدمة واحدة. تتحقق من الانتقال في جدول، وتطبّق أثره على المخزون، وتكتب الحالة الجديدة وتضيف إلى سجل النشاط، وكل ذلك داخل معاملة MongoDB واحدة. إن فشل جزء فكأن شيئًا لم يحدث.
مباشر
جرّب الانتقالات
اختر رمزًا ثم اضغط نقطة وصول. المسار يرفض الصلاحية الناقصة قبل أن يعمل المعالج، والخدمة ترفض انتقالًا ليس في الجدول، والانتقال المسموح يغيّر الحالة ويحرّك المخزون ويكتب السجل.
مباشر
Google Sheets
ورقة واحدة، تشغيل واحد
الخطوة 1 من 6
الطابور
مهمة واحدة لكل ورقة، من المجدول أو من زر «زامن الآن». العامل يشغّل مهمة واحدة في كل مرة، عن قصد.
الخطوة 2 من 6
النسخة
نداء Drive واحد يقارن نسخة الورقة بآخر تشغيل. الورقة التي لم تتغير تُتخطى عند هذه النقطة.
الخطوة 3 من 6
الربط
يجب أن تبقى كل ترويسة مربوطة في مكانها. إن اختفت واحدة تُوقَف الورقة ويصل مالكَها بريد واحد؛ لا شيء يُخمَّن وقت التشغيل.
الخطوة 4 من 6
القراءة
تُقرأ الصفوف 5,000 في الصفحة، تحت حدّ ستين نداء في الدقيقة لكل منظمة.
الخطوة 5 من 6
الاستيراد
كل صف يمر عبر المعالج نفسه الذي يستعمله رفع CSV. الطلب المُعبّأ أو الأبعد لا تمسّه الورقة أبدًا.
الخطوة 6 من 6
التقرير
يكتب التشغيل أعداده وعيّنة من الأخطاء، وتسمع غرفة المنظمة ذلك عبر WebSocket. كل تشغيل ينتهي؛ لا يُترك واحد «قيد التشغيل».
إعادة
تشغيل مزامنة، معادًا
يعامل الموصّل الورقة كمصدر والتطبيق كمرآة: كل تشغيل يقرأ الورقة، ولا يُكتب إليها شيء.
إعادة
الاتصال
ثلاث طرق للاتصال
تراجع Google كل تطبيق يطلب الوصول إلى Drive، والمراجعة تأخذ وقتًا. لذا للموصّل ثلاثة أبواب، واثنان منها لا يحتاجان أي مراجعة.
المساعد
المساعد لا يفعل إلا ما يحق لك
المحادثة في الشريط الجانبي منسّق لا يملك أي معرفة بالمجال وله أداة واحدة: delegate. يسلّم مهمة فرعية إلى واحد من خمسة متخصصين، بالتوازي حين يمتد السؤال على أكثر من مجال.
السطر الأول في كل أداة فحص للصلاحية. الصلاحيات تأتي من رمز المتصل؛ وقول النموذج «المستخدم مشرف» لا يغيّر شيئًا.
الكتابة تنتظر شخصًا. إلغاء طلب أو تغيير سعر ينشئ إجراءً معلّقًا يؤكده الشخص في المحادثة، وتُفحص الصلاحية من جديد عند التأكيد.
الصلاحيات
كل أداة تتحقق من المتصل
إحدى عشرة أداة، كل واحدة تعلن الصلاحية التي تحتاجها. المتخصص الذي تتطلب أدواته صلاحيات لا يملكها المتصل يُحذف من تعليمات المنسّق، فلا يستطيع النموذج حتى المحاولة.
بُني بـ
- Bun
- Hono
- MongoDB
- Redis
- BullMQ
- WebSocket
- Next.js
- TanStack
- OpenRouter
- Google Sheets
- Google Drive
أين وصل
يعمل على app.keforo.com
الطلبات والمخزون وصلاحيات الفريق والمساعد والفوترة بالتحويل البنكي تعمل اليوم، وGoogle Sheets أول موصّل. والقادم: موصّلات المتاجر، والكتابة إلى الورقة، وكشف التغيير لكل صف، والدفع بالبطاقة.
اقرأ كيف يعمل- نموذج بيانات، كل واحد يحمل منظمته.
- 50
- عمّال في الخلفية: مزامنة الأوراق، ومجدول الأوراق، والاستيراد، والفوترة.
- 4