هيثم العسوليRead this in Arabicاقرأ هذه الصفحة بالإنجليزية
عودة إلى ورقة اللقطات

الجوّال2025

صوت

أتمتة العملية الانتخابية، من التصويت إلى النتائج.

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

الإنتاج
صوت
الدور
منفردًا: الموبايل والخادم
السنة
2025
الحالة
صدر
الصيغة
الجوّال
بُني بـ
React NativeTypeScriptOTP verificationFirebaseZustandReact QueryReanimatedRestyleZod
صوت — أتمتة العملية الانتخابية، من التصويت إلى النتائج.صوت — أتمتة العملية الانتخابية، من التصويت إلى النتائج.

المعالجة

Voting is the least forgiving thing to build. A bug in a normal app annoys someone; a bug here invalidates a result and the trust that goes with it.

التصويت أقلّ ما يُبنى تسامحًا. فالخلل في تطبيق عادي يزعج شخصًا؛ والخلل هنا يُبطل نتيجة ومعها الثقة.

Sawt covers the whole cycle: voters register and access their account through verified identity, cast a ballot, and results are announced through the same system. The engineering priority throughout was that every stage be verifiable rather than merely fast.

يغطي «صوت» الدورة كلها: يسجّل الناخبون ويدخلون حساباتهم بهوية مُتحقَّق منها، ويدلون بأصواتهم، وتُعلن النتائج عبر النظام نفسه. وكانت الأولوية الهندسية طوال العمل أن تكون كل مرحلة قابلة للتحقق لا سريعة فحسب.

التحديات

  1. شخص واحد وصوت واحد على جهاز لا تتحكم به

    المشكلة

    يستطيع أي أحد تثبيت التطبيق مرتين، على هاتفين، برقمين. فالهوية القائمة على الجهاز ليست هوية، وفحوص جانب العميل تُتجاوَز ببساطة.

    ما فعلته

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

  2. الجميع يصوّت في الساعة الأخيرة

    المشكلة

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

    ما فعلته

    تُبقى عمليات الكتابة صغيرة وعديمة الأثر التكراري فلا يستطيع إرسال مُعاد أن يُحسب مرتين، وتُقدَّم قراءات النتائج من تجميعات لا بإعادة حسابها مع كل طلب.

النتائج

  • Published on Google Play.منشور على Google Play.
  • Identity-verified, one-vote-per-voter enforcement on the server.هوية مُتحقَّق منها وفرض صوت واحد لكل ناخب على الخادم.

لقطات من العمل

  • صوت — كادر 1/6صوت، لقطة 1 من 6
  • صوت — كادر 2/6صوت، لقطة 2 من 6
  • صوت — كادر 3/6صوت، لقطة 3 من 6
  • صوت — كادر 4/6صوت، لقطة 4 من 6
  • صوت — كادر 5/6صوت، لقطة 5 من 6
  • صوت — كادر 6/6صوت، لقطة 6 من 6
التصميم التالي — غرفة اللعبشاهد التصاميم الـ14