Level 4 Project to investigate different methods of preference aggregation in voting systems.
Find the deployment of the application at https://ewanchelley.github.io/voting/.
The GitHub repository for the application can be found at https://github.com/ewanchelley/voting.
The source code for the project can be found in the src folder. Wthin the app folder are folders containing all of the components, services and other source files.
This project was generated with Angular CLI version 12.2.9.
Node.js and npm must be installed to download the Angular CLI.
Install Angular CLI using npm install -g @angular/cli
The node_modules folder had to be removed to reduce the file size below 100MB, so the command npm install must be ran before running locally.
Run ng serve for a dev server. Navigate to http://localhost:4200/. The app will automatically reload if you change any of the source files.
Run ng build to build the project. The build artifacts will be stored in the dist/ directory.
To get more help on the Angular CLI use ng help or go check out the Angular CLI Overview and Command Reference page.
Many voting rules exist, and each may produce a different ranking of candidates given the preferences of a set of voters. For those without significant knowledge in the field of voting theory, it can be difficult to understand the differences between voting rules, and the reasons one rule may be chosen over another. This project involved the development of a web application to aid in the learning of voting concepts, and allow users to calculate the outcome of an election under different voting rules, using their own voting data. The app was evaluated and shown to be effective as a tool for calculating voting outcomes and as an educational resource.