مزرعة ومربط المشعلية
نظام تخطيط موارد مركزي لمرابط الخيل العربية ومزارعها. يدير سجلّات الخيل والعملاء وعقود الإنتاج والفواتير برموز QR وتوقيعاتٍ رقمية، إلى جانب التقارير المالية، بالعربية والإنجليزية معًا.
مركزٌ واحد يدير المربط بأكمله: تتبَّعِ الخيل والعملاء وعقود الإنتاج، وأنشئ فواتيرَ وعقودًا موقّعة برموز QR عند الطلب، وراقبِ الإيرادات والمصروفات والهوامش على لوحةٍ حيّة، بصلاحياتٍ تتدرّج مع الدور من المدير الأعلى حتى العميل.
ما الذي يحلّه
- عمليات المزرعة مبعثرة؛ لا يملك المديرون نظامًا مركزيًا لسجلّات العملاء وعقود الإنتاج والفواتير والماليات.
- وتُكتب العقود والفواتير يدويًا، دون قوالبَ أو توليدٍ لملفات PDF.
- وتقبع الإيرادات والمصروفات والهوامش في جداولَ بلا لوحةٍ تُظهرها.
- وتواصلُ العملاء من فواتيرَ وعقودٍ وتذكيرات مبعثرٌ في البريد دون سجلّ تدقيق.
- وتُحفَظ الأوراق العربية والإنجليزية متطابقةً يدويًا، في ملفّاتٍ منفصلة.
الأثر
من المدير الأعلى إلى العميل، لكل مسار
عقود وفواتير موقّعة
الإيرادات والمصروفات والهامش

البنية
تدفّق البيانات
- المسؤول يرفع سجل خيل
- POST /api/horses (تحقق المصادقة والدور)
- إدراج Firestore → horses/{id}
- دالة: ضغط الصور + مصغّرات
- اللوحة: مكوّن خادم → Firestore → Recharts
- طلب فاتورة → /api/invoices/generate (محدّد المعدّل)
- @react-pdf/renderer + pdf-lib (QR + توقيع) → Storage
- رابط موقّع → بريد عبر دالة → العميل يمسح QR للدفع
القرارات الهندسية
Firestore لبياناتٍ مستندية
سجلّات الخيل والعملاء والعقود مستنداتُ JSON مع مستمعين فوريين تُغذّي اللوحة الحيّة؛ بلا عمليات ترحيلٍ للمخطّط، ومرنةٌ مع تطوّر احتياجات المزرعة.
توليد PDF على الخادم عند الطلب
يحوّل @react-pdf/renderer مكوّنات React إلى PDF، ويضيف pdf-lib رموز QR والتوقيعات، فتبقى القوالب في الكود لا في أدواتٍ خارجية، ويُخزَّن الناتج في Storage.
بوّابةٌ وسيطة حسب الدور
يفحص proxy.ts كوكي الجلسة، ويتحقّق من الدور في users/{uid}، ثم يسمح بالمسار أو يمنعه، دون تكرارٍ عند كل نقطة نهاية.
تحديد المعدّل حسب الفئة
يُحَدّ توليد PDF المكلِف بعشر عمليات في الدقيقة، بينما تُتاح القراءات بستّين، فلا يُساء استخدامه عند ازدحام طلبات الفواتير.
لغتان مع نقحرة الأسماء
تُنشأ العقود بالعربية والإنجليزية، وتحوّل خطوةُ نقحرةٍ أسماءَ الخيل إلى أحرفٍ لاتينية للأرشفة والبريد، ويحفظ Firestore النسختين.
معرض الصور



