Welcome to Uchaguzi Digital

Kenya's Digital Voting Platform โ€” a comprehensive guide for administrators, voters, and polling agents on how to use the system effectively and securely.

๐Ÿ”ด Admin Guide ๐ŸŸข Voter Guide ๐Ÿ”ต Agent Guide

๐Ÿ  Welcome All Users

Uchaguzi Digital (meaning "Digital Election" in Swahili) is Kenya's digital voting platform designed to make elections transparent, accessible, and secure. The platform supports three types of users:

๐Ÿ”ด

Election Administrator

Creates and manages elections, candidates, political parties, and approves polling agents.

๐ŸŸข

Voter

Browses active elections, casts votes for candidates across 6 elective positions, and views results.

๐Ÿ”ต

Polling Agent

Reports polling station tallies, verifies digital results against physical counts, and flags disputes.

โ„น๏ธ
This guide covers all features for each role. Use the sidebar or search bar to quickly jump to any topic.

๐Ÿ“ Registration All Users

New users must create an account before accessing the platform. Follow these steps:

1

Open the App & Tap "Register Now"

On the login screen, tap the Register Now link at the bottom to open the registration page.

2

Fill in Personal Information

Enter your Full Name, National ID Number, Email Address, and Phone Number. Your National ID must be unique โ€” duplicate IDs are not allowed.

3

Select Your Location

Choose your County, then Sub-County, then Ward using the cascading dropdown menus. This determines which candidates you'll see when voting.

4

Choose Your Role

Select either Voter or Polling Agent. Voter accounts are activated immediately. Agent accounts require admin approval before you can access the full agent dashboard.

5

Set Your Password

Create a secure password and confirm it. Use the eye icon to toggle password visibility. Tap Create Account to complete registration.

โš ๏ธ
Polling Agents: After registration, your account will be in a "Pending Approval" state. An administrator must approve your account before you can report or verify results.

๐Ÿ”‘ Login All Users

Returning users can log in with their registered credentials:

1

Enter Your Email Address

Type the email address you used during registration.

2

Enter Your Password

Type your password. Use the eye icon to show/hide it for accuracy.

3

Tap "Login"

You'll be redirected to the appropriate dashboard based on your role โ€” Admin Dashboard, Voter Dashboard, or Agent Dashboard.

๐Ÿ’ก
If you see an error, check your email and password. Common errors include "wrong-password" and "user-not-found".

๐Ÿ‘ฅ User Roles All Users

The system has three distinct roles, each with different permissions:

RoleAccess LevelKey Capabilities
Admin Full access Create/manage elections, add candidates & parties, approve agents, view all results
Voter Voting & results Browse elections, cast votes (one per position per election), view results
Polling Agent Reporting & verification Submit polling station tallies, verify digital vs. physical counts, flag disputes
โ„น๏ธ
Admin accounts cannot be created through the registration page โ€” they are provisioned separately at the system level.

๐Ÿ“Š Admin Overview Admin

After logging in as an administrator, you land on the Admin Dashboard with a bottom navigation bar containing four tabs: Overview, Elections, Parties, and Agents.

Welcome & Statistics

The Overview tab greets you with "Karibu, [Your Name]!" and displays four statistics cards:

๐Ÿ“‹

Total Elections

The total count of all elections created in the system.

๐ŸŸข

Active Elections

Elections currently open for voting.

๐Ÿ•

Upcoming Elections

Elections scheduled but not yet activated.

๐Ÿ›ก๏ธ

Pending Agents

Agent accounts waiting for your approval.

Quick Actions

Six action cards give you fast access to core admin functions:

ActionWhat It Does
Create New ElectionOpens the election creation form
Manage CandidatesOpens the election list to manage candidates
View ResultsOpens the Results Dashboard
Manage Political PartiesSwitches to the Parties tab
Manage Active ElectionsSwitches to the Elections tab
Manage AgentsSwitches to the Agents tab

๐Ÿ—ณ๏ธ Manage Elections Admin

Creating a New Election

1

Tap "Create New Election" or the + Button

From the Overview or Elections tab, tap the create action or the floating action button labeled New Election.

2

Enter Election Details

Fill in the Election Title (e.g., "Kenya General Election 2027") and a Description.

3

Set the Election Period

Choose a Start Date and End Date using the date pickers. Only future dates can be selected.

4

Select Election Positions

Choose which positions are part of this election using the filter chips: President, Governor, Senator, Member of Parliament, Woman Representative, and Member of County Assembly (MCA). Use "Select All" to pick all six.

5

Tap "Create Election"

The election is saved with an Upcoming status. You can activate it later from the Elections tab.

Managing Existing Elections

The Elections tab lists all elections with their status badge (Active, Upcoming, or Completed). Tap the โ‹ฎ menu on any election card for these options:

OptionDescriptionAvailable When
Manage CandidatesAdd, edit, or remove candidates for this electionAlways
ActivateChange status from Upcoming to Active โ€” voters can now voteUpcoming only
End ElectionChange status from Active to Completed โ€” voting closesActive only
View ResultsOpen the Results Dashboard for this electionAlways
DeletePermanently remove the election (confirmation required)Always
๐Ÿšซ
Warning: Deleting an election is permanent and cannot be undone. All associated data will be removed.

๐Ÿ‘ค Manage Candidates Admin

Each election has its own set of candidates organized by position.

Adding a Candidate

1

Open Candidate Management

From the Elections tab, tap โ‹ฎ โ†’ Manage Candidates on an election, or use the "Manage Candidates" quick action.

2

Tap the + "Add Candidate" Button

A bottom sheet will slide up with the candidate form.

3

Fill in Candidate Details

Enter the Candidate Name, select their Political Party (from registered parties or "Independent"), and choose the Position they are running for.

4

Set Geographic Area (If Required)

Depending on the position, you may need to specify location:

  • President: No geography needed (national position)
  • Governor / Senator / Woman Rep: Select County only
  • Member of Parliament: Select County โ†’ Sub-County
  • MCA: Select County โ†’ Sub-County โ†’ Ward
5

Tap "Add Candidate"

The candidate appears in the list under the appropriate position filter.

Editing & Deleting Candidates

๐Ÿ›๏ธ Political Parties Admin

Manage the list of political parties that candidates can be associated with.

Adding a New Party

1

Go to the Parties Tab

Navigate to the Parties tab in the bottom navigation bar.

2

Tap the + "New Party" Button

A dialog opens where you can enter party details.

3

Enter Party Name & Abbreviation

For example: Name = "United Democratic Alliance", Abbreviation = "UDA".

4

Choose an Icon or Upload a Logo

Toggle between Icon mode (select from 25 built-in icons) or Logo mode (upload an image from your gallery โ€” it will be stored in Firebase Storage).

5

Save the Party

The party appears in the list immediately and becomes available when adding candidates.

You can edit or delete any party using the icons on each party card.

๐Ÿ›ก๏ธ Approve Agents Admin

Polling agents who register through the app require admin approval before they can access the agent dashboard.

1

Go to the Agents Tab

The Agents tab in the bottom navigation shows a badge count of pending approvals.

2

Review Agent Details

Each pending agent shows their name, email, and registered location (Ward, Sub-County, County).

3

Tap "Approve"

The agent's account is activated and they gain full access to the Agent Dashboard. The pending count decreases.

๐Ÿ’ก
When there are no pending approvals, the tab displays "No pending agent approvals."

๐Ÿ“ˆ View Results (Admin) Admin

Admins have full access to the Results Dashboard with detailed analytics:

Results include bar charts and pie charts showing vote counts, percentages, leading candidates, and detailed ranking tables.

๐Ÿก Voter Dashboard Overview Voter

After logging in as a voter, you land on the Voter Dashboard โ€” your central hub for elections.

Dashboard Layout

The dashboard greets you with "Karibu, [Your Name]!" along with your role and registered location (Ward, Sub-County, County). Pull down to refresh the page at any time.

Quick Actions

๐Ÿ—ณ๏ธ

Vote

Jump straight to the election list to cast your vote in active elections.

๐Ÿ“Š

Results

View results, charts, and analytics for completed elections.

๐Ÿ“‹

Elections

Browse all available elections โ€” active, upcoming, and completed.

Active & Upcoming Elections

Below the quick actions, you'll see two sections:

๐Ÿ“‹ Browse Elections Voter

The Election List screen organizes elections into three tabs:

TabStatus BadgeAction on Tap
Activeโ— ActiveOpens the Voting Page to cast your vote
Upcomingโ— UpcomingNo action โ€” voting not yet open
Completedโ— CompletedOpens the Results Dashboard

Each election card displays the title, description, and position chips showing which offices are being contested (e.g., President, Governor, Senator).

โœ… Casting Your Vote Voter

This is the most important action in the system. Follow each step carefully:

1

Open an Active Election

From the Voter Dashboard or Election List, tap on an active election or its Cast Your Vote button.

2

Vote Position by Position

You'll see a progress bar and a position indicator (e.g., "1/6 President"). Each screen shows candidates for one position at a time.

3

Select Your Preferred Candidate

Tap on a candidate card to select them. The selected card highlights with a colored border and checkmark. You see only candidates relevant to your registered geographic area.

4

Navigate Between Positions

Use the Next button to proceed to the next position, or Previous to go back and change a selection. You can skip a position if you don't wish to vote for it.

5

Review Your Votes

After the last position, tap Review Votes to see a summary of all your selections before submitting.

โ„น๏ธ
Geographic Filtering: You'll only see candidates registered in your area. For example, MCA candidates are filtered by your ward, MP candidates by your sub-county, and Governor/Senator candidates by your county. Presidential candidates are shown to all voters.

๐Ÿ” Review & Submit Voter

The confirmation screen is your last chance to verify your choices before final submission.

What You'll See

Submitting Your Vote

1

Review All Selections

Carefully check each position. Tap the edit icon on any position to go back and change it.

2

Tap "Submit Votes"

A final confirmation dialog appears: "Are you absolutely sure you want to submit your votes? This action is irreversible."

3

Confirm with "Yes, Submit"

Your votes are recorded atomically (all positions at once). A green checkmark screen confirms: "Vote Submitted! Your vote has been recorded successfully."

๐Ÿšซ
Irreversible Action: Once submitted, your votes cannot be changed or retracted. The system prevents double voting โ€” you can only vote once per election.

๐Ÿ“Š View Results (Voter) Voter

After voting or when an election is completed, you can access the Results Dashboard to view election outcomes.

How to Access Results

What You Can See

The results dashboard provides the same analytics available to admins:

๐Ÿ”ฐ Agent Overview Agent

Polling agents help ensure election integrity by reporting and verifying results at their assigned stations.

Account Activation

After registration, your agent account is in "Pending Approval" state. You'll see:

Once an admin approves your account, you gain access to the full Agent Dashboard.

Agent Dashboard (After Approval)

The dashboard greets you with "Karibu, [Your Name]!" and your role as "Polling Station Agent" along with your location badge. Three main actions are available:

๐Ÿ“‹

Report Results

Submit vote tallies from your polling station for each position.

โœ”๏ธ

Verify Results

Compare digital tallies against physical counts and flag any discrepancies.

๐Ÿ“Š

View Results

Access the Results Dashboard to see election analytics and charts.

๐Ÿ“‹ Report Results Agent

Submit vote counts from your polling station for verification against the digital tallies.

โ„น๏ธ
All reports will be verified before being added to official results.
1

Select an Election

Choose the active election you're reporting for from the dropdown.

2

Select a Position

Choose the elective position (e.g., President, Governor, etc.).

3

Set the Polling Area

Select the County โ†’ Sub-County โ†’ Ward for your polling station using the cascading dropdowns.

4

Load & Enter Candidate Vote Counts

Tap Load Candidates to fetch the candidate list. For each candidate, enter the vote count from your physical tally sheets.

5

Submit the Report

Tap Submit Report. The report is saved for admin review and verification.

โœ”๏ธ Verify Results Agent

Review submitted reports and compare digital tallies against physical counts.

1

Open the Verify Results Page

From the Agent Dashboard, tap "Verify Results". You'll see a list of all submitted reports. Pull down to refresh.

2

Expand a Report

Tap on a report to expand it. You'll see the detailed vote breakdown per candidate with vote counts and percentages.

3

Verify or Dispute

If the numbers match your physical tally, tap Verify (green button). If there's a discrepancy, tap Dispute (red button) and provide a reason in the text dialog. The admin will be notified to review.

๐Ÿ’ก
Verified reports show a green "Verified" badge. Disputed reports are flagged for admin review.

๐Ÿ—บ๏ธ Results & Analytics All Users

The Results Dashboard provides comprehensive election analytics across multiple geographic levels.

Geographic Analysis Levels

๐Ÿ‡ฐ๐Ÿ‡ช

General Results

Nationwide aggregated results with position tabs, bar charts, and detailed ranking tables.

๐Ÿ™๏ธ

County Results

Select from any of Kenya's 47 counties. View a grid of all counties or use the dropdown.

๐Ÿ“

Sub-County Results

Select County โ†’ Sub-County to drill down into sub-county level data.

๐Ÿ“Œ

Ward Results

The most granular view: County โ†’ Sub-County โ†’ Ward with full chart analytics.

Understanding the Charts

Quick View by Position

On the main Results Dashboard, use the horizontal position chips (President, Governor, Senator, etc.) to instantly load a chart for any position without navigating to a separate page.

โ“ Frequently Asked Questions

General

Q: What positions can I vote for?

The system supports six elective positions: President, Governor, Senator, Member of Parliament, Woman Representative, and Member of County Assembly (MCA).

Q: Why don't I see all candidates?

Candidates are filtered based on your registered geographic location. You'll only see candidates relevant to your County, Sub-County, and Ward. Presidential candidates are visible to all voters.

Q: Can I change my vote after submitting?

No. Votes are final and irreversible. The review screen is your last opportunity to make changes before submitting.

Q: Can I vote more than once in the same election?

No. The system prevents double voting. Once you've submitted your votes for an election, the Cast Your Vote button is replaced with a โœ… Voted badge.

Accounts & Access

Q: Why can't I select "Admin" during registration?

Admin accounts are provisioned at the system level and cannot be self-registered for security reasons.

Q: I registered as an agent but can't access the dashboard โ€” why?

Agent accounts require admin approval. You'll see a "Pending Approval" screen until an administrator activates your account. Use the Check Status button to refresh.

Q: How do I log out?

Tap the Logout button in the top-right corner of the app bar on your dashboard.

Elections

Q: What do the election statuses mean?

StatusMeaning
UpcomingElection created but not yet open for voting
ActiveVoting is currently open โ€” voters can cast their votes
CompletedVoting has ended โ€” results are available for viewing

Q: How do I activate an election?

Admin only: Go to the Elections tab, tap the โ‹ฎ menu on an Upcoming election, and select "Activate".

Q: Can I view results while an election is still active?

Yes. Both admins and voters who have already voted can access the Results Dashboard for active elections.