Skip to content

تطبيق المتفرج (الواجهة العامة لـ Gateway)

مرجع لتطبيق المتفرج في Timers Studio: ما يراه الجمهور على /ask/<room>، إدارة الهوية دون تسجيل دخول، الأذونات ووراثة هوية الغرفة البصرية.

آخر تحديث

تطبيق المتفرج (الواجهة العامة لـ Gateway)

تطبيق المتفرج هو الواجهة العامة لوحدة Gateway. هو ما يراه الشخص الموجود بين الجمهور فعليًا عندما يفتح غرفة Timers Studio على هاتفه: صفحة خفيفة، دون تسجيل دخول، تُقدَّم على timers.studio/ask/<room>. كل ما تبقى من المنصة — Studio وModerator وPlayer — يبقى مخفيًا عنه. هذه الواجهة ضيّقة عن قصد.

يصل المتفرج إلى هنا بإحدى طريقتين. إما أن يمسح رمز QR معروضًا على المسرح أو على شريحة أو في برنامج الفعالية، أو يكتب رابطًا قصيرًا يوزّعه المنظّم. في الحالتين المسار نفسه: /ask/<room> يحلّ الغرفة من جدول controllers ويحمّل واجهة الجمهور. لا صالة انتظار، لا إنشاء حساب، لا طلب بريد إلكتروني.

ما يراه المتفرج

التطبيق مصمَّم للهاتف أولًا، ملائم للإبهام، بواجهة داكنة افتراضية. منذ تحميل الصفحة يمكن للمتفرج الوصول إلى:

  • طرح سؤال — نموذج من 280 حرفًا يكتب في spatial_questions. منتقي مقعد اختياري (SeatSelector) يضيف vector_position وzone_id ليعرف المخرج من أين يأتي السؤال.
  • التصويت على استطلاع مباشر — يصعد SpectatorPollVote من الأسفل لحظة يفتح المخرج استطلاعًا. له الأولوية على نموذج السؤال حتى يُدلى بالصوت أو يُغلق الاستطلاع.
  • الأجندة — عرض للقراءة فقط لترتيب اليوم، يظهر إذا تركه المنظّم مفعَّلًا. يعكس نفس البيانات المحرَّرة في وحدة الأجندة.
  • شارة LIVE — مؤشر صغير مرتبط بـ controllers.timer_state يتحوّل إلى LIVE أثناء تشغيل مؤقت على المسرح.
  • شاشة النجاح — بعد إرسال سؤال، تأكيد مع زر إعادة ضبط حتى يرسل الجهاز نفسه سؤالًا آخر.

تبقى الألسنة مشتركة في الخلفية. حين يفتح المخرج استطلاعًا لا يحتاج المتفرج إلى إعادة التحميل؛ تظهر ورقة التصويت من تلقاء نفسها.

الهوية والخصوصية

لا يطلب تطبيق المتفرج كلمة مرور أبدًا. تُحفظ الهوية في spectator_id يقيم داخل المتصفح، لا في جلسة خادم.

  • عند الزيارة الأولى يولّد التطبيق spectator_id ويخزّنه في localStorage بمفتاح خاص بالغرفة مثل fp_<room>.
  • يُدرَج سطر في spectators بهذا المعرّف وroom_id وnickname اختياري.
  • العودة من الجهاز نفسه تُعيد استخدام spectator_id ذاته، فلا تُحصى الشخص مرتين في عدّادات المشغّل إذا أعاد فتح الصفحة.
  • مسح تخزين المتصفح يُعيد تصفير الهوية. هذا مقصود ويطابق توقّع الجمهور: لا شيء يبقى بعد انتهاء الفعالية.

بما أنه لا يُطلب بريد إلكتروني ولا رقم هاتف ولا حساب، يبقى Gateway في الجانب المريح من اللائحة الأوروبية العامة لحماية البيانات: البيانات الوحيدة المجمَّعة هي معرِّف مجهول، اللقب الاختياري، وما يكتبه المتفرج صراحة (سؤال، صوت). لا يُحفظ اختيار المقعد إلا إذا تمّ فعلًا.

الأذونات والحدود

قواعد قليلة تُبقي الواجهة هادئة تحت الحمل:

  • حدّ المعدّل — يمكن لـ spectator_id واحد إرسال سؤال كل 10 ثوانٍ. يُعطَّل النموذج بين إرسالين.
  • طول السؤال — 280 حرفًا، يُفرض في العميل ويُعاد التحقّق منه عند الإدراج.
  • استطلاع نشط واحد في كل لحظة — يرى المتفرج الاستطلاع ذا الحالة active فقط. الاستطلاعات السابقة ليست قابلة للتصفّح من هذه الواجهة.
  • لا تعديل ولا حذف — بعد إرسال السؤال لا يستطيع المتفرج إعادة كتابته. تتمّ الإدارة من جانب المشغّل.
  • لا أدوات للمشرف — الموافقة ودفع السؤال إلى الـ Player وسحب الفائز في اليانصيب تتمّ في Studio. تطبيق المتفرج لا يعرض أيًا منها.

الهوية البصرية

يرث تطبيق المتفرج مظهر الغرفة التي ينتمي إليها. يُطبَّق هنا نفس السمة التي تُحرّك رأس Studio وخلفية Player:

  • الألوان الأساسية واللونية تُقرأ من سمة الغرفة.
  • يظهر شعار المنظّم أعلى التطبيق عند تعريفه على الـ controller.
  • الوضع الداكن افتراضي؛ يمكن لسمة الغرفة تجاوزه.
  • تتبع اللغةُ لغةَ المسؤول في الـ controller، مع الانتقال إلى تنسيق RTL للعربية.

الهدف هو أن يشعر المتفرج على /ask/<room> بأنه في الفعالية نفسها التي على شاشة المسرح، دون إطار Timers Studio يصرف الانتباه عن العرض.

الأسئلة الشائعة

هل يحتاج المتفرجون إلى إنشاء حساب؟ لا. تطبيق المتفرج بلا تسجيل دخول ولا اشتراك ولا حقل بريد. يُولَّد spectator_id مجهول في المتصفح عند الزيارة الأولى.

ما البيانات التي يجمعها Gateway؟ spectator_id مجهول في localStorage، لقب اختياري، وما يرسله المتفرج صراحة — نص سؤال، اختيار مقعد، صوت. لا بريد ولا هاتف ولا حساب.

هل يعمل دون تثبيت تطبيق؟ نعم. تطبيق المتفرج صفحة ويب. أي متصفح حديث على الهاتف أو الحاسوب يفتحها مباشرة من رمز QR أو رابط قصير. لا شيء يُثبَّت.

هل يمكن إخفاء الأجندة عن المتفرجين؟ نعم. يستطيع المنظّم تبديل ظهور الأجندة من Studio. حين تكون مُعطَّلة يُحمَّل التطبيق كالمعتاد؛ لسان الأجندة فقط يغيب.

قراءات لاحقة