Please review Elections
Elections (au.com.agileware.elections) is a CiviCRM extension which provides on-line election functionality (nominations and voting) to CiviCRM.
Extension directory, https://civicrm.org/extensions/elections Repo, https://lab.civicrm.org/extensions/elections Github repo,https://github.com/agileware/au.com.agileware.elections