Thiqaty
منصة ضمان وإيداع: معاملات محمية بين المشترين والبائعين، مع عمولات قابلة للتهيئة والدفع ببطاقتي CIB وEdahabia.
- دَوري
- مهندس برمجيات Full Stack
- الفترة
- أبريل 2026 — يونيو 2026
- الحالة
- مُنجز

«ثقتي» منصّة وساطة مالية (Escrow) بين المشترين والبائعين: بدل أن يدفع المشتري للبائع مباشرةً، تحتفظ المنصّة بالمبلغ طوال مدّة المعاملة، وتتقاضى عمولات قابلة للضبط من لوحة الإدارة — عمولة وساطة وعمولة إيداع منفصلتان. تمرّ المدفوعات عبر Chargily، مع دعم بطاقتي CIB وEdahabia.
بُني الخادم بـ Fastify وTypeScript فوق PostgreSQL مع Drizzle لإدارة قاعدة البيانات، وتُطبَّق ترحيلات المخطّط تلقائيًا عند إقلاع الحاوية، فلا يسبق الكودُ المنشور قاعدةَ البيانات أبدًا. أمّا المصادقة فتعتمد على الكوكيز وحدها على نمط Sanctum لتطبيقات الصفحة الواحدة، وتوجد لوحة إدارة منفصلة مبنية بـ Vite تعكس معمارية تطبيق العميل نفسها.
المشكلة المطلوب حلّها
التجارة الإلكترونية بين الغرباء تقوم على ثقة كثيرًا ما تكون غائبة: المشتري يدفع ويأمل أن تصله السلعة، والبائع يشحن ويأمل أن يصله المال. كان على المنصّة أن تقف في المنتصف — أن تحتجز أموال المشتري حتى تكتمل الصفقة، وأن تتقاضى مقابل هذا الضمان عمولتين منفصلتين قابلتين للضبط من الإدارة، وأن تقبل الدفع ببطاقتي CIB وEdahabia. وكان عليها كذلك جلب الطرف الثاني إلى المنصّة بأقل احتكاك ممكن، إذ لا تقوم المعاملة إلا بتسجيل الطرفين معًا.

كيف بُني
يحتجز نظام الوساطة الأموال ويطبّق نموذج عمولة مزدوجًا — عمولة وساطة وعمولة إيداع — كلتاهما قابلة للضبط من لوحة الإدارة لا مثبّتة في الكود، فيمكن تعديل التسعير دون إعادة نشر. يعمل تكامل Chargily بمفاتيح إنتاج فعلية ويعالج مدفوعات CIB وEdahabia. ولإدخال الطرف الثاني في الصفقة، تحمل دعوات البريد الإلكتروني رابط قبول يربط المدعوّ بالمعاملة تلقائيًا فور تسجيله، دون أي خطوة مطابقة يدوية.
البنية التقنية: Fastify وTypeScript فوق PostgreSQL مع Drizzle، وتُطبَّق الترحيلات تلقائيًا عند إقلاع الحاوية فيُستبعد سيناريو «كود منشور يسبق المخطّط». المصادقة بالكوكيز وحدها على نمط Sanctum، فلا تصل أي رموز جلسة إلى JavaScript في المتصفّح. وتجري أعمال الإدارة في لوحة Vite منفصلة تعكس معمارية تطبيق العميل.
ماذا يفعل
أموال محتجزة بضمان
تحتفظ المنصّة بمال المشتري طوال مدّة المعاملة، فلا يضطرّ أي طرف إلى الثقة العمياء بالآخر.
عمولتان قابلتان للضبط
رسمان منفصلان — عمولة الوساطة وعمولة الإيداع — يعدّلهما المسؤولون دون أي تغيير في الكود.
الدفع ببطاقتي CIB وEdahabia
تكامل Chargily بمفاتيح إنتاج فعلية يقبل الدفع ببطاقتي CIB وEdahabia.
ربط تلقائي للدعوات
تحمل دعوات البريد الإلكتروني رابط قبول، وبمجرد تسجيل المدعوّ عبره يُربط بالمعاملة تلقائيًا.
مصادقة بالكوكيز فقط
جلسات على نمط Sanctum تعتمد الكوكيز وحدها، دون تخزين أي رموز في JavaScript المتصفّح.
لوحة إدارة موازية
تطبيق Vite منفصل للمشغّلين يعيد استخدام معمارية تطبيق العميل واصطلاحاته.
بُني باستخدام
الواجهة الأمامية
تدفّقات الأموال وحسابات العمولات لا تحتمل التباسًا في الأنواع؛ يفرض TypeScript العقود من استعلامات Drizzle حتى معالجات المسارات.
تطبيق العميل ولوحة إدارة Vite كلاهما مبنيّ بـ React، فتخدم مجموعةُ اصطلاحات واحدة الواجهتين معًا.
يشغّل Next.js الواجهة الموجّهة للمشترين والبائعين، ويلائم توجيهُه وأدواتُه نموذجَ الجلسات بالكوكيز على نمط Sanctum.
الخلفية
يمنح Fastify واجهة API الوساطة توجيهًا قائمًا على المخطّطات وتحقّقًا صريحًا من الطلبات مع حمل منخفض — إعدادات مناسبة لواجهة تحرّك أموالًا.
البيانات
أرصدة الوساطة والعمولات تتطلّب تكاملًا علائقيًا ومعاملات موثوقة، وهو ما يقدّمه PostgreSQL مع ترحيلات Drizzle المطبَّقة تلقائيًا عند الإقلاع.
البنية التحتية
النشر بالحاويات هو ما يجعل تطبيق الترحيلات عند الإقلاع ممكنًا: كل حاوية تحدّث المخطّط قبل أن تخدم أي طلب.