Introduction: Fingerprint Voting Online System (FVOS)

About: Passionate in Electronics and Hardware development

Fingerprint Voting Online System allows the voters to cast their votes in fully digitized manner by collecting and confirming his/her information via scanning the fingerprint through the device and saving the data to a Server. It has user-friendly GUI(Graphic User Interface) for casting their votes. Fingerprint voting online system helps to identify people who already gave their vote. It saves data in server as well as inside the voting device. So that double checking of votes can be done. The device is fully controlled from server, including the password, Party name. The device is easy to carry and light weight too. The result is also immediately calculated.


1. Raspberry Pi 3 Model B+

2. LCD Touch Screen 7 inch

3.USB to Serial Converter

4. R307 Optical Fingerprint Reader Sensor Module

5. Cardboard & Feather Form

6. USB Adapter 5V 3A and Cable

7. HDMI- HDMI Cable

8. Wireless Keyboard


Connect the HDMI-HDMI cable from Raspberry HDMI port to Touch Screen HDMI port. Take the USB cable and connect it from Touch Screen to USB pin of Raspberry for the working of touch. Then Connect the USB Serial Converter pins to the Fingerprint Sensor module. Connect the Serial converter to USB port of Raspberry. Make the box required as per size using cardboard and feather form. Place the Fingerprint sensor in such a way that the finger can be place properly on Fingerprint sensor. Hence Hardware is Ready


The GUI is Developed in python 3 using Tkinter library. The is the program to be executed. Before executing the program necessary packages has to be installed:

Tkinter Package (Mostly there in python)

PIL Package (For Wallpaper)

urllib Package

gspread Package

oauth2client Package

After adding all the packages , program is ready to execute. Before that, fingerprint has to be stored in sensor. For that there file to upload Finger print. Execute and store the fingerprint addressing from 9. Here I developed the GUI in such a way that 9 fingerprint can be added for a single person. Save the address in multiples of 9 (9-17,18-26,......).Here am saving the fingerprint in the sensor itself. My Server doesn't have enough space to upload a fingerprint template. But am data transfer is completely from server. After saving the fingerprint template execute the program. A windows will appear. Change the password from server. When voted a text file will also be saved on folder itself having the data of people whom they voted.


Here I have used Google Spreadsheet as my Server.

Setting up of Google Spreadsheet and API

1. Go to the Google APIs Console.

2. Create a new project.

3. Click Enable API.

4. Search for and enable the Google Drive API.

5. Create credentials for a Web Server to access Application Data.

6. Name the service account and grant it a Project Role of Editor.

7. Download the JSON file.

8. Copy the JSON file to your code directory and rename it to FVOS.json

There is one last required step to authorize the python application, and it’s easy to miss

Find the client_email inside client_FVOS.json. Back in your spreadsheet, click the Share button in the top right, and paste the client email into the People field to give it edit rights. Hit Send.

If you skip this step, you’ll get a gspread.exceptions.SpreadsheetNotFound error when you try to access the spreadsheet from Python.

For more details refer:

Then Add the fields as shown in the figure , then add the persons name and details.


After uploading the data. The Server is ready. Please don't change the row or column of field names. Since they are predefined in codes. Don't forget to download the JSON file and connect the mail id to the spreadsheet.

To get Complete File download from here:


Raspberry Pi Contest 2020

Participated in the
Raspberry Pi Contest 2020