مطلوب مطور محترف Full Stack لبناء وتخصيص منصة SaaS متكاملة مبنية على Chatwoot

تفاصيل المشروع

السلام عليكم،

نرغب في التعاقد عبر منصة مستقل مع مستقل واحد محترف، يبني لنا نسخة SaaS خاصة مملوكة لنا بالكامل، مبنية على Chatwoot Community Edition (MIT) على استضافتنا الخاصة، مع تعريب كامل وRTL وتبييض العلامة لتصبح أقرب وظيفيًا لفكرة كرزون. المطلوب تنفيذ احترافي من الألف إلى الياء دون أطراف خارجية.

الهدف المختصر

تركيب Chatwoot Community على خادم Ubuntu 22.04 LTS لدينا، عبر Docker/Docker Compose + Nginx + SSL (Let’s Encrypt).

تعريب شامل وRTL وتخصيص العلامة والهوية لتصبح المنصة باسمنا وشكلنا.

ربط رسمي كامل مع WhatsApp Cloud API (Graph API): استقبال/إرسال، قوالب، جدولة، حملات، سجلات حالة، حد السرعة، منع التكرار، وإدارة الأخطاء.

تكامل عميق مع منصة سلة (Salla) عبر OAuth2/Webhooks لبناء أتمتة رسائل موثوقة (سلة متروكة، إنشاء الطلب، تغييرات حالة الطلب، طلب تقييم… إلخ) مع دعم متغيرات ديناميكية.

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

النطاق الفني (غير قابل للنقاش)

Back-end: Ruby ≥ 3.x، Rails ≥ 7.x، REST، OAuth2

Front-end: Vue 3 (يفضّل TypeScript)، Vite/Yarn/NPM، RTL/i18n

الوظائف الخلفية: Redis + Sidekiq (Scheduled/Retry/Dead-letter) + ActionCable/WebSockets

البيانات: PostgreSQL ≥ 14، فهارس مناسبة، قيود فريدة لمنع التكرار، UTF-8

Infra/DevOps: Docker & Docker Compose v2، Nginx reverse proxy، Let’s Encrypt بتجديد آلي، UFW/Fail2ban، Health/Ready endpoints

الأمن والامتثال: HTTPS فقط، أسرار في .env خارج Git، RBAC، Rate limiting، PDPL-KSA (تقليل بيانات/حق المحو/تنقيح PII في اللوغ)

الجودة: اختبارات RSpec/Minitest، RuboCop، ESLint/Prettier، Git branching مع PRs وTags/Releases وChangelog

تكامل WhatsApp Cloud API (أساس المشروع)

• Webhook يستقبل POST موقّع ويتحقق من X-Hub-Signature-256 (HMAC SHA256) ويرفض أي طلب غير موقّع.

• إرسال رسائل Template عبر /vXX.X/PHONE_ID/messages وتسجيل message_id.

• استلام callbacks لحالات التسليم/الفشل وتخزينها.

• Idempotency حديدي: مفتاح فريد (رقم + اسم القالب + معرف خارجي/طابع زمني) + قيد فريد بقاعدة البيانات + Sidekiq Unique + تجاهل التكرار.

• Throttling قابل للتهيئة + Backoff ذكي لأخطاء 429/5xx + عدادات فشل وتنبيهات.

• إدارة القوالب (اسم/لغة/حالة اعتماد) + مراقبة حالات الرفض والتنبيه عليها.

تكامل سلة (Salla) – جوهر الأتمتة التجارية

• OAuth2 (Authorization Code Flow): تبادل code → tokens، تخزين access/refresh مشفّرًا، جدولة التجديد قبل الانتهاء، سياسات إعادة محاولة آمنة.

• Webhooks موقّعة/موثّقة مع شاشة إدارة تعرض الحالة وآخر محاولة وزر إعادة الإرسال.

• أتمتة رسائل واتساب موثوقة: سلة متروكة (زمن قابل للتخصيص)، إنشاء طلب جديد، تغييرات حالة الطلب (قيد التنفيذ/شحن/إلغاء..)، طلب تقييم بعد الإكمال.

• دعم متغيرات ديناميكية بالرسائل: {اسم_العميل} {رقم_الطلب} {رابط_إكمال_الشراء}… إلخ.

• تطبيع أرقام الجوال وربط العملاء/الطلبات بالمحادثات والحملات دون ازدواج.

حملات واتساب (MVP واضح)

• استيراد CSV (اسم/رقم/متغيرات القالب).

• اختيار قالب + تقسيم دفعات (batches) + جدولة مستقبلية (تظهر في Sidekiq).

• إيقاف/استئناف الحملة بأمان.

• شاشة حالة مفصّلة (Queued/Sent/Failed مع السبب) + تصدير النتائج CSV.

• حدود إرسال/دقيقة قابلة للتهيئة، ومقاييس أداء دقيقة.

تشغيل وأمان ومراقبة

• Healthz/Readyz endpoints تعيد 200 OK.

• Logs JSON منظمة، عدادات إرسال/فشل، تنبيهات على 5xx/429 ومعدلات فشل عالية.

• نسخ احتياطي Postgres يومي + لقطات أقصر زمنًا؛ اختبار استعادة فعلي إلى خادم نظيف خلال ≤ 60 دقيقة.

• سياسة خصوصية داخلية واحترام PDPL، وعدم استخدام أي سكربتات سبام أو طرق مخالفة لسياسات Meta.

تبييض العلامة وتعريب Chatwoot Community (MIT)

• تخصيص الشعار/الألوان/النصوص وRTL عبر السورس مع الحفاظ على إشعار رخصة MIT داخل الملفات (لا يظهر للمستخدم).

• لا نزيل إشعارات الرخصة من السورس؛ الالتزام القانوني شرط أساسي.

مخرجات إلزامية عند التسليم (لا صرف بدونها)

مستودعات Git (Back/Front/Infra) Private ونقل ملكيتها لنا + README تشغيل خطوة بخطوة.

Docker Compose إنتاجي + env.example + ملفات Nginx جاهزة.

سكربت Seed ينشئ Admin/Workspace/Inbox وTokens أولية.

Runbook تشغيل/تحديث/نسخ/استعادة/مفاتيح/مراقبة/تنبيهات.

Postman/Apidog Collection لكل Endpoints (واتساب/سلة/حملات) + عينات Requests/Responses.

Changelog + Tags/Releases على Git.

تقرير أمني مختصر (منافذ/جدار ناري/سياسات كلمات مرور/أماكن الأسرار).

معايير القبول (Acceptance) – يقاس عليها قبل أي صرف

• docker compose ps → كل الخدمات Up، وGET /healthz → 200 OK، HTTPS فعّال.

• Chatwoot يعمل على /app/auth/signup وتخصيص العلامة/RTL ظاهر.

• واتساب: Webhook يرفض غير الموقّع؛ إرسال Template يرجع message_id؛ callbacks تسجل الحالة؛ Idempotency يمنع التكرار؛ Throttling فعّال.

• سلة: OAuth2 كامل، tokens مشفّرة وتجديد يعمل؛ Webhooks موقّعة مع شاشة حالة وإعادة محاولة؛ لا ازدواج في العملاء/الطلبات.

• حملات: CSV/تقسيم دفعات/جدولة واضحة بSidekiq/إيقاف-استئناف/حالة مفصلة/تصدير CSV.

• الأداء: 1000 رقم خلال 10 دقائق على VPS 4–8GB بأخطاء ≤ 1% ودون انهيارات.

• الاستعادة: استرجاع نسخة إلى خادم جديد وتشغيل المنظومة كاملة ≤ 60 دقيقة.

خطة التنفيذ والدفع:

تهيئة وبنية (10%): Docker/Nginx/HTTPS/Healthz + Seed

واتساب (20%): Webhook موقّع + إرسال Template + Callbacks + Idempotency/Throttling

سلة (25%): OAuth2 + Webhooks موقّعة + شاشة حالة + أتمتة أساسيات الإشعارات

حملات (25%): CSV/جدولة/نتائج/إيقاف-استئناف + تصدير

التسليم والتوثيق والاستعادة (20%): Runbook/Backups/Test Restore + إطلاق

اختبار POC إلزامي (مدفوع صغير قبل العقد)

خلال 24–48 ساعة:

• تشغيل Chatwoot Community على VPS مع SSL.

• Webhook واتساب يتحقق من التوقيع ويعمل echo.

• إرسال Template واحد + تسجيل Callback في قاعدة البيانات.

• README مختصر للتشغيل.

الفشل في الـPOC = اعتذار مبكر.

بنود تعاقد موجزة

• الملكية الفكرية (IP) كاملة لنا فور سداد كل مرحلة.

• الالتزام برخصة MIT لChatwoot وعدم إزالة إشعاراتها من السورس.

• منع إدخال أي خدمات/مكونات مدفوعة تُرتّب رسوم علينا إلا بموافقة خطية مسبقة.

• ضمان 30–60 يوم لإصلاح أعطال الإنتاج.

• غرامة تأخير لكل أسبوع بعد مهلة محددة.

• فسخ فوري مع استرجاع عند ثبوت ادّعاء خبرة ثم الفشل في POC أو أي بند جوهري.

• لا Subcontracting بدون إذن خطي.

• لا حلول No-Code/Low-Code بديلة عن النطاق المحدد.

• الالتزام بسياسات Meta وسلة وعدم استخدام أساليب سبام.

المطلوب في ردّك (أي نقص = رفض العرض)

خطة عمل تفصيلية من الصفر للإطلاق، مقسمة لمراحل ومهام فرعية.

جدول زمني لكل مرحلة وزمن إجمالي للتسليم.

تسعير إجمالي ثابت + تفصيل سعر كل مرحلة + أي تكاليف إضافية محتملة.

التقنيات والنسخ التي ستستخدمها (Rails/Vue/Postgres/Redis/Sidekiq/Docker/Nginx…) ولماذا.

وصف تقني واضح لـ Idempotency/Throttling وآلية التحقق من التوقيع HMAC.

خطة النسخ/الاستعادة والمراقبة (أدوات/أوامر/جدولة).

خطة الاختبارات (وحدات/تكامل) وكيف ستثبت تلبية معايير القبول أعلاه.

عينات GitHub حقيقية (Controllers/Jobs/Compose) + فيديو 3–5 دقائق يشرح مشروع مشابه.

تفاصيل الدعم/الصيانة بعد التسليم (باقات/أسعار/نطاق).

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

ملاحظات ختامية

• أي متطلب غير مذكور صراحة يُعتبر مشمولًا ضمن أفضل الممارسات المطلوبة للنطاق أعلاه.

• نبحث عن شريك تقني طويل الأمد، والعروض العامة أو المختصرة سوف تُهمّل.

• التواصل والاتفاق والدفع عبر مستقل

إذا تناسبك الشروط أرسل ردك وفق البنود العشرة. سنختار صاحب الخطة الأوضح + POC الأسرع + السعر المنطقي.

تقدم للمشروع

العروض المقدمة

Hamza E.

السلام عليكم ورحمة الله وبركاته السلام عليكم ورحمة الله وبركاته , أنا مهندس برمجيات أكثر من 10 سنوات خبرة مع شركة هولندية ودكتوراه في الذكاء الاصطناعي، أمتلك خب...

اسماء ا.

أنا د. أسماء، أستاذة في كلية الهندسة ومتخصصة في النظم الذكية، تكامل الأنظمة، وتطوير الحلول الذكية باستخدام الذكاء الاصطناعي والتقنيات السحابية. لدي خبرة عملية و...

قبولك لهذا العرض يعتبر اتفاقاً بينك وبين المستقل وسيبقى موقع مستقل وسيطاً بينكما حتى تسليم المشروع. لن تتمكن من تغيير العرض أو إلغائه لاحقًا لذلك تأكد من اختيارك للعرض المناسب باتّباع النصائح التالية:

  • راجع صفحة حساب المستقل الذي اخترته واطّلع على أعماله السابقة
  • إن كانت هناك تفاصيل غير مذكورة في المشروع، فتواصل مع المستقل وأخبره بها أولًا
  • بإمكانك أن تتواصل مع المستقل وتسأله عن أية أمور تحتاجها
  • احرص دائمًا على إبقاء التواصل مع المستقل داخل الموقع قدر الإمكان وذلك لضمان حقوقك
  • لا تتردد من التواصل معنا ان احتجت لأي مساعدة، نحن نحب مساعدتك!

المستقل غير متاح لاستلام مشاريع، يمكنك ارسال تنبيه له لقبول العرض وإعادة المحاولة بعد بضعة ساعات، أو اختيار عرضاً من مستقل آخر.