An Election electronic-voting (e-voting) mobile application built with Flutter.
- Description
- Packages Used
- Install
- Screenshots
- Splash Screen
- Login and Registration
- Voter ID Error Message
- Email Verification Page
- Fingerprint Page
- Home Page
- Election Vote Page
- Election Stats Page
- Provincial Election Vote Statistics Page
- Profile Page
- Voting Instructions Page
- Election FPTP & PR Voting Page
- Three-step Vote Verification Process Page
- Election Vote History
“Elector” is a mobile application that uses three steps of voting verification process as well as end to end data encryption. The primary goals of “elector” are to preserve election integrity, provide accessibility to both domestic and overseas citizens, produce accurate voting results, reduce the election cost, eliminate the use of paper ballots, thwart any illegal acts, and to raise the voter turnout. This project was developed using the Flutter framework, which is a software development kit used for developing multi-platform applications from a single codebase. The frontend was built with the Dart programming language, and the Firebase database was used as the backend. Because this is the first version of the app, there are numerous opportunities for improvements and new features.
Inorder to register in the system, the user must enter a voter ID that is registered in the DB and a voter ID that has not been used by another user. The registered Voter IDs in the DB are: 1001, 1002, 1003, 1004, and 1005. After entering the personal information, an email verification mail will be sent to the email account that the user has given. So, the user is required to give a genuine email account. After confirming their email, the user will have to enable fingerprint scan. Without enabling it, the user will not gain access to the main page or system. Bear in mind that this app will not work in a smartphone without a biometric technology. Only one biometric scan i.e. fingerpint scan, has been inegrated in the app with plans to integrate more in the future.
This app was created with the main goal of assisting the election process in Nepal. Currently, there are three types of election in Nepal: General election, Provincial election and Local election. This app only implements the General election and Local election. This app uses one single-member nation-wide constituency for Federal Election FPTP (First-Past-The-Post) voting method instead of the 165 single-member constituencies in the FPTP voting method as of now. It also uses one single-member provincial-wide constituencies for Provincial Election FPTP (First-Past-The-Post) voting instead of the 330 single-member constituencies in the FPTP voting method.
flutter_riverpod and GetX was used for the state management. GetX was also used for navigation and getting dialog box. The project was built using the MVC pattern. The use of Flutter Framework makes the app available for both iOS and Android devices. Hence, the app was not designed for web and desktop version. The app is responsive only on mobile and tablet devices. Inorder to register in the system, the user must enter a voter ID that is registered in the DB and a voter ID that has not been used by another user. The registered Voter IDs in the DB are: 1001, 1002, 1003, 1004, and 1005. After entering the personal information, an email verification mail will be sent to the email account that the user has given. So, the user is required to give a genuine email account. After confirming their email, the user will have to enable fingerprint scan. Without enabling it, the user will not gain access to the main page or system. Bear in mind that this app will not work in a smartphone without a biometric technology. Only one biometric scan i.e. fingerpint scan, has been inegrated in the app with plans to integrate more in the future.
This app was created with the main goal of assisting the election process in Nepal. Currently, there are three types of election in Nepal: General election, Provincial election and Local election. This app only implements the General election and Local election. This app uses one single-member nation-wide constituency for Federal Election FPTP (First-Past-The-Post) voting method instead of the 165 single-member constituencies in the FPTP voting method as of now. It also uses one single-member provincial-wide constituencies for Provincial Election FPTP (First-Past-The-Post) voting instead of the 330 single-member constituencies in the FPTP voting method.
- Register using their email address and voter ID (must be registered in the DB and must not be used by another user).
- Riew the ongoing and upcoming election.
- Change their profile picture and password.
- Vote in the election and view the live or post results of the election.
- View their voting history.
This app has an admin panel which was also made from Flutter Framework (Flutter Web). You can find it here
- flutter_riverpod: ^1.0.4
- get: ^4.6.5
- font_awesome_flutter: ^10.1.0
- shared_preferences: ^2.0.15
- dotted_border: ^2.0.0+2
- image_picker: ^0.8.5+3
- lottie: ^1.3.0
- carousel_slider: ^4.1.1
- firebase_core: ^1.24.0
- cloud_firestore: ^3.5.1
- firebase_auth: ^3.11.2
- firebase_storage: ^10.3.11
- local_auth: ^2.1.2
- flutter_secure_storage: ^6.0.0
- intl: ^0.17.0
- charts_flutter: ^0.12.0
git clone https://github.com/anishghale007/elector
flutter pub get

























