Dentex — منصة B2B لربط أطباء الأسنان بالمعامل: Workflow من 22 مرحلة وإشعارات Web Push
dentex-eg.com
1 / 3
نبذة عن المشروع
منصة B2B ثنائية اللغة (عربي أساسي + إنجليزي) بتوصّل أطباء الأسنان بمعامل الأسنان في مصر. الدكتور بيفتح «حالة» (Crown / Bridge / Implant…) ويرفع صورها أو ملفات الـ 3D scan ويختار المعمل، والمعمل بيقبل ويحدد السعر والميعاد ويتابع التصنيع لحد الـ Try-in والتسليم — وفي النص مندوب توصيل، ومدفوعات بإثبات تراجعها الإدارة، وعمولة للمنصة. المنصة مبنية على Framework MVC خفيف اتكتب مخصوص من غير أي إطار جاهز.
4أدوار مستخدمين
22مرحلة في دورة الحالة
105مسار (Route)
26Controller
19جدول بيانات
478مفتاح ترجمة لكل لغة
7طرق دفع
12,018سطر كود
التقنيات المستخدمة
Backend
PHP 8.3custom MVC micro-framework (RouterAuthCSRFValidatorView)MySQL via PDO (real prepared statements)
Frontend
PHP viewscustom CSSVanilla JSService Worker
Push
Web Push from scratch — RFC 8291 / 8188 (ECDHHKDFAES-128-GCMVAPID ES256) with OpenSSLno libraries
Hosting & DevOps
Hostinger (LiteSpeed)idempotent migrate.phpenvironment diagnostics
البوابات والأدوار
- أربع أدوار: أدمن، طبيب، معمل، مندوب — والتسجيل بموافقة الإدارة.
- بوابة الطبيب: تصفح المعامل، إنشاء حالة برفع الملفات، التعليقات، تأكيد الاستلام، الموافقة على الـ Try-in أو طلب تعديل، طلب مندوب، الدفع، وتقييم المعمل.
- بوابة المعمل: قبول أو رفض الحالة، تحديد السعر والميعاد، طلب توضيح، إعلان الـ Try-in والإنجاز، إدارة خدمات المعمل وأسعارها، وتأكيد المدفوعات.
- لوحة الإدارة: الأطباء والمعامل والحالات والمدفوعات والتوصيل والعمولة والتقارير بتصدير CSV والإعدادات والهوية البصرية.
دورة الحالة
- Workflow من 22 مرحلة من «New Case» لحد «Closed»، بيشمل التوصيل في الاتجاهين والتوضيح والـ Try-in.
- Timeline لكل حالة بيسجل كل انتقال ومين عمله، مع تعليقات وملفات ولوحة مالية.
المال
- 7 طرق دفع (كاش مع المندوب، Vodafone Cash، InstaPay، تحويل بنكي…) — الإلكتروني بإثبات والإدارة توافق.
- عمولة ثابتة أو نسبة، بفترة مجانية وقيم مخصصة لكل طبيب أو معمل، وبتتحسب تاني لما المعمل يحدد السعر.
- حد ائتمان للطبيب: لو المديونية وصلت للحد، النظام بيمنع فتح حالة جديدة.
الإشعارات
- جرس إشعارات بيتحدّث كل 20 ثانية، و Web Push بيوصل والموقع مقفول.
- بروتوكول Web Push كله اتكتب من الصفر (تشفير aes128gcm وتوقيع VAPID) من غير أي مكتبة، مع رجوع لإشعارات داخل الموقع لو السيرفر مش داعم.
الأمان
- CSRF على كل طلب، وتحديد محاولات الدخول (5 في 15 دقيقة لكل IP وإيميل)، و bcrypt، وتجديد الجلسة.
- Remember-me بتوكن متخزّن مُهاش وبيتغير مع كل استخدام، وكوكيز HttpOnly و Secure و SameSite.
- رفع الملفات: whitelist للامتدادات، فحص الـ MIME الحقيقي، أسماء عشوائية، حد 60MB، ومنع تنفيذ أي سكربت في مجلد الرفع.
تحديات تقنية اتحلّت
- قاعدة البيانات الحية كانت ناقصة أعمدة من schema قديم — migrate.php آمن للتكرار بيكمّل الناقص.
- الرفع الكبير بيوصل فاضي ويفشّل الـ CSRF من غير سبب واضح — اكتشاف الحالة وعرض رسالة «الملف كبير».
- الـ LiteSpeed cache كان بيقدّم CSS/JS قديمة — cache busting بتاريخ الملف.
- العمولة بالنسبة ما ينفعش تتحسب قبل تحديد السعر — إعادة الحساب وقت التسعير.
استكشف المزيد
كل الأعمال أعمال أخرى
مواقع شركات مميز عرض المشروع
WIRO Stadium
موقع ومتجر Next.js 16 بلوحة تحكم مبنية من الصفر وطلبات على واتساب
متاجر إلكترونية مميز عرض المشروع
Raffinato
متجر Shopify فاخر لمخبوزات وحلويات وكاترينج في دبي بلغتين
منصات تعليمية عرض المشروع
Labs For Home
إعادة بناء موقع معامل علوم افتراضية بـ 3 لغات و Page Builder مخصص