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