تطبيق لتتبّع باصات نقل الطلاب الخاصة: ماذا يحتاج الأهل والسائق؟
الأهل لا يريدون خريطة يحدّقون فيها كل صباح، بل يريدون جوابين: «متى يصل الباص إلى بيتنا؟» و«هل نزل ابني في المدرسة؟». ولهذا يُبنى تطبيق تتبّع باصات الطلاب حول التنبيهات قبل الخريطة، وحول تطبيق سائق بسيط يعمل طوال الرحلة دون أن يستنزف هاتفه. ابدأ بالأدوار الثلاثة، ثم بالميزات التي يحتاجها كل دور، ثم ابنِ على مراحل.
من يستخدم التطبيق؟ ثلاثة أدوار بثلاث حاجات
قبل أي شاشة، افهم أن هناك ثلاثة مستخدمين لا يجمعهم شيء تقريبًا سوى الرحلة نفسها.
ولي الأمر
يفتح التطبيق دقيقة واحدة صباحًا وأخرى بعد الظهر. همّه أن يعرف متى يخرج بالطفل إلى باب العمارة، خصوصًا في أيام الشتاء الباردة والصباحات المزدحمة في عمّان، وأن يطمئن أن الطفل وصل. وهو أيضًا من يحتاج طريقة سهلة ليقول «ابني ما رح يداوم بكرة» دون اتصال بالسائق أثناء القيادة.
السائق أو المرافقة
يقود ويديه على المقود، فلا مكان عنده لتطبيق كثير الأزرار. يحتاج أن يرى قائمة الطلاب على خطه بالترتيب، ومن منهم غائب اليوم، وأن يسجّل «صعد» و«نزل» بلمسة واحدة، أو تسجّلها المرافقة إن وُجدت.
المشغّل (صاحب الشركة أو الخط)
يدير عدة باصات وخطوط، ويتلقّى الاتصالات حين يتأخر باص. يحتاج شاشة واحدة يرى فيها كل الباصات وحالتها، وطريقة لتعديل الخطوط حين ينتقل طالب أو ينضم آخر في منتصف الفصل.
الميزات لكل دور
ما يحتاجه الأهل
- تنبيه الاقتراب: إشعار حين يكون الباص على بُعد محطة أو اثنتين، أو بضع دقائق، من البيت. هذا أهم من الخريطة نفسها.
- تنبيه الصعود والنزول: «صعد أحمد الباص» و«وصل أحمد المدرسة»، يُرسل من تسجيل السائق أو المرافقة لا من التخمين.
- الموقع الحي أثناء الرحلة فقط: يظهر حين تبدأ الرحلة ويختفي بانتهائها.
- الإبلاغ عن الغياب قبل موعد محدد، فيصل إلى السائق ويُحذف البيت من مسار ذلك اليوم.
- رسائل عامة من المشغّل: تأخير بسبب حادث على الطريق، أو إلغاء الرحلات في يوم ثلج.
الإشعارات نفسها تُرسل عادة عبر خدمة مثل Firebase Cloud Messaging، التي تصفها Google بأنها حل متعدد المنصات لإرسال الرسائل بموثوقية إلى تطبيقات Android وiOS والويب. ولأن بعض الأهل لن يثبّتوا التطبيق أصلًا، فكّر في إرسال تنبيه الوصول برسالة واتساب أو SMS كبديل لهؤلاء.
ما يحتاجه السائق
- زر «ابدأ الرحلة» و«أنهِ الرحلة»: الموقع يُشارك بينهما فقط، لا طوال اليوم.
- قائمة الطلاب مرتّبة حسب المسار، مع علامة واضحة على الغائبين اليوم.
- تسجيل الصعود والنزول بلمسة، مع إمكانية التصحيح.
- ملاحظة البيت: وصف المكان بالمعالم كما هو معتاد في الأردن، «البيت الثالث بعد المسجد، البوابة السوداء»، ورقم ولي الأمر عند الحاجة.
- اتصال بالمشغّل بضغطة، لا بالأهل مباشرة، حتى لا ينشغل بالهاتف أثناء القيادة.
ما يحتاجه المشغّل
- لوحة حيّة بكل الباصات النشطة ومتى بدأت رحلتها وأين وصلت.
- إدارة الخطوط: إضافة طالب إلى خط، ونقل محطة، وتغيير ترتيب البيوت.
- إدارة الحسابات: ربط كل طفل بولي أمر أو أكثر، فقد يتابع الأب والأم معًا.
- سجل الرحلات: متى بدأت كل رحلة وانتهت، ومتى صعد كل طالب ونزل، للرجوع إليه عند أي خلاف.
- رسالة جماعية لخط واحد أو لكل الخطوط.
البطارية والبيانات: الجزء الذي يُفشل التطبيقات
أكثر شكوى متوقعة من تطبيق كهذا: «الباص مش ظاهر عالخريطة». والسبب غالبًا ليس الخريطة، بل أن نظام الهاتف أوقف إرسال الموقع.
على Android توضح وثائق Google أن جمع الموقع في الخلفية مقيّد منذ Android 8.0، فيُحسب الموقع ويُسلَّم بضع مرات فقط في الساعة. لذلك يجب أن يعمل تطبيق السائق أثناء الرحلة كـ«خدمة أمامية» من نوع الموقع، وهو النوع الذي تخصّصه Google للاستخدامات الطويلة التي تحتاج الموقع مثل الملاحة ومشاركة الموقع، ويظهر معه إشعار دائم على هاتف السائق. وعلى iOS تشرح Apple أن النظام يعلّق التطبيقات بعد انتقالها إلى الخلفية بوقت قصير، وأن الحصول على التحديثات في وقتها يتطلب تفعيل قدرة تحديثات الموقع في الخلفية وتوضيح ذلك للمستخدم.
أما البطارية، فتربطها وثائق Android بثلاثة عوامل: دقة الموقع، وتكرار حسابه، وسرعة تسليمه. كلما زادت أيّها زاد الاستهلاك. عمليًا:
- لا تحتاج تحديثًا كل ثانية. تحديث كل بضع ثوانٍ إلى نصف دقيقة يكفي لتقدير وقت الوصول.
- أرسل الموقع إلى الخادم فقط حين يتحرك الباص مسافة معقولة، لا حين يقف عند الإشارة.
- أوقف المشاركة تلقائيًا إن نسي السائق إنهاء الرحلة، بعد مدة معيّنة أو عند وصوله إلى المدرسة أو موقف الباصات.
- وفّر شاحنًا ثابتًا في الباص؛ هذا وحده يحل نصف المشكلة.
ولحزمة الإنترنت: إرسال إحداثيات بسيطة لا يستهلك إلا القليل، والمستهلك الحقيقي هو تحميل الخرائط على هاتف السائق. لا يحتاج السائق خريطة مفتوحة طوال الوقت إن كانت قائمة البيوت مرتّبة أمامه.
وإن كانت الهواتف عبئًا لا ينتهي، فالبديل هو جهاز تتبّع مثبّت في الباص يرسل الموقع وحده، ويبقى تطبيق السائق لتسجيل الصعود والنزول فقط.
الخصوصية في سطر
أنت تتعامل مع مواقع أطفال وبيوتهم: لا يرى ولي الأمر إلا باص طفله أثناء رحلته، ولا يرى السائق إلا طلاب خطه، وتُحذف بيانات الموقع التفصيلية بعد مدة تحددها وتعلنها للأهل.
ترتيب البناء
المرحلة الأولى: الأساس الذي يعمل. تطبيق سائق بزر بدء وإنهاء ومشاركة موقع موثوقة في الخلفية، ولوحة بسيطة للمشغّل، وصفحة أو تطبيق للأهل يعرض الموقع الحي وتنبيه الاقتراب. جرّبها على خط واحد لأسبوعين قبل التعميم.
المرحلة الثانية: الحضور والغياب. تسجيل الصعود والنزول، وتنبيهاتهما للأهل، وإبلاغ الغياب الذي يعدّل قائمة السائق.
المرحلة الثالثة: الإدارة. تعديل الخطوط من اللوحة، وسجل الرحلات، والرسائل الجماعية، والبديل عبر واتساب أو SMS للأهل بلا تطبيق.
المرحلة الرابعة: التحسين. تقدير أدق لوقت الوصول، وتقارير الالتزام بالمواعيد، وربط الرسوم الشهرية أو تذكيرات الدفع إن أردت.
هذا الترتيب مقصود: إن لم يكن الموقع الحي موثوقًا من الأسبوع الأول، فلن يثق الأهل بأي ميزة تأتي بعده.
الأسئلة الشائعة
هل يكفي أن يشارك السائق موقعه عبر واتساب بدل تطبيق خاص؟
مشاركة الموقع المباشر في مجموعة واتساب حلّ مؤقت مقبول لخط واحد، لكنها تكشف موقع الباص لكل أعضاء المجموعة، ولا تعطي تنبيه اقتراب ولا سجل صعود ونزول. عندما تكبر الخطوط يصبح التطبيق أبسط إدارة من عشرات المجموعات.
هل يحتاج الأهل تطبيقًا على المتجر، أم تكفي صفحة ويب؟
صفحة ويب محمية برابط خاص تكفي لعرض الموقع الحي. لكن الإشعارات الفورية تعمل بشكل أوثق داخل تطبيق مثبّت، ولهذا تبدأ مشاريع كثيرة بصفحة ويب ثم تضيف التطبيق حين تثبت الفكرة.
ماذا لو انقطع الإنترنت عن هاتف السائق أثناء الرحلة؟
يجب أن يحفظ التطبيق تسجيلات الصعود والنزول والمواقع على الجهاز ويرسلها حين يعود الاتصال، وأن تُظهر شاشة الأهل «آخر تحديث قبل كذا دقيقة» بدل تجميد الباص على الخريطة دون تفسير.
هل أستخدم هاتف السائق الشخصي أم جهازًا للشركة؟
جهاز للشركة يبقى في الباص أسهل في الإدارة، لأنك تتحكم في إعدادات البطارية والتحديثات وتضمن تثبيت التطبيق. الهاتف الشخصي يوفّر التكلفة في البداية، لكنه يتعرّض لإعدادات توفير الطاقة التي قد توقف التتبّع دون أن ينتبه أحد.
إن كنت تدير خطوط نقل طلاب وتريد أن يتوقف هاتفك عن الرنين كل صباح، حدّثنا عن خطوطك وعدد باصاتك.
المصادر
- https://developer.android.com/develop/sensors-and-location/location/battery
- https://developer.android.com/develop/background-work/services/fgs/service-types
- https://developer.apple.com/documentation/corelocation/handling-location-updates-in-the-background
- https://firebase.google.com/docs/cloud-messaging