School Election Software "sElec"


Read {count} times since 2020

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)

Features

  • 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)

  • Networking capability

    Run election on multiple computers in a computer lab

  • Highly Customizable

    • Can be used for various type of elections
    • Lock class-division choice to prevent fraud

Download

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.

Install

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)

Open

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 :

The voter registration

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

Administration

Okay, let’s add some candidates. For this let’s go to the admin page. Admin page’s URL is :

http://127.0.0.1:2020/admin

A login page will be shown :

Lobby admin login

Admin login

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” :

Lobby Indi app admin

Hover on “I” symbol 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.

Election Panel

The Election Panel lets you configure the election :

Election Panel

Election Panel

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.

General Settings

The page looks like this :

Election Panel -> General Settings

Election Type

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

  • Class Wise

    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”.

Maximum Strength

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 63

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.

Classes

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.

Divisions

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.

Add/remove classes and divisions

Default Class

This option tells which class should be selected by default when the voter sees the page.

Default Division

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 :

The sElec option lets you go to Election Panel

Manage Candidates

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”.

Manage Voters

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 :

Password generator

It is better to re generate passwords after a class has completed voting.

Results

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.

Results of election

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.

Voted List

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

Voted List

There is no provision to see who has voted who. **sElec **does not store that data in any ways whatsoever.

Implementation

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.

Networking

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

  • Start Lobby again by running “Lobby” inside the folder.

Security

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.