Every room, every delegate, every count.
A role-based, Arabic-first system for an election campaign team: build the voter database, assign scouts and delegates, track turnout live on election day and enter room-level results, without ever recording how anyone voted.
- 10+Roles, from super admin to delegate
- 4Levels: region, mehwar, markaz, qalam
- 3Phases: before, on and after the day
- Dec 2025 → Mar 2026Built in
Product and front end
The product is defined in a set of documents, scope, roles, permissions, flows and screens, and the front end is built against shared typed contracts. The UI is Arabic-first; the docs are in English so the team can author and translate.
- Product scope, roles, permissions matrix, flows and screen inventory
- Super admin, operations admin, IT, leadership and viewer dashboards
- Field roles: district and centre coordinators, scouts, fixed and mobile delegates
- Voter import, merge review and de-duplication
- Election-day turnout and results entry
- Testing with Jest, Playwright and mutation testing
The election cycle
One system across the whole cycle, scoped by geography for every role.
- 1Import voter lists
- 2Merge and de-duplicate
- 3Assign scouts to voters
- 4Assign delegates to rooms
- 5Live turnout
- 6Chase supporters not yet voted
- 7Room totals after close
- 8Reports and export
What it does
- 01
Admin side
A command room dashboard, live turnout, scout performance, live results, voter management and profiles, list import, merge review, geography, candidates, settings, audit log, system status and exports.
- 02
Field side
Scouts update their voters and drive turnout. Fixed delegates sit in one room and mark who voted. Mobile delegates and coordinators watch their centres and districts.
- 03
Vote privacy
The system never records who a voter chose. Delegates mark turnout per voter, and candidate counts are entered as totals per room after voting ends.
- 04
Matching voters
The registry number is the primary key, with name, father, date of birth and village as a fallback, and a mismatch is flagged for IT review.
- 05
Election-day locking
Identity fields and structure lock on the day, one delegate per room, and every change is in the audit log.
- 06
Any region
Region, mehwar, markaz and qalam are configured per client, so the same system runs Beqaa and Rashaya or anywhere else.
Stack
- Frontend
- React 19, Vite, TanStack Query, Zustand, Zod, Radix UI, Tailwind CSS.
- Testing
- Jest, Playwright, Stryker.
- Docs
- Scope, roles, permissions, flows, screens, data dictionary, QA acceptance.