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

مطلوب إكمال العمل على سيرفر Node.js + LiveKit لتطبيق

غرف صوتية (Flutter). السيرفر موجود وشغال، المطلوب

تعديلات على التوكنات والصلاحيات.

المتطلبات التقنية:

1. تعديل endpoint الحالي POST /livekit/join:

- التوكن الافتراضي يكون canPublish: false للجميع

- صاحب الغرفة (ownerId) فقط يكون canPublish: true

ويدخل على المايك مباشرة

- المشرف والمستمع يدخلون بـ canPublish: false

- المشرف لما يضغط زر المايك يتحول لمتحدث

عن طريق grant-publish بدون ما يحتاج موافقة

- المستمع العادي يحتاج موافقة الهوست/المشرف

2. إضافة endpoint جديد POST /livekit/grant-publish:

- يستقبل: roomId, userId

- يغيّر صلاحية المستخدم لـ canPublish: true

- يستخدم LiveKit Server API (UpdateParticipant)

3. إضافة endpoint جديد POST /livekit/mute-participant:

- يستقبل: roomId, userId

- يكتم صوت المستخدم من السيرفر

- يستخدم LiveKit Server API (MutePublishedTrack)

4. التأكد من توافق التوكنات مع نظام الصلاحيات:

- لما المستخدم ينطرد (kicked_users) ما يقدر يرجع يدخل

- لما المستخدم ينكتم (muted_users) التوكن يتحدث تلقائي

- لما تتم الموافقة على المستخدم (approved_speakers)

يتحول من مستمع لمتحدث بدون ما يطلع ويدخل الغرفة

5. حماية الـ endpoints:

- التأكد إن الطلبات تجي من التطبيق فقط

- إضافة validation للـ roomId و userId

- ما أحد يقدر يعطي نفسه صلاحية بدون ما يكون هوست أو مشرف

6. التأكد إن الصوت يشتغل بشكل صحيح:

- الهوست يدخل على المايك مباشرة ويسمعونه من أول ما يدخل

- المستمع ما يسمعونه إلا بعد الموافقة

- المشرف يدخل صامت ويتكلم لما يضغط المايك بدون موافقة

- الكتم يشتغل من السيرفر مو بس محلي

- يشتغل على iOS و Android

هيكل Firestore (جاهز):

user_rooms/{roomId}

- ownerId ← صاحب الغرفة

- moderators/{userId} ← المشرفين

- approved_speakers/{userId} ← المتحدثين المقبولين

- muted_users/{userId} ← المكتومين

- kicked_users/{userId} ← المطرودين

الكود كامل مرفوع على GitHub — آخر نسخة.

شروط التسليم:

- لا يتم قبول التسليم إلا بعد اختبار كامل على

جهازين (iOS + Android) والتأكد من:

• الهوست يدخل على المايك تلقائي ويسمعونه مباشرة

• المستمع ما يسمعونه قبل الموافقة

• المشرف يدخل صامت ويتكلم بضغطة زر بدون موافقة

• الكتم يشتغل فعلياً على الطرف الثاني

• لا يوجد تأخير أو انقطاع بالصوت

- التعديلات تكون على الكود الموجود بدون

تغيير هيكل المشروع أو حذف ملفات

ملاحظات:

- المستقل سبق له العمل على نفس المشروع

وعنده access كامل على السيرفر والكود

- الكود مرفوع على GitHub جاهز

- هيكل Firestore جاهز ومبني

حالة المشروع
مكتمل
تاريخ النشر
الميزانية
$25.00 - $50.00
مدة التنفيذ
7 أيام
المهارات

صاحب المشروع
Abdalah F.
  • صاحب تطبيق
تاريخ التسجيل
معدل التوظيف
المشاريع المفتوحة 0
مشاريع قيد التنفيذ 0
التواصلات الجارية 4

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

السلام عليكم يمكننى تكملة الباقى انشاء الله بكل سلاسة فى اكمال وتعين الهوست و عمل هندل للتحكم فى الوصت من الكتم وطلب المايك وتشغيله بصلاحياته والمشريفين ايضا وت...

معك مطور Full-Stack خبير في التعامل مع LiveKit SDK وربطها ببيئة Node.js و Flutter. لقد قرأت متطلباتك بدقة، وأدرك أن التحدي الأكبر في غرف الصوت ليس مجرد ربط الات...

السلام عليكم انا محمد عادل لديا خبره سنتين ف عمل مواقع والتطبيقات اندرويد وios سواء ب flutter او ب react native او او react js ب native language وعندي الاستعداد...

مرحبا أ/ عبدالله اطلعت على تفاصيل المشروع بالكامل، وواضح إن عندك شغل متقدم بالفعل سواء في السيرفر أو ربطه مع Flutter وLiveKit، وده بيسهل جدا إننا نكمل عليه بشكل...

السلام عليكم أستاذ عبد الله، معك محمود رأفت، مطور تطبيقات Flutter ومبرمج Node.js. لقد قرأت تفاصيل مشروعك بعناية، وأدرك تماما التحديات التقنية المطلوبة في إدارة ...

السلام عليكم أستاذ عبد الله، قرأت تفاصيل المشروع بدقة، وبصفتي مطور Backend (Node.js) محترف، أؤكد لك أن التعديلات المطلوبة واضحة جدا وتتعلق بشكل مباشر بإدارة الـ...

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

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

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