انتقل إلى المحتوى
jad-Elevator-web

دراسة حالة · مشروع لعميل

Jad Elevateur

صُمّم لشركة تركيب وصيانة مصاعد في المغرب: لوحة إدارة واحدة للأوراش والمخزون والفوترة والصندوق والحضور والأجور.

الدور
المهندس الوحيد، من دفتر التحملات إلى الإنتاج
السنة
2026

التحدي

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

بالأرقام

  1. 9 daysمن 17 إلى 25 يوليوز 2026: كل الوحدات في مكانها، 534 من أصل 605 commits في المشروع.
  2. 186مسارًا في الـ API، يحدد كل منها الأدوار والصلاحية المسموح لها باستدعائه.
  3. 13قاعدة عمل، مرقّمة من P1 إلى P13 ومذكورة في الكود حيث تُطبَّق.
  4. 3لغات: الفرنسية أولًا، ثم الإنجليزية والعربية من اليمين إلى اليسار.

ما الذي يفعله

حلقة واحدة، من العقد إلى الصندوق

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

تمر المشتريات عبر طلبات للموردين تعيد ملء المخزون عند الاستلام. وفي جانب الفريق: الحضور اليومي، والعطل من رصيد سنوي قدره 18 يومًا، والتنقلات إلى مدن أخرى بتعويض يومي، وكشف أجر شهري لكل عضو.

يُكتب كل تغيير في سجل لا يقبل إلا الإضافة، وتختلف لوحة القيادة حسب الدور: المؤشرات التشغيلية للجميع، والمالية فقط لمن يحق له رؤيتها.

حلقة التشغيل

كيف يتحول الورش إلى سيولة

ورش واحد من التوقيع إلى الصندوق، والشراء الذي يعيد ملء المخزون الذي استُعمل. كل سهم هو تدفق ينفّذه الـ API.

Clientcompany or person · ICEChantiercontract · lines · chargesStockledger · alertsDevis → FactureFAC-2026-0007Paymentcash · cheque · transferCaisseappend-only ledgerFournisseurdemandesignstakes productsquote, then invoicepaid in partslands inlow stock: demandereceived: restock

المال

المال لا يُخزَّن بفاصلة عشرية ولا يُعدَّل أبدًا

كل مبلغ عدد صحيح من السنتيمات، وكل نسبة TVA بنقاط الأساس: 2000 تعني 20%. العدادات، مثل المبلغ المدفوع أو رصيد الصندوق، لا تتغير إلا بزيادات ذرّية، ولا تُسنَد قيمتها مباشرة أبدًا.

سجل الصندوق لا يقبل إلا الإضافة. كل سطر يحمل الرصيد بعده، ويُصحَّح الخطأ كما يفعل المحاسب: بقيد عكسي (contre-passation)، لا بتعديل السطر الأول أو حذفه.

تُجمَّد في الوثيقة عند إصدارها الأسعار والتكاليف والمعرّفات القانونية للمُصدِر (ICE وIF وRC والباتنتا وCNSS وRIB) وبيانات المشتري. إغلاق الورش يجمّد هامشه، والمصادقة على كشف الأجر تجمّد أرقامه، فلا يستطيع تصحيح لاحق للحضور أن يغيّر شهرًا مدفوعًا.

كيف بُني

كل وحدة، نفس الخطوات الست

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

    المواصفات

    دراسة مفصلة قبل أي كود: المخطط والـ endpoints والشاشات ومعايير القبول. عشر دراسات محفوظة في المستودع.

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

    وحدة الـ API

    وحدة لكل مجال على Bun وHono: نماذج Mongoose ومخططات Zod، ومسارات يصرّح كل منها بأدواره وصلاحيته.

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

    لوحة الإدارة

    الجزء المقابل في React: مسارات مضبوطة الأنواع، وhooks للاستعلامات، ونماذج تُتحقَّق بنفس القواعد، والفرنسية أولًا.

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

    الصلاحيات

    تُزامَن قائمة صلاحيات لوحة الإدارة من الـ API عبر سكربت، فلا يظهر زر لعملية سيرفضها الخادم.

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

    اختبارات الـ API

    ثلاثون سكربت Python تختبر الـ API الحقيقي تدفقًا بعد تدفق: الطلبيات والدفعات والإغلاقات والأجور والقيود العكسية.

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

    Claude Code

    يحمل المستودعان تعليمات Claude Code ومهاراته ووكلاءه: نفس منهجية العمل مطبقة على كل وحدة.

رؤية البيانات المالية

الهوامش لا تغادر الخادم أبدًا

من يحق له رؤية التكاليف والهوامش ومجموع الأجور يُحسم على مستويين: مفتاح لكل دور على مستوى المؤسسة، مفعّل للمديرين ومعطّل للموارد البشرية افتراضيًا، ثم حظر على عضو بعينه. والمسؤولون يرونها دائمًا.

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

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

بُني بـ

  • Bun
  • Hono
  • MongoDB
  • Mongoose
  • Redis
  • WebSocket
  • Zod
  • React 19
  • Vite
  • TanStack Router
  • TanStack Query
  • TanStack Table
  • Zustand
  • Tailwind CSS
  • shadcn/ui
  • PM2
  • Docker
  • Claude Code

أين وصل

كل وحدات دفتر التحملات، مبنية

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

لنتحدث عن مشروعك
وحدة في دفتر تحملات العميل، بُنيت كل منها وحدةً في الـ API وجزءًا في لوحة الإدارة.
11
أدوار، من المتدرب إلى المسؤول؛ ثلاثة منها تسجّل الدخول إلى لوحة الإدارة.
5
الدراسة التاليةAissam Portfolio