A secure, modern mobile voting application built with React Native and Expo, featuring end-to-end encryption, biometric authentication, and a seamless user experience.
This mobile application provides a complete election system that allows users to:
- Register securely using National ID and initialization codes
- Authenticate using PIN or biometric authentication (fingerprint/face recognition)
- Vote for candidates in a secure and encrypted manner
- Verify voter eligibility and voting status
- Manage profile and security settings
- Ed25519 Cryptographic Keypairs - Generated on registration for secure signing
- Secure Key Storage - Private keys stored using SecureStore (native) or localStorage (web)
- PIN Protection - 4-6 digit PIN with salted hashing
- Biometric Authentication - Optional fingerprint/face recognition support
- Blind RSA Signatures - Privacy-preserving vote submission
- Smart registration detection and flow
- PIN creation and management
- Biometric enrollment and toggle
- Profile dashboard with account information
- Secure logout with session management
- Clean, modern design with purple accent theme
- Intuitive navigation and form validation
- Toast notifications for user feedback
- Loading states and error handling
- Responsive layout for all screen sizes
- Node.js (v16 or higher)
- npm or yarn
- Expo CLI
- iOS Simulator (for Mac) or Android Emulator
- Clone the repository
git clone https://github.com/psychlone77/election-system-mobile-app.git
cd election-system-mobile-app- Install dependencies
npm install- Set up environment variables Create a .env file in the root directory with your API configuration:
API_BASE_URL=your_api_url_here- Development Commands Start Development Server
npm start