مطلوب Senior Backend & Edge IoT Developer لمرحلة تجريبية مدفوعة — مع تعاون طويل الأمد

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

عنوان المشروع:

مطلوب Senior Backend & Edge IoT Developer لمرحلة تجريبية مدفوعة — مع تعاون طويل الأمد

وصف المشروع:

نبحث عن مطوّر Senior Backend & Edge IoT يتمتع بخبرة عملية في Python وMQTT وOPC UA أو Modbus، لتنفيذ مرحلة تجريبية مدفوعة ضمن مشروع منصة Edge IoT.

تستقبل المنصة بيانات من مسارين:

1. أنظمة المباني الذكية عبر MQTT.

2. معدات صناعية وPLC عبر OPC UA أو Modbus TCP.

المطلوب في المرحلة التجريبية هو إثبات القدرة على استقبال بيانات المسارين، توحيدها، تخزينها وإتاحتها عبر REST API وWebSocket.

مدة التجربة أسبوعان. وفي حال نجاح المطوّر في تنفيذ المطلوب واجتياز اختبارات القبول، ستكون له الأولوية للاستمرار معنا في تطوير الـBackend الأساسي للمنصة ضمن مراحل شهرية، يتبعها احتمال تعاون مستمر في الصيانة والتطوير وإضافة الخصائص.

المسمى المطلوب:

Senior Backend & Edge IoT Developer

المهارات الأساسية المطلوبة:

* خبرة قوية في Python.

* خبرة عملية في FastAPI.

* خبرة في MQTT وMosquitto أو EMQX.

* خبرة في OPC UA باستخدام asyncua أو مكتبة مناسبة.

* خبرة في Modbus TCP باستخدام pymodbus أو مكتبة مناسبة.

* فهم PLC Tags وIndustrial Data.

* PostgreSQL، ويفضل TimescaleDB.

* تصميم REST API وWebSocket.

* Docker وDocker Compose.

* Linux وEdge Deployment.

* تصميم قواعد بيانات Time-Series.

* التعامل مع البيانات والأحداث اللحظية.

* اكتشاف انقطاع الأجهزة وإعادة الاتصال تلقائياً.

* Git وتنظيم الإصدارات.

* كتابة كود منظم وقابل للتوسع والاختبار.

* أساسيات Authentication وAuthorization وTLS.

مهارات إضافية مفضلة:

* خبرة سابقة في IoT أو IIoT.

* خبرة في Siemens PLC.

* فهم أنظمة BMS أو Smart Buildings.

* خبرة في نشر الخدمات على Mini PC أو NUC.

* خبرة في Device Management.

* خبرة في أنظمة المراقبة الصناعية أو Energy Monitoring.

* معرفة مبدئية بـNode-RED.

نطاق المرحلة التجريبية المدفوعة:

1. إنشاء مشروع Backend باستخدام Python وFastAPI.

2. إعداد PostgreSQL أو TimescaleDB.

3. إعداد MQTT Broker باستخدام Mosquitto أو EMQX.

4. إعداد جميع الخدمات باستخدام Docker Compose.

5. استقبال بيانات أجهزة تجريبية عبر MQTT.

6. قراءة مجموعة PLC Tags تجريبية عبر OPC UA أو Modbus TCP.

7. توحيد بيانات MQTT وPLC داخل نموذج بيانات مشترك.

8. التحقق من صحة الرسائل والقيم المستلمة.

9. تخزين القراءات الزمنية في قاعدة البيانات.

10. إنشاء REST APIs لاسترجاع:

* قائمة الأجهزة.

* آخر حالة لكل جهاز.

* آخر قراءة لكل نقطة.

* القراءات بين تاريخين.

11. إنشاء WebSocket لإرسال البيانات اللحظية.

12. تسجيل أخطاء الاتصال والرسائل غير الصحيحة.

13. اكتشاف حالة Online وOffline لكل مصدر بيانات.

14. إعادة الاتصال تلقائياً بعد انقطاع MQTT أو PLC.

15. توثيق طريقة التثبيت والتشغيل والاختبار.

نموذج البيانات الأولي:

يجب أن يدعم الهيكل العناصر التالية:

* Project أو Site.

* System Type.

* Area أو Zone.

* Asset أو Device.

* Data Point أو Tag.

* Data Source.

* Current Value.

* Timestamp.

* Quality أو Communication Status.

* Historical Readings.

* Events and Errors.

سيتم الاتفاق مع المطوّر المختار على الصيغة النهائية للبيانات قبل بدء التنفيذ.

اختبار القبول:

سيتم اختبار النظام باستخدام مصدرين تجريبيين:

أولاً: مسار MQTT

* إرسال رسائل بيانات تجريبية.

* التحقق من استقبالها.

* التحقق من صحة الحقول والقيم.

* تخزينها في قاعدة البيانات.

* إرجاعها عبر REST API.

* إرسال القيمة اللحظية عبر WebSocket.

ثانياً: مسار PLC

* قراءة مجموعة Tags عبر OPC UA أو Modbus TCP.

* تحويلها إلى نموذج البيانات الموحد.

* تخزين القيم والتوقيت وحالة الاتصال.

* إرجاعها عبر REST API وWebSocket.

اختبارات الانقطاع:

* فصل MQTT Broker مؤقتاً ثم إعادته.

* فصل اتصال PLC مؤقتاً ثم إعادته.

* تسجيل حالة Offline.

* إعادة الاتصال تلقائياً.

* استئناف استقبال البيانات دون إعادة تشغيل النظام يدوياً.

التسليمات المطلوبة للمرحلة التجريبية:

* Source Code كامل ومنظم.

* العمل داخل Git Repository تابع لصاحب المشروع.

* Database Schema واضح.

* Docker Compose لتشغيل الخدمات.

* ملف Environment Example دون كلمات مرور حقيقية.

* API Documentation باستخدام Swagger/OpenAPI.

* اختبارات للوظائف الأساسية.

* Sample Data أو Simulator للاختبار.

* دليل تثبيت وتشغيل.

* تقرير مختصر بنتائج الاختبارات.

* جلسة شرح وتسليم في نهاية المرحلة.

مدة المرحلة التجريبية:

* أسبوعان.

* حجم العمل المتوقع: نحو 25 إلى 40 ساعة.

* يجب الالتزام بتحديثات مكتوبة وتسليم مرحلي خلال فترة التجربة.

ميزانية المرحلة التجريبية:

* من 300 إلى 500 دولاراً.

* المرحلة مدفوعة بالكامل عند إنجاز المتطلبات واجتياز اختبار القبول.

* الدفع مرتبط بالمخرجات التقنية المتفق عليها، وليس بعدد ساعات الحضور فقط.

التعاون بعد نجاح المرحلة التجريبية:

عند نجاح المرحلة، نرغب في الاستمرار مع المطوّر نفسه لتطوير النسخة الأساسية، وتشمل المراحل اللاحقة مبدئياً:

* إدارة المواقع والمناطق والأجهزة والأصول.

* إدارة Data Points وPLC Tags.

* إدارة المستخدمين والصلاحيات.

* Device Authentication.

* Event Engine.

* Rules Engine بناءً على قواعد يقدمها صاحب المشروع.

* Alerts ومستويات الخطورة.

* Audit Logs.

* Communication Monitoring.

* Historical Data APIs.

* تجهيز APIs للـDashboard.

* دعم البيانات اللحظية.

* إدارة إعدادات الـEdge Gateway.

* Backup وRestore.

* Testing وDocumentation.

* تحسين الأمان والأداء.

* إضافة Connectors جديدة في مراحل مستقبلية.

شكل التعاون اللاحق:

* تعاون جزئي طويل الأمد.

* التزام تقريبي: 15 إلى 20 ساعة أسبوعياً.

* المرحلة الأساسية الأولى: من 4 إلى 5 أشهر تقريباً.

* الميزانية المبدئية: نحو 1,200 دولار لكل مرحلة شهرية.

* يمكن استمرار التعاون بعد الـMVP للصيانة وإضافة الخصائص والتكاملات.

* كل مرحلة لها مخرجات واختبارات قبول ودفعة مستقلة.

دور صاحب المشروع:

سيتولى صاحب المشروع:

* تحديد المتطلبات الفنية والوظيفية.

* تجهيز واختبار أنظمة المباني الذكية.

* برمجة وتجهيز PLC والنموذج الصناعي.

* تحديد PLC Tags ونقاط البيانات المطلوبة.

* توفير قواعد الأعطال وحالات الاستخدام.

* اختبار التكامل الميداني.

* قبول أو رفض مخرجات كل مرحلة.

لا يُطلب من المطوّر:

* برمجة مشروع PLC بالكامل.

* إعداد مشروع هندسي للمبنى.

* تصنيع اللوحة الكهربائية أو الـConveyor.

* تطوير نماذج Machine Learning في المرحلة التجريبية.

* تطوير Frontend Dashboard في هذه المرحلة.

شروط السرية والملكية:

* المرحلة التجريبية لا تتطلب كشف الفكرة التجارية الكاملة.

* سيتم توفير المعلومات التقنية اللازمة لكل مهمة فقط.

* جميع الأكواد والوثائق وقواعد البيانات الناتجة ملك لصاحب المشروع.

* يمنع إعادة استخدام منطق المشروع أو بياناته أو مشاركتهما.

* يجب تنفيذ العمل داخل مستودع Git تابع لصاحب المشروع.

* يجب أن تكون حسابات Cloud وDomain وMQTT وقاعدة البيانات باسم صاحب المشروع.

* يمنع استخدام مكونات مدفوعة أو مغلقة المصدر دون موافقة مسبقة.

* يمنع الاحتفاظ بالبيانات أو كلمات المرور أو مفاتيح الوصول بعد انتهاء التعاقد.

* يجب توثيق جميع المكتبات والمكونات الخارجية المستخدمة.

المطلوب إرفاقه مع العرض:

1. نبذة مختصرة عن خبرتك ذات الصلة.

2. روابط أو صور لمشاريع Backend أو IoT مشابهة.

3. مثال واضح على مشروع استخدمت فيه MQTT.

4. مثال على استخدام OPC UA أو Modbus TCP.

5. توضيح خبرتك في FastAPI وPostgreSQL وDocker.

6. شرح مختصر للبنية التقنية المقترحة للمرحلة التجريبية.

7. تحديد هل ستستخدم OPC UA أو Modbus أو كليهما في الاختبار.

8. تأكيد إمكانية إكمال المرحلة خلال أسبوعين.

9. عدد الساعات المتاحة أسبوعياً.

10. الميزانية المطلوبة ضمن النطاق المحدد.

11. تأكيد استعدادك لتعاون جزئي طويل الأمد عند نجاح التجربة.

12. تأكيد قبول العمل داخل Repository تابع لصاحب المشروع وتسليم Source Code بالكامل.

أسئلة الفرز الأولي:

* كيف ستصمم Data Model موحداً لبيانات MQTT وPLC Tags؟

* كيف ستتعامل مع انقطاع الاتصال وإعادة الاتصال دون فقدان استقرار النظام؟

* ما الفرق بين استخدام OPC UA وModbus TCP في هذا المشروع؟

* كيف ستمنع تكرار البيانات أو تخزين قراءات غير صحيحة؟

* كيف ستنظم Docker Compose لتشغيل MQTT وDatabase وBackend؟

* ما الاختبارات التي ستكتبها لإثبات نجاح المرحلة؟

ملاحظة:

لن يتم اختيار العرض بناءً على السعر الأقل فقط. الأولوية ستكون للخبرة العملية في Backend وEdge IoT، وجودة الأعمال السابقة، وفهم MQTT وOPC UA/Modbus، وتنظيم الكود، والالتزام بالتوثيق والتسليم.

حالة المشروع
مفتوح
تاريخ النشر
الميزانية
$250.00 - $500.00
مدة التنفيذ
15 يوما
المهارات

صاحب المشروع
Zied E.
  • دعم، مساعدة وإدخال بيانات
تاريخ التسجيل
معدل التوظيف
المشاريع المفتوحة 1
مشاريع قيد التنفيذ 0
التواصلات الجارية 0

تقدم للمشروع

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

محمد طاهر خان نيازي ح.

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

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

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

قيمة العرض

$0

رسوم بدء المشروع

$0

المجموع الكلي

$0

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