Warraq — ورّاق
الدور
مطوّر فردي — الواجهة والـ API وقاعدة البيانات
المدة
شهر واحد
الحالة
سُلّم للعميل ويعمل في الإنتاج
التقنيات
Nuxt 3 · TypeScript · Pinia · Express · MongoDB · JWT
المشكلة
موزّع الكتب بالجملة بيتعامل مع عشرات المكتبات ومندوبين في الميدان، والتشغيل كله ماشي على ورق:
مين أخد كام كتاب وامتى؟ فواتير ضايعة وإيصالات ورقية وخلافات متكررة مع المكتبات.
مين دفع ومين لأ؟ ديون بتتراكم من غير متابعة موحّدة للتحصيل.
كام رصيد كل مكتبة؟ مفيش لوحة واحدة توري المديونيات والمستحقات.
كام باع كل مندوب؟ مفيش أي مؤشر واضح على أداء التوزيع.
كام الإيراد وكام المكسب؟ الأرقام متفرقة بين الفواتير والتحصيلات، ومحدش يقدر يجاوب من غير حساب يدوي.
النظام
ورّاق بيربط الفواتير والتحصيلات والأرصدة والديون في مكان واحد، بصلاحيات محددة لكل دور.
| الدور | الصلاحيات |
|---|---|
| مدير | إدارة كاملة: مكتبات، مندوبين، كتب، فواتير، تحصيلات، مستخدمين |
| مطوّر | وصول كامل + إعدادات النظام |
| مندوب | فواتير المكتبات المخصصة له، وتحصيلاتها، وعرض الكتب |
| مستخدم | عرض البيانات والتقارير |
الكتب
كتالوج بالعنوان والمؤلف والسعر والكمية في المخزون
المكتبات
بيانات كل مكتبة مع رصيد حسابها وديونها المستحقة وتاريخ آخر دفعة
المندوبون
منطقة التوزيع، رصيد التحصيل، المكتبات المخصصة
فواتير البيع
نقدي أو آجل، بأرقام تسلسلية، بحالة (مدفوعة بالكامل / متبقّي)
التحصيلات
من مكتبة (يُخصم من رصيدها) أو من مندوب (يُخصم من رصيده)
لوحة المعلومات
مؤشرات تتغيّر حسب دور المستخدم
قرار العرض — إزاي تعرض نظام عميل مقفول؟
المشكلة: النظام ملك العميل، وبياناته حقيقية، والكود مش قابل للنشر. والحل المعتاد في الحالة دي هو لقطات شاشة ساكنة — الزائر بيشوف صورة ومش بيفهم إزاي النظام بيشتغل فعلاً.
القرار: بنيت وضع تجريبي كامل جوّه النظام نفسه — بيانات تجريبية واقعية بأسماء عربية، وبطاقات دخول سريع لكل دور، وجولة تفاعلية بتشرح كل قسم للمستخدم الجديد.
النتيجة: الزائر بيدخل النظام بنفسه ويجرّبه من منظور المدير أو المندوب، من غير ما يتعرّض أي بيان حقيقي يخص العميل.
النتيجة
نظام فول ستاك كامل — واجهة وAPI وقاعدة بيانات وصلاحيات وفوترة وتحصيلات — بناه مطوّر واحد في شهر، وسُلّم ويعمل في الإنتاج.
واجهة عربية RTL بالكامل مع دعم ثنائي اللغة، ووضع داكن، وتصميم متجاوب على الجوال والتابلت وسطح المكتب.