An app that digitises the election process end to end: voter registration, identity-verified access, casting a vote and announcing results. Built for transparency at every stage.
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.
2 · Challenges
DETAIL 1
One person, one vote, on a device you do not control
The problem
Anyone can install the app twice, on two phones, with two numbers. Device-based identity is not identity, and client-side checks are trivially bypassed.
As built
Eligibility is bound to a verified identity checked server-side via OTP, and the ballot record itself enforces uniqueness per voter per election. The device is treated as untrusted throughout.
DETAIL 2
Everyone votes in the last hour
The problem
Election traffic is not steady. It is nothing for days and then everything at once, right before closing. A system that works in testing can fold exactly when it matters.
As built
Writes are kept small and idempotent so a retried submission cannot double-count, and reads for results are served from aggregates rather than recomputed per request.
3 · Results
3.1Published on Google Play.
3.2Identity-verified, one-vote-per-voter enforcement on the server.