Mobile Based Electoral Ballot System

SYNOPSIS

                       This project entitled “Mobile Based Ballot” is designed for users, who are willing to vote by installing this application.This application is hosted in a cloud server so that any user using this app can access this application from anywhere and through any mobile device. The application is provided with three modules such as Admin, User, and Post. In the admin module, the admin can add  new users or modify the existing users. In the user module, the users can login to the app  by using OTP verification. The users can choose the party to vote by using this app. Using the post module, the users can register complaints against any party involved in illegal activities. The public can also post the corruption details directly to election commission, using the post module.

 Introduction
             Voting system is the pillar of every democracy in which voters choose their leaders to show their presence for the way that they will be supervised. Voting scheme have grown from counting hands in previous days to system that include papers, punch card, optical scan machine and mechanical lever i.e. to the electronic voting system.
             This online voting system is the time consuming process therefore maximum of urban population is not able to vote because of their busy schedule. The fundamental idea behind secure online voting system to conquer inability of the conventional voting system as it suffers from various drawbacks such as it consumes huge volume of paper work, time, there is no personal role of higher officers, damage of electronic machines due to lack of attention. Secure online voting system is the system through which any voter can vote from anywhere in country. 
                         The main objective in this app to help the oldage people who cannot stand in a long queue for more time for voting and also for people who are always busy to save their time for voting.

For PC:
            Windows8.1 / Android Studio 2.3.3 /  Java 1.8 / PdaNet / Firebase
(Google services 11.8.0)

Front end : Android Studio
Backend : Firebase

FIREBASE
            Firebase is a backend platform for building Web, Android and IOS applications. It offers real time database, different APIs, multiple authentication types and hosting platform. This is an introductory tutorial, which covers the basics of the Firebase platform and explains how to deal with its various components and sub-components. Firebase is a mobile and web application development platform developed by Firebase, Inc. in 2011, then acquired by Google in 2014.
History
Firebase evolved from Envolve, a prior startup founded by James Tamplin and Andrew Lee in 2011. Envolve provided developers an API that enables the integration of online chat functionality into their websites. After releasing the chat service, Tamplin and Lee found that it was being used to pass application data that weren't chat messages. Developers were using Envolve to sync application data such as game state in real time across their users. Tamplin and Lee decided to separate the chat system and the real-time architecture that powered it. They founded Firebase as a separate company in April 2012.
Firebase Inc. raised seed funding in May 2012. The company further raised Series A funding in June 2013.In October 2014, Firebase was acquired by Google.In October 2015, Google acquired Divshot to merge it with the Firebase team. Since the acquisition, Firebase has grown inside Google and expanded their services to become a unified platform for mobile developers. Firebase now integrates with various other Google services to offer broader products and scale for developers. In January 2017, Google acquired Fabric and Crashlytics from Twitter to join those services to the Firebase team.According to the report, Firebase would be launching Cloud Firestore, a Document Database, in October 2017.

Services

Firebase Cloud Messaging

Formerly known as Google Cloud Messaging (GCM), Firebase Cloud Messaging (FCM) is a cross-platform solution for messages and notifications for Android, iOS, and web applications, which currently can be used at no cost.

Firebase Auth

Firebase Auth is a service that can authenticate users using only client-side code. It supports social login providers Facebook, GitHub, Twitter and Google (and Google Play Games). Additionally, it includes a user management system whereby developers can enable user authentication with email and password login stored with Firebase.

Realtime Database

Firebase provides a realtime database and backend as a service. The service provides application developers an API that allows application data to be synchronized across clients and stored on Firebase's cloud.The company provides client libraries that enable integration with Android, iOS, JavaScript, Java, Objective-C, swift and Node.jsapplications.The database is also accessible through a REST API and bindings for several JavaScript frameworks such as AngularJS, React, Ember.js and Backbone.js.The REST API uses the Server-Sent Events protocol, which is an API for creating HTTP connections for receiving push notifications from a server. Developers using the realtime database can secure their data by using the company's server-side-enforced security rules.Cloud Firestore which is Firebase's next generation of the Realtime Database was released for beta use.

Firebase Storage

Firebase Storage provides secure file uploads and downloads for Firebase apps, regardless of network quality. The developer can use it to store images, audio, video, or other user-generated content. Firebase Storage is backed by Google Cloud Storage.

Firebase Notifications

Firebase Notifications is a service that enables targeted user notifications for mobile app developers at no cost.

Firebase Dynamic Links

Firebase Dynamic Links are smart URLs that dynamically change behavior to provide the best experience across different platforms.

Firebase Advantages

·        It is simple and user friendly. No need for complicated configuration.
·        The data is real-time, which means that every change will automatically update connected clients.
·        Firebase offers simple control dashboard.
·        There are a number of useful services to choose.

Firebase Limitations

  • Firebase free plan is limited to 50 Connections and 100 MB of storage.

 Setting up a Firebase Account

There are two main steps to setting up Firebase in an Android project:
1.     Create a free Firebase account




 2.      Add Firebase to the project
You can add firebase to your project manually,


Your firebase assistant will open on the right side of the Android Studio. Here is a screenshot of mine.

You can use firebase assistant to see definition and sample codes of each firebase product. It will also add the gradle dependencies for the product that you want to add to your project.On this story, I’m going to add authentication to my project.When you click on the product that you want to add, a link will appear. After clicking on that link you will see a description of the product and step by step guide for the addition.
Create and add a Firebase Database to your Application
Step 1:Create an Firebase Account.
Step 2:Create a project in firebase console.
Step 3:Click Firebase for Android App and follow the instruction.

Step 4:When prompted,enter the app’s package name.


Step5:Download the google-service JSON file.

Step 6:Then to include the google-service plugin in your Gradle file.

 Cloudinary in Android

            Cloudinary provides support for uploading media directly from your mobile application to your Cloudinary account, without going through your servers first. This method allows for faster uploading and a better user experience. It also reduces load on your servers and reduces the complexity of your applications.Advantage of upload presets for predefining upload parameters. For details on all the available upload parameters, see the Upload Images and Upload Videos documentation and the Upload method of the Upload API Reference.
Create the Cloudinary Account

Image manipulation

The following Cloudinary URL and corresponding Android code delivers the image below in an https delivery URL, including all of the following transformations:
·         Thumbnail crop to a size of 150x150 pixels using face detection gravity to automatically determine the location for the crop
·         Rounded corners with a 20 pixel radius
·         Sepia effect
·         Overlay of the Cloudinary logo on the southeast corner (with a slight offset). The logo is scaled down to a 50 pixel width, with increased brightness, and partial transparency (opacity = 60%)
·         Rotated by 10 degrees
·         Converted to and delivered in PNG format (the originally uploaded image was a JPG)


PROJECT DESCRIPTION
Home Page


            The home page,user view  the displays the images that are flipped automatically using the view flipper concept,voting time,voting date and how to vote my application the demo video is available here. The Home page contains Navigation Drawer.The Navigation Drawer contains the links to various pages, such as Admin, User, Post.


Admin Module
            First the admin log into the app.Further the admin can manipulation this application.

          
 Next,the admin module has used to adding the new voter,sending notification to voter,adding the new candidates and view the result.The admin should choose any one from four button links such as register,notification,candidate and result.


Add Voters

The admin can adding the new voters such as voter id,name,date of birth,aadhar id etc,..the data will be stored in the firebase database using hashmap.




Add Candidates

The admin can add the candidates containing name,constitution and image url provided from cloudinary services and stored in firebase database.




Alert the Voters

When the voting time starts now,the admin send the notification to the user by using FCM services. Firebase Cloud Messaging (FCM) is a cross-platform messaging solution that lets you reliably deliver messages at no cost.


Create Firebase Cloud Messaging(FCM)





 View Result
            The  admin can view the result page who won the election.




User Module
                  The user module, the users can login to the app  contains voter id,aadhar id,ward number. The user vote my app,every user have uniquely identification for phone number by using OTP verification.so,one time can be voted.

User Login
                  If the user enters a valid username/Adhar_id/Voter_id  and Ward_no combination they will be granted access to vote on the app.


SMS Notification




                   
                After login the user,to get the One Time Password(OTP) verification message to user’s phone number.






Notification
                  Admin send notification(Voting time starts now) to the user.



Polling


                 The user can choose the party and vote them.


Post Module
               The users can register complaints against any party involved in illegal activities.The public can also post the corruption in this page.






CONCLUSION
                  Our proposal allow a voting to his/her voter through internet and also through normal handsets, therefore voter does not have to go to voting booths to vote they can vote from anywhere in India. To make our system highly secured we also have enforced the method for verification. Our system also provides high transparency of voters details at the time of registration only i.e. when voter is registering to the system then his voter Id and Aadhar number should match. The user validation process of our system is enhanced by adding  security key and one time password.Consequently, the member of state or country can believe that they alone can choose their leaders and this system allows them to vote from anywhere.



No comments:

Post a Comment

Compiler Construction Tool - ANTLR

ANTLR A set of language translation tools (formerly PCCTS).       It is one of the "Compiler Construction Tool for Programming l...