I’m currently studying in 12th grade at Government Model Girls Higher Secondary School. Don’t mind the word "Girls" in the name, because in higher secondary both boys and girls study.
Like schools all over the world, we have an election for each classes to select our class leader. Even in 21st century, our schools were conducting the election with ballot papers.
So I thought why not make a software for it ? This led to the creation of "sElec" – a Lobby app for conducting school elections. (I just came up with the name at this moment writing this line)
- Free, Open Source (Apache v2 licensed)
- Web based (so it works on Linux/Windows)
- 99.99% Secure
- Class & Division support
- One software for all school elections
- Easy to download and install
- Can be used for various type of elections
- Passwords for students (voters)
Run election on multiple computers in a computer lab
- Can be used for various type of elections
- Lock class-division choice to prevent fraud
There are two versions you can download :
Since I’m a FOSS guy, I recommend using the sElec Linux on Ubuntu 16.04 Xenial Xerus.
Installation is pretty simple if you do it rightly.
- Download the ".zip" file according to your system (I recommend using Linux)
- Extract the folder inside the zip file to a location of your choice (I prefer Home folder or Downloads folder)
Run the file "Lobby" inside the folder you just extracted.
If you’re using Linux you may double click on "Lobby.sh" file and choose "Execute" in the dialog that will pop out.
NOTE (Windows) – When you run "Lobby.exe", there is a chance for an error :
VCRUNTIME110.dll is missing
To fix it, see this page and read it.
After you run it, the URL "http://127.0.0.1:2020" will be opened in your default web browser :
If you got a window similar to above, installation is completed. If not try :
- Update your browser to a latest version. (I recommend Chromium or Google Chrome)
- (Linux) Run Lobby.sh in terminal and see the output. Google the error shown in output to find a solution
Okay, let’s add some candidates. For this let’s go to the admin page. Admin page’s URL is :
A login page will be shown :
Both the default username and password is "admin" :
Username : admin
Password : admin
After you login as admin, hover on the "I" symbol seen on the top of the page and choose "App Admin" :
Now you have entered the administration part of sElec. Whenever you want to enter the Election Panel, just click the "App Admin" button after you hover the "I" symbol.
The Election Panel lets you configure the election :
Here is a brief description about the options you see in that page :
- General Settings – Basic settings for election
- Manage Candidates – Add, edit and remove candidates
- Manage Voters – Generate passwords for user if you have chosen to set password for voters
- Results – View the results of election
- Voted List – See who all have voted or not in a class.
- CLEAR ALL DATA! – Clear all data stored including candidate information, votes and voter passwords
Clear All Data!
Before you start a election, ALWAYS clear data before proceeding to add candidates. So, click on the "CLEAR ALL DATA!" button colored in red and choose Ok on the dialog that comes. This will clear all data associated with election.
The page looks like this :
There are 3 types of election you can do with sElec. They are :
Normal Election (Default)
Used for school leader elections.
There will be a set of candidates for the whole school and students in each class must vote for them to become school leader
Used for class leader election.
There will be separate set of candidates for each class and students in those class must vote for their candidates to make them class leader.
Boys & Girls
Used for school leader selection from boys and girls separately.
Similar to Normal Election. But there will be separate "Boys" & "Girls" candidates list. The voter must choose their candidate from these two lists.
Number of Votes
This option tells how many votes can one voter do. If this value is changed into "2", the voter can choose 2 candidates from the list. The default value is "1".
This value indicates the maximum roll number one can enter. Example: If 5A has
60 students and 5B has
63 students, then the value should be
Password For Voters
Whether the voter need to enter password along with roll number to vote. If you enable this option, you would have to go to Election Panel -> Manage Voters and generate passwords for voters.
Add the classes that will be using sElec to vote. You can add a new class field by clicking the "+" button and remove an existing field by clicking the "-" button alongside the input.
Add the divisions that will be using sElec to vote. You can add a new division field by clicking the "+" button and remove an existing field by clicking the "-" button alongside the input.
This option tells which class should be selected by default when the voter sees the page.
This option tells which division should be selected by default when the voter sees the page.
Disable choice of class and division
The voter can change the class and division if he/she wants to. You can prevent them from doing so by enabling this option. When this is enabled the class and division remains constant according to the default class and division chose in the above setting.
After you have chose the settings, click "Save Settings" button.
Return To Election Panel
You can return to the Election Panel by choosing the activated sElec tab in the sidebar :
In this page, you can add, edit or remove candidates. You can add a new candidate field by clicking the "+" button and remove one with "-" button.
The gender option is not actually necessary unless the election type is "Boy and Girls".
Passwords for the voters can be generated in this page. This should only be done if you have enabled "Passwords" in General Settings.
Enter the roll number up to which passwords should be generated and submit the form. The passwords will be shown :
It is better to re generate passwords after a class has completed voting.
The results will have two sections "Standings" and "Graph". Both are color coded by Gold, Silver, Bronze and all others black. Gold is for 1st, Silver is for 2nd and Bronze for 3rd.
If the election type is "Class Wise", then you have to submit a form asking for class and division to get the result in that class.
In this page, you can see :
- How many votes in a class has been done
- How many didn’t vote in a class
- Time when a vote was made
There is no provision to see who has voted who. sElec does not store that data in any ways whatsoever.
We have seen the software. But, how to implement it ? Let me follow you through the procedure :
- Clear data
- Change General Settings
- Add Candidates
- Make a polling booth with a computer having sElec installed
- Form a voter line to the polling booth
- Generate Passwords in sElec (if you’re going to enable passwords)
- Enter the first voter, tell him/her the password, let him/her go to the polling booth and do his vote
- When the BEEP sound is made, make him/her leave and let the next voter inside
- Continue the process…
It is recommended to re generate the passwords at intervals like when a class completes voting.
Another interesting feature about sElec is that you can use it on a WiFi or Wired network. For this, :
- Connect the computer and a smartphone to the same WiFi network.
- Get the computer’s LAN IP address (192.168.1.2)
- Copy this IP address
In the folder where the software is installed,
– Open "Lobby.sh" if system is Linux and change "127.0.0.1:2020" to the IP address you just copied before
– Open "lobby.ini" if system is Windows and change "127.0.0.1:2020" to the IP address you just copied before
Stop the Lobby Server by running "Stop Lobby Server" file in that folder
As I stated above, no one will know who you voted for. It’s secure, guaranteed.
The data is stored in an SQLite database. The data refers to candidates info, number of votes and passwords.
- During the election, it’s impossible for one person to find this database and copy it. Even if he/she copied it, there is no use for it.
- Admin area is password protected and this password is hashed with a very secure algorithm
- Free of SQL injection and XSS attack vulnerability
If you faced any problem (however small it may be) or have any questions, feel absolute free to comment below. I’ll be more than happy to help.