Skip to content

abdennour-GUESSOUM/INTAKHIBDZ

Repository files navigation

INTAKHIB - NFC and Blockchain-Based Mobile Voting System for Secure Elections

Overview

This project presents a secure, decentralized mobile voting application designed for presidential and legislative elections. Leveraging NFC (Near Field Communication) for voter authentication and blockchain technology for ensuring vote integrity, the system enhances electoral transparency, security, and accessibility. Developed as part of a master's thesis at Badji Mokhtar University - Annaba, Algeria, the application streamlines the voting process while addressing challenges like voter fraud, low turnout, and logistical inefficiencies.

Features

  • NFC Authentication: Securely authenticate voters using Algeria's National Biometric Electronic Identity Card (CNIBE).
  • Facial Recognition: Verify voter identity via real-time facial recognition to prevent impersonation.
  • Blockchain Integration: Immutably record votes on a blockchain (Ethereum-based) using smart contracts.
  • Multi-Factor Security: Private key validation and encrypted transactions.
  • Real-Time Results: Transparent, tamper-proof results accessible post-election.
  • User-Friendly Interface: Built with Flutter for cross-platform compatibility.

Technologies Used

  • Mobile App:
    • Flutter & Dart for UI/UX.
    • Android SDK & NFC Reader for CNIBE scanning.
  • Backend:
    • Firebase for authentication and data storage.
  • Blockchain:
    • Solidity for smart contracts.
    • Truffle Framework & Ganache for local blockchain deployment and testing.
  • Tools:
    • Android Studio for development.
    • Git for version control.

Installation

  • Clone the Repository:
  • Install Dependencies:
    • flutter pub get
  • Set Up Firebase:
    • Create a Firebase project and update google-services.json (Android)
  • Deploy Smart Contracts:
    • truffle migrate --network ganache
  • Run the App:
    • flutter run

Usage

  • Launch the App: Open the app follow instructions on the onboarding screens.
  • NFC Authentication:
    • Enter the Machine Readable Zone (MRZ) code from your CNIBE.
    • Place the CNIBE card against the phone to start the scannig process via NFC.
  • Facial Recognition: Capture a live photo for real time identity verification.
  • Private Key Validation: Enter the unique private key provided.
  • Vote:
    • Select a candidate/party.
    • Cast and confirm your choice with a secure PIN.
  • View Results: Access real-time results post-election via the blockchain explorer once elections closed.

Screens UI

Onboarding screens

image

MRZ card inforamations input

image

ID Card successfully scanned

dsq

Facial authentication ( success | failure )

image image image image image

Delivered private key input

image image

Main screens ( Home | Vote | Results | Settings )

image image image image

Diffenrent voting phases screens ( candidate selection | vote casting | vote confirmation )

image image image image image image image image image image image

Results screens

image image image

Acknowledgments

  • Badji Mokhtar University - academic support.
  • Flutter, Firebase, and Truffle communities for open-source tools.

Note: This project is still in development.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published