دراسة حالة لمشروع متكامل

OneGate

البوّابة الواحدة للتوريد والشحن B2B — يقدّم العملاء في الخارج طلباتهم، ويسعّر الوكلاء المورّدين والشحن، وتنتقل الطلبات من العيّنة إلى التوريد بالجملة.

الدور
مطوّر ويب متكامل — منفردًا
المدة
6 أسابيع — مستمر
السنة
2026
التقنيات
React · TypeScript · Express.js · MongoDB · Redis
مباشر
onegate.llc
لوحة تحكّم مدير OneGate — إحصاءات المدفوعات ونظرة عامة على قسمَي التوريد والشحن وتحليلات الطلبات

01 / المشكلة

وكالة استيراد تُدار عبر المحادثات وجداول البيانات.

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

المستخدمون المستهدفون

مستوردون B2B وبائعو تجارة إلكترونية — ناطقون بالعربية والإنجليزية — إضافةً إلى وكلاء التوريد ووكلاء الشحن والمدراء والمشرفين داخل الوكالة.

02 / الحل

منصّة واحدة، بوّابة واحدة.

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

لماذا هذه التقنيات

  • MongoDB — مستند طلب واحد متداخل ومتغيّر الشكل لكل مسار
  • Redis — طابور البريد وحدود المعدّل المشتركة ونشر/اشتراك SSE
  • أصل واحد عبر Caddy — كعكات جلسة من الطرف الأول وبدون CORS
  • عنقود Node — خدمة متعدّدة العمليات على خادم VPS واحد

03 / الميزات

ما الذي تقوم به المنصّة.

المصادقة وستة أدوار

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

طلبات متعدّدة المسارات

خمسة مسارات طلب عبر آلات حالة محروسة للمرحلة والحالة

مدفوعات يدوية

إثباتات مرفوعة يتحقّق منها المشرفون، مع فواتير PDF من جهة العميل

إشعارات في الزمن الحقيقي

نشر/اشتراك Redis يتفرّع إلى تدفّقات SSE على كل عامل

ست لوحات حسب الدور

أكثر من 50 صفحة موجّهة مع تحليلات وعربية/إنجليزية ودعم RTL كامل

رفع مباشر إلى R2

روابط PUT موقّعة مسبقًا مع قوائم صارمة لأنواع المحتوى

04 / التحديات التقنية

الأجزاء الصعبة — وكيف تجاوزتها.

خمسة مسارات طلب، آلة حالة واحدة

الطلب نفسه قد يكون رحلة كاملة توريد ← عيّنة ← جملة، أو شراء جملة مباشرًا، أو مهمة شحن فقط — ويعدّله العملاء ونوعان من الوكلاء والمشرفون. انتقال واحد غير مشروع يُفسد تدفّقات مال حقيقية.

كيف حللتها

مستند واحد يحمل flowType و activePhase وقوائم حالة لكل مرحلة؛ وكل انتقال دالة خدمة مخصّصة تعيد التحقّق من الملكية والمسار والمرحلة والحالة قبل الكتابة. العروض المؤكَّدة تُجسّد أسعار الوحدة داخل المستند الفرعي للجملة، فيسير التسعير الثابت على آلية الدفع القائمة، وتُخصَّص أرقام الطلبات المقروءة دون تسابق عبر عدّاد ذرّي.

الزمن الحقيقي عبر عنقود عمليات

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

كيف حللتها

تُحفَظ الإشعارات في MongoDB ثم تُنشَر عبر نشر/اشتراك Redis؛ ويحتفظ كل عامل باتصال اشتراك مخصّص وسجلّ خاص بالتدفّقات المفتوحة لديه، فلا يمرّر إلا الأحداث المطابقة. تعليقات النبض تمنع الوسطاء من قطع التدفّقات الخاملة، والإشعار يُرسَل دون انتظار حتى لا يعطّل عطلٌ في Redis أي إجراء تجاري.

البقاء صحيحًا مع التوسّع الأفقي

تشعيب العمّال يكسر بصمت كل ما يعتمد على حالة داخل العملية — عدّادات حدود المعدّل، وكشف عنوان العميل خلف الوسيط، والتوزيع العادل للعمل الوارد.

كيف حللتها

حدود المعدّل تخزّن عدّاداتها في Redis ليصمد السقف عبر كل العمّال — مع السماح بالمرور إن سقط Redis؛ و trust proxy مثبّت على قفزة واحدة بالضبط. الطلبات الواردة تُسنَد تلقائيًا إلى أقل الوكلاء حِملًا عبر تجميع يخلط المتساوين، وهو ما يعيد توزيع العمل أيضًا عند مغادرة وكيل.

05 / البنية

كيف يتكامل النظام.

REACT 19 SPA

ست لوحات أدوار · PWA · عربي/إنجليزي RTL

EXPRESS 5 API

better-auth · Zod · عنقود Node

MONGODB

الطلبات · المدفوعات · الإشعارات

CLOUDFLARE R2

رفع مباشر موقّع مسبقًا

REDIS

طابور · حدود المعدّل · نشر/اشتراك

SMTP + BULLMQ

عامل بريد مع إعادة المحاولة

خدمات خارجية

06 / لقطات الشاشة

المنتج، عن قرب.

لوحة تحكّم مدير OneGate — إحصاءات المدفوعات ونظرة عامة على قسمَي التوريد والشحن وتحليلات الطلبات
سطح المكتب
الهاتف

07 / النتائج

ما الذي غيّره على أرض الواقع.

سير عمل الوساطة كاملًا لدى الوكالة — التسعير وجولات العيّنات وتسعير الجملة والتحقّق من المدفوعات — صار يمرّ عبر تسجيل دخول واحد بدل جداول البيانات وسلاسل المحادثات. كل دور من الأدوار الستة يرى طابوره بالضبط، وكل تغيّر في الحالة يُشعر المعنيّين به فورًا، والمنصّة تُنشَر باستمرار عبر خطّ CI يشغّل مجموعة اختبارات شاملة قبل كل إصدار.

08 / حزمة التقنيات

بُني بهذه الأدوات.

أُطر العمل

  • React 19
  • Express 5
  • Node.js
  • Vite

المكتبات

  • better-auth
  • React Query
  • BullMQ
  • Zod
  • Tailwind CSS
  • Recharts

البنية التحتية

  • MongoDB
  • Redis
  • Docker
  • Caddy
  • Cloudflare R2
  • GitHub Actions CI/CD

09 / مساهمتي

ما الذي بنيته، تحديدًا.