Voting application : where we will go for dinner?

A voting system is a set of rules that determines how elections are conducted and how the results are determined. The design of voting rules has been deeply studied for centuries by great minds in the scientific field called social choice theory. Computational social choice (COMSOC) is a new fie...

Full description

Saved in:
Bibliographic Details
Main Author: Marcellino
Other Authors: Svetlana Obraztsova
Format: Final Year Project
Language:English
Published: 2018
Subjects:
Online Access:http://hdl.handle.net/10356/74142
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Nanyang Technological University
Language: English
Description
Summary:A voting system is a set of rules that determines how elections are conducted and how the results are determined. The design of voting rules has been deeply studied for centuries by great minds in the scientific field called social choice theory. Computational social choice (COMSOC) is a new field that was formed in the early 2000s. It combines the scientific field of social choice theory with theoretical computer science. However, there were some predecessors before the field is formed. In 1962, David Gale and Lloyd Shapley presented a proof for finding stable matchings between two sets of elements that have preferences over each other. The proof utilizes computational complexity in the algorithm. In the late 1980s, John Bartholdi, Craig Tovey, and Michael Trick proposed ways to fight against strategic manipulations in elections using computational complexity. Additionally, computers are helpful to organize large scale political elections. The interdisciplinary view of computer science and social choice theory has created a whole new field called Computational Social Choice. This project aims to explore advantages and disadvantages of different voting systems created by theorists in Computational Social Choice, by means of simulation and experimentation, i. e., allowing users to create an election using those voting systems. In this project, we explore and implement three different voting rules: Plurality Voting, Approval Voting, and Copeland Rule. A web-based approach is chosen to simulate and implement the application. The reason is for choosing a web-based approach is due to its flexibility and modularity of the application structure. As there are hundreds of different voting systems, this project aims to be modular so that more voting systems can be added for future improvement. A full-stack voting application has been developed at the end of the project. The application includes the following features: a full-fledged user login system where users can sign up and be authenticated, and then authorized to use the application. After being authorized, the users can do the following: Create an election using any of the three voting rules (Plurality, Approval, or Copeland), name the candidates, let other users vote on the election created, as well as close their own election pages.