Skip to content

RandomwalkDev/secure-fair-voting-system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 

Repository files navigation

secure-fair-voting-system

Instructions:

  1. Fork the github repo into your personal Github account and take a clone into your local system.

    Guide to Forking Github Repo: https://docs.github.com/en/github-ae@latest/get-started/quickstart/fork-a-repo

    Guide for cloning Github Repo: https://docs.github.com/en/repositories/creating-and-managing-repositories/cloning-a-repository

  2. Instantiate Virtual Studio code or any Development environment of your choice to complete the assessment in your local working directory.

  3. Save the files and push it into forked Github github repo.

    Guide to pushing code into Github Repo: https://docs.github.com/en/migrations/importing-source-code/using-the-command-line-to-import-source-code/adding-locally-hosted-code-to-github

  4. Record a screencast video recording demonstrating the solution in your system and upload the video into the forked github repo.

    Guide to record screen in

    a) MAC: https://support.apple.com/en-in/102618

    b) Windows: https://www.microsoft.com/en-us/windows/learning-center/how-to-record-screen-windows-11

    c) Ubuntu: https://askubuntu.com/questions/4428/how-can-i-record-my-screen

  5. Share the repository link into the Google Form: https://forms.gle/2HbLP8GNiYArZFsj8

Problem Statement:

image

Often, when people participate in a poll, they don’t have just one preferred option; they may favor candidate A but also see merit in candidate B. What if we had a voting system designed to address this issue? Imagine if each person were given 10 votes to distribute among candidates according to their preferences. This could allow for a range of voting strategies, such as allocating all 10 votes to one candidate or splitting them, like giving 4 votes to one and 6 to another.

image

problems with the new voting system

The voting system is intriguing and can capture the diverse preferences of voters, but it does have limitations and potential risks from bad actors. One concern arises if a bad actor manages to recruit about 40% of the voters. With such a significant bloc, it becomes nearly impossible for others to achieve a majority, especially since it's likely that the remaining participants will distribute their votes among various candidates. image

The Task

Your task is to develop a robust voting algorithm for a system where each voter receives 10 votes to distribute among candidates as they wish. The challenge is to ensure fairness while minimizing the risk of strategic voting manipulation. Build a backend with the following essential endpoints:

  • Create a new voting room
  • Add a new candidate
  • Add a new voter
  • Allow voters to cast their votes for candidates
  • Check the results

Our aim is to assess applicants' aptitude, innovative thinking, and their ability to comeup with new ways of solving problems, its an open ended assessment and candidate is free to innovate new ways.

Deliverables:

  • Backend APIs with required conditions (no specific Techstack)
  • video showing multiple API calls right from creating a poll till declaring the winner
  • Readme explaining steps of installation and features included
  • Live hosted API (optional)

Push the source code along with a demo video of your solution into the forked github repo. Share the repo link in the google form: https://forms.gle/2HbLP8GNiYArZFsj8

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published