HLVote: Mobile E-Voting Platform Development by Muh. KhaerulHLVote: Mobile E-Voting Platform Development by Muh. Khaerul

HLVote: Mobile E-Voting Platform Development

Muh. Khaerul

Muh. Khaerul

HLVote — Hyperledger Fabric Mobile E-Voting Platform

HLVote is a mobile e-voting application built with React Native + Expo and powered by a Hyperledger Fabric backend. The project demonstrates a secure voting flow where users can enroll their identity, view available elections, select a candidate, submit a vote, and verify the transaction record through the ledger.
The frontend repository uses Expo with React Native, TypeScript, navigation, secure storage, local authentication, and mobile UI libraries. The backend includes Hyperledger Fabric chaincode, Fabric CA integration, and a TypeScript REST API layer using Express and Fabric SDK packages.

What I Built

I developed an end-to-end e-voting platform that connects a mobile voting experience with a permissioned ledger backend. The app supports identity enrollment, election browsing, candidate selection, vote confirmation, transaction submission, and transaction history inspection.
On the backend, the smart contract handles election creation, candidate creation, ballot generation, vote casting, election queries, and asset reads. The vote-casting logic validates whether the ballot, candidate, and election exist, checks whether the ballot has already been used, verifies election timing, then writes the final vote state to the ledger.

Key Features

Identity enrollment for voters using Fabric certificate-based identity.
Mobile election dashboard showing active elections, candidates, and vote totals.
Candidate selection flow with confirmation before submitting a vote.
Hyperledger Fabric transaction submission for vote recording.
Ledger-backed transaction history for transparency and auditability.
Vote status confirmation with transaction ID display.
Secure mobile storage and authentication support using Expo secure/local authentication packages.

Tech Stack

Frontend: React Native, Expo, TypeScript, React Navigation, NativeWind, Expo Secure Store, Expo Local Authentication Backend: Hyperledger Fabric, Fabric Chaincode, TypeScript, Express.js, Fabric Network SDK, Fabric CA Client Ledger: Hyperledger Fabric chaincode, QSCC transaction lookup, X.509 identity wallet, transaction validation flow

My Role

I worked across the mobile frontend, backend API, and Hyperledger Fabric integration. This included building the React Native app screens, connecting the app to the REST API, implementing the Fabric identity flow, developing chaincode functions for election and ballot logic, and exposing ledger operations through a TypeScript API.

Project Outcome

The result is a working mobile-first e-voting prototype that shows how a permissioned ledger can improve voting transparency, traceability, and auditability. Instead of storing votes in a traditional database only, the system records vote-related actions through Hyperledger Fabric transactions, allowing each vote submission to produce a verifiable transaction ID.
Like this project

Posted May 21, 2026

Developed a mobile e-voting app using React Native and Expo.io with Hyperledger Fabric for secure voting.