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

Project detailsتفاصيل المشروع
- الدور
- منفردًا: الموبايل والخادم
- السنة
- 2025
- الحالة
- صدر
- بُني بـ
- React Native
- TypeScript
- OTP verification
- Firebase
- Zustand
- React Query
- Reanimated
- Restyle
- Zod
ما هو
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.
التصويت أقلّ ما يُبنى تسامحًا. فالخلل في تطبيق عادي يزعج شخصًا؛ والخلل هنا يُبطل نتيجة ومعها الثقة.
يغطي «صوت» الدورة كلها: يسجّل الناخبون ويدخلون حساباتهم بهوية مُتحقَّق منها، ويدلون بأصواتهم، وتُعلن النتائج عبر النظام نفسه. وكانت الأولوية الهندسية طوال العمل أن تكون كل مرحلة قابلة للتحقق لا سريعة فحسب.
التحديات
شخص واحد وصوت واحد على جهاز لا تتحكم به
المشكلة
يستطيع أي أحد تثبيت التطبيق مرتين، على هاتفين، برقمين. فالهوية القائمة على الجهاز ليست هوية، وفحوص جانب العميل تُتجاوَز ببساطة.
ما فعلته
تُربط الأهلية بهوية مُتحقَّق منها تُفحص على الخادم عبر رمز لمرة واحدة، ويفرض سجل الاقتراع نفسه التفرّد لكل ناخب في كل انتخاب. ويُعامَل الجهاز كغير موثوق طوال الوقت.
الجميع يصوّت في الساعة الأخيرة
المشكلة
حركة الانتخاب ليست منتظمة: لا شيء لأيام ثم كل شيء دفعة واحدة قبيل الإغلاق. والنظام الذي يعمل في الاختبار قد ينهار في اللحظة التي تهمّ بالضبط.
ما فعلته
تُبقى عمليات الكتابة صغيرة وعديمة الأثر التكراري فلا يستطيع إرسال مُعاد أن يُحسب مرتين، وتُقدَّم قراءات النتائج من تجميعات لا بإعادة حسابها مع كل طلب.
النتائج
- Published on Google Play.
- Identity-verified, one-vote-per-voter enforcement on the server.
- منشور على Google Play.
- هوية مُتحقَّق منها وفرض صوت واحد لكل ناخب على الخادم.




