انتقل إلى المحتوى
keforo-app

دراسة حالة

Keforo App

مكتب الطلبات لفرق التجارة الإلكترونية في المنطقة: طلبات ومخزون وعملاء وورقة Google Sheets تبقى متزامنة.

الدور
المؤسس، مهندس برمجيات متكامل
السنة
2024
الأدوات
Next.js · Hono · Bun · MongoDB · Redis

التحدي

المتاجر هنا تعمل على ورقة Google Sheets قبل أي شيء آخر. كان على مكتب الطلبات أن يقرأ تلك الورقة، وأن يحرّك المخزون والحالة معًا، وألّا يسمح لأحد بأن يفعل أكثر مما يحق له.

بالأرقام

  1. 386مسارًا، كل واحد مُعلن كبيانات: الطريقة والمسار والصلاحيات والمخطط.
  2. 68نطاق صلاحية في 18 وحدة، تُضبط لكل شخص.
  3. 585اختبارًا للخلفية، على MongoDB وRedis.
  4. 7انتقالات للطلب، نقطة وصول لكل واحد.

ما الذي يشغّله

لوحة واحدة لكل الطلبات.

لوحة واحدة لكل الطلبات، بدورة حياة صارمة، وبنود يمكن إلغاؤها أو تعليمها «نفد» واحدًا واحدًا، ومرتجعات جزئية تعيد إلى المخزون، وسجل نشاط من 18 نوعًا.

المخزون في جيبين: المتوفر والمحجوز. كل تغيير يكتب حركة مخزون تشير إلى الطلب أو الاستيراد أو المرتجع الذي سبّبها.

بالعربية والفرنسية والإنجليزية، مع تخطيط حقيقي من اليمين إلى اليسار.

دورة الحياة

الطلب آلة حالات

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

draftbeing built, no stock heldpendingplaced · units committedconfirmedstatus onlypackedstatus onlyshippedheld until delivereddeliveredsold · on hand −refundedon hand +cancelledcommitted releasedPOST /placePOST /confirmPOST /packPOST /shipPOST /deliverPOST /refundPOST /cancel

مباشر

جرّب الانتقالات

اختر رمزًا ثم اضغط نقطة وصول. المسار يرفض الصلاحية الناقصة قبل أن يعمل المعالج، والخدمة ترفض انتقالًا ليس في الجدول، والانتقال المسموح يغيّر الحالة ويحرّك المخزون ويكتب السجل.

مباشر

Google Sheets

ورقة واحدة، تشغيل واحد

  1. الخطوة 1 من 6

    الطابور

    مهمة واحدة لكل ورقة، من المجدول أو من زر «زامن الآن». العامل يشغّل مهمة واحدة في كل مرة، عن قصد.

  2. الخطوة 2 من 6

    النسخة

    نداء Drive واحد يقارن نسخة الورقة بآخر تشغيل. الورقة التي لم تتغير تُتخطى عند هذه النقطة.

  3. الخطوة 3 من 6

    الربط

    يجب أن تبقى كل ترويسة مربوطة في مكانها. إن اختفت واحدة تُوقَف الورقة ويصل مالكَها بريد واحد؛ لا شيء يُخمَّن وقت التشغيل.

  4. الخطوة 4 من 6

    القراءة

    تُقرأ الصفوف 5,000 في الصفحة، تحت حدّ ستين نداء في الدقيقة لكل منظمة.

  5. الخطوة 5 من 6

    الاستيراد

    كل صف يمر عبر المعالج نفسه الذي يستعمله رفع CSV. الطلب المُعبّأ أو الأبعد لا تمسّه الورقة أبدًا.

  6. الخطوة 6 من 6

    التقرير

    يكتب التشغيل أعداده وعيّنة من الأخطاء، وتسمع غرفة المنظمة ذلك عبر WebSocket. كل تشغيل ينتهي؛ لا يُترك واحد «قيد التشغيل».

إعادة

تشغيل مزامنة، معادًا

يعامل الموصّل الورقة كمصدر والتطبيق كمرآة: كل تشغيل يقرأ الورقة، ولا يُكتب إليها شيء.

إعادة

الاتصال

ثلاث طرق للاتصال

تراجع Google كل تطبيق يطلب الوصول إلى Drive، والمراجعة تأخذ وقتًا. لذا للموصّل ثلاثة أبواب، واثنان منها لا يحتاجان أي مراجعة.

Your sheetGoogle SheetsGoogle sign-infile picker · drive.file scopePublic CSV linkno Google API at allService accountshare the sheet with an emailLinked sheetmapping · conflict policy · cadenceSync runone job, one worker at a timetoken, encryptedcontent hashkey, encryptedcron · Sync now

المساعد

المساعد لا يفعل إلا ما يحق لك

المحادثة في الشريط الجانبي منسّق لا يملك أي معرفة بالمجال وله أداة واحدة: delegate. يسلّم مهمة فرعية إلى واحد من خمسة متخصصين، بالتوازي حين يمتد السؤال على أكثر من مجال.

السطر الأول في كل أداة فحص للصلاحية. الصلاحيات تأتي من رمز المتصل؛ وقول النموذج «المستخدم مشرف» لا يغيّر شيئًا.

الكتابة تنتظر شخصًا. إلغاء طلب أو تغيير سعر ينشئ إجراءً معلّقًا يؤكده الشخص في المحادثة، وتُفحص الصلاحية من جديد عند التأكيد.

الصلاحيات

كل أداة تتحقق من المتصل

إحدى عشرة أداة، كل واحدة تعلن الصلاحية التي تحتاجها. المتخصص الذي تتطلب أدواته صلاحيات لا يملكها المتصل يُحذف من تعليمات المنسّق، فلا يستطيع النموذج حتى المحاولة.

Youchat in the sidebarPOST /ai/chatSSE streamOrchestratorsees one tooldelegateone specialist per domainSpecialistorder · product · customer · analytics · helperTool11, each declares a scoperequireScopeyour JWT, never the model’s wordMongoDBscoped to your organisationmessageturnsub-taskin parallelcallfirst linethen the servicetokens

بُني بـ

  • Bun
  • Hono
  • MongoDB
  • Redis
  • BullMQ
  • WebSocket
  • Next.js
  • TanStack
  • OpenRouter
  • Google Sheets
  • Google Drive

أين وصل

يعمل على app.keforo.com

الطلبات والمخزون وصلاحيات الفريق والمساعد والفوترة بالتحويل البنكي تعمل اليوم، وGoogle Sheets أول موصّل. والقادم: موصّلات المتاجر، والكتابة إلى الورقة، وكشف التغيير لكل صف، والدفع بالبطاقة.

اقرأ كيف يعمل
نموذج بيانات، كل واحد يحمل منظمته.
50
عمّال في الخلفية: مزامنة الأوراق، ومجدول الأوراق، والاستيراد، والفوترة.
4
الدراسة التاليةJad Elevateur