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:
- Users and their accounts
- account creation
- logging in
- reset of a forgotten password
- changing personal data
- changing password
- deleting user account
- 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
- 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:
- 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.
- 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:
Reset user password form:
Add new user form:
User account registration email confirmation with temporary password:
Users list:
Edit user form:
Delete user modal:
User account data:
Change logged user password form:
Resolutions list:
Add new resolution form:
Active resolutions list:
Generated voting ballot:
Resolution details with voting in progress (logged-in user has not cast his vote):
Resolution details with voting results: