دراسة حالة

إزاي بنينا دورك

إزاي بنت OBELIX Agency منصة دورك لحجز المواعيد أونلاين في مصر والسعودية والإمارات: المشكلة، والقرارات التقنية، والأمان، والسرعة، وإيه اللي اتعلمناه.

دورك، منتج من تطوير أوبليكس: لقطة شاشة من المنتج على الموبايل

دورك منصة حجز مواعيد أونلاين، بنيناها في OBELIX Agency من الصفر للعيادات وعيادات الأسنان والصالونات والحلاقين والمدربين ومراكز الخدمة. المنصة شغالة دلوقتي على dorakeg.com، وبتخدم مصر والسعودية والإمارات.

في المقال ده هنحكي إزاي اشتغلنا عليها: المشكلة اللي كنا بنحلها، والقرارات التقنية اللي أخدناها وليه، وإيه اللي ممكن تستفيده لو بتفكر تبني منتج SaaS بنفسك.

المشكلة: الحجز لسه على الواتساب والتليفون

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

البرامج العالمية موجودة، بس أغلبها بالإنجليزي، وأسعارها بالدولار، ومش مبنية على طريقة شغل السوق هنا: الدفع كاش أو تحويل، والعميل عايز يحجز من الموبايل في دقيقة من غير ما يعمل حساب.

الحل: صفحة حجز لكل نشاط، ولوحة تحكم لصاحبه

قسمنا المنتج لتلات أجزاء واضحة:

  1. صفحة حجز عامة لكل نشاط، على رابط زي dorakeg.com/ar/اسم-النشاط. العميل بيختار الخدمة والموظف والميعاد المتاح، ويأكد برقم موبايله.
  2. لوحة تحكم لصاحب النشاط وفريقه: تقويم، وحجوزات، وخدمات، وفريق، وعملاء، وتقارير، وحسابات.
  3. لوحة إدارة لفريق OBELIX: الأنشطة، والاشتراكات، والأسواق، والإيرادات، والدعم.

والتسجيل نفسه self-service: صاحب النشاط بيسجل برقم موبايله، وبيعدّي على wizard بيجهز النشاط في دقايق، وبياخد تجربة مجانية من غير بطاقة.

القرارات التقنية وليه أخدناها

  • Next.js App Router مع TypeScript: صفحات الحجز والمدونة بتترندر على السيرفر، فبتفتح بسرعة وبتتأرشف كويس في جوجل. ولوحة التحكم تفاعلية على نفس الكود.
  • Prisma مع MySQL: كل البيانات مربوطة بالنشاط بتاعها (multi-tenant)، ومفيش نشاط يقدر يشوف بيانات نشاط تاني.
  • عربي أولًا: العربي هو اللغة الافتراضية ومن اليمين للشمال (RTL)، والإنجليزي نسخة كاملة مش ترجمة سريعة. كل رابط ليه نسخته في اللغة التانية، مع hreflang مظبوط.
  • دخول برقم الموبايل (OTP): لأن ده اللي العميل والتاجر هنا متعودين عليه، مع sessions متشفرة، وتحقق بخطوتين (TOTP) للوحة الإدارة.
  • تطبيق على الموبايل من غير متجر تطبيقات (PWA): صاحب النشاط يقدر يثبت لوحة التحكم على موبايله كأنها تطبيق.
  • مهام مجدولة على السيرفر: cron كل دقيقة لتحديث حالات الحجوزات والاشتراكات.

السرعة وتجربة المستخدم

حطينا هدف واضح من الأول: صفحات المنصة والمدونة تقرّب من 100 في PageSpeed على الموبايل. علشان كده:

  • الخطوط محمّلة من نفس الدومين ومتخزنة سنة كاملة، بدل ما تيجي من Google Fonts.
  • الصور WebP بمقاسات متعددة (srcset)، علشان الموبايل ياخد الصورة الصغيرة بس.
  • منيو موبايل خفيفة بتشتغل بالكيبورد، وبتتقفل بـ Esc.
  • تباين ألوان فوق المعايير (WCAG AA)، علشان النص يتقري بسهولة.

الجودة قبل الإطلاق

كل تغيير بيعدّي على فحص الأنواع (TypeScript)، وESLint، وأكتر من 100 اختبار آلي، وbuild كامل للإنتاج قبل ما يتنشر. والنشر نفسه بيتعمل من فرع main، مع نسخة preview لكل تعديل قبل ما يتدمج.

إيه اللي اتعلمناه

  • ابدأ بالسوق مش بالتقنية. طريقة الدفع، واللغة، والدخول برقم الموبايل كانت أهم من أي feature.
  • الـ SEO جزء من المنتج. المدونة، والروابط المظبوطة باللغتين، والسرعة، كلها اتبنت من أول يوم مش بعد الإطلاق.
  • الـ multi-tenant لازم يتصمم من البداية. فصل بيانات كل نشاط أسهل بكتير وهو جزء من التصميم الأولي، من إنه يتضاف بعدين.

عايز تبني منتج زي ده؟

دورك واحد من المنتجات اللي بنيناها وبنشغلها بنفسنا، جنب تاجروفا وواصيلو. لو عندك فكرة نظام حجز، أو أي منصة SaaS، أو سيستم داخلي لشركتك، كلمنا ونقعد نفكر فيها معاك.

جرّب دورك بنفسك: dorakeg.com

ادخل على دورك ↗

مستعد للنمو؟

طبّق هذا التفكير على عملك

شاركنا ما تريد تحقيقه، وسنصمم معًا الخطوة التالية المناسبة
ابدأ محادثة ↗
احجز مكالمة