Case study adapting an e-voting reference implementation for Ogun State, Nigeria. Academic / civic research.
# Ogun State Election-Integrity Case Study
A case study adapting an open-source e-voting reference implementation for **Ogun State, Nigeria**, focused on the **integrity and records layer** of an election system: cryptographic vote receipts, tamper-evident hash chain, audit trail, and four-tier election scoping (presidential, senate, governorship, state assembly). Built for academic and civic-research purposes — **not for use in any real election.**
**What this is NOT:** a complete e-voting solution. Voter authentication, ballot delivery to remote voters, primaries, collation across tiers, petitions, and results declaration are explicitly out of scope. See FINDINGS.md §5.3 and OGUN-ADAPTATIONS.md for the full scope discussion.
## About this project
This repository simulates the **integrity and records layer** of a Nigerian state election system, using Ogun State as concrete context. It implements four tiers of election scoping — the same hierarchy a real Nigerian voter encounters — and demonstrates how voter eligibility, ballot secrecy, and tamper evidence can be combined in a single records-layer system.
The system models:
- **20 Local Government Areas (LGAs)** — Ogun State's full set, mapped to senatorial districts
- **3 Senatorial Districts** — Ogun Central, Ogun East, Ogun West
- **4 election tiers** — Presidential (national), Senate (per-district), Governorship (state-wide), State Assembly (per-LGA)
- **Voter eligibility filtering** — voters can neither see nor cast ballots in elections outside their geographic scope
- **PVC-style voter identifiers** — matching the format of real Nigerian Permanent Voter Cards
- **Cryptographic vote receipts** — voters receive a code to verify their vote was recorded without revealing their choice
- **Tamper-evident hash chain** — each vote linked to the previous; any modification breaks the chain
- **Audit trail** — every action (logins, registrations, votes, integrity checks) recorded with timestamp, actor, and IP
For …