Skip to content

Korag/LocalCommunityVotingPlatform

Repository files navigation

LocalCommunityVotingPlatform

LocalCommunityVotingPlatform is an application dedicated to local communities that allows them to conduct votes on the resolutions they create.

The application consists of an API based on .NET Core Web API and a UI based on React.js framework. Application data is stored in MS SQL Server database. Access to the data is realized by Entity Framework Core. ASP.NET Core Identity was used to manage users and their roles along with a JWT token-based authentication method.

The application provides the following functionalities for the different aspects of the system:

  1. Users and their accounts
  • account creation
  • logging in
  • reset of a forgotten password
  • changing personal data
  • changing password
  • deleting user account
  1. Community resolutions
  • creating a new resolution
  • editing an existing resolution
  • listing of active resolutions (for which voting has not been completed)
  • listing of expired resolutions
  • deleting resolutions
  • displaying details of a particular resolution
  1. Voting on active resolutions
  • casting a vote on the individual resolution - for / against / abstained
  • generation of ballots (ready to print) with grouped resolutions
  • presentation of voting results on resolution details panel with annotation about users who did not participate in voting

The above-mentioned functionalities are intended for users who were divided into the following roles: Administrator and Local Community Member:

  1. The administrator creates user accounts and can manage them, including editing. The administrator also manages the whole process related to creating new resolutions, managing them and voting on them. The administrator role account cannot participate in voting intended for local community users.
  2. Users in the local community member role have access to active and archived resolutions, can cast their votes, and can view the voting results. However, they cannot directly edit their user account data (does not apply to changing the password).

Login form:

alt text

Reset user password form:

alt text

Add new user form:

alt text

User account registration email confirmation with temporary password:

alt text

Users list:

alt text

Edit user form:

alt text

Delete user modal:

alt text

User account data:

alt text

Change logged user password form:

alt text

Resolutions list:

alt text

Add new resolution form:

alt text

Active resolutions list:

alt text

Generated voting ballot:

alt text

Resolution details with voting in progress (logged-in user has not cast his vote):

alt text

Resolution details with voting results:

alt text