Taluka Voting

Objective

The objective of this assignment is to design and implement a small-scale voting application that allows users to cast votes for candidates in a Taluka (a small administrative division). The application should include features such as a voting leaderboard displaying the count of votes given to candidates, a form for users to exercise their vote, and functionalities for updating the leaderboard dynamically. Additionally, users should be able to view a breakdown of the demographics (gender and age) of voters when clicking on the count against a candidate.

Requirements

Voting Leaderboard

The application should display a leaderboard showing the count of votes given to each candidate running for a position in the Taluka.

The leaderboard should update dynamically as new votes are cast.

Vote Submission Form

Users should be presented with a form to cast their votes. The form should include:

  • A list of candidates to choose from.
  • Options for selecting the voter's gender and age.
  • A unique identifier (ID) for the voter.

Upon submission of the form, the vote count for the selected candidate should increase, and the leaderboard should update accordingly.

Demographic Breakdown

When a user clicks on the count of votes against a candidate, the application should provide a breakdown of the voters based on gender and age.

The breakdown should be displayed in a clear and understandable format.

Technology Stack

The frontend and backend of the application should be implemented using the technology stack of the developer's choice.

The chosen stack should be suitable for developing a responsive and dynamic web application.