StackTrek Capstone Project
Report Bug
·
Request Feature
Securevote is a secure and user-friendly application designed to facilitate electronic voting processes in various contexts, such as elections, surveys, and decision-making within organizations. This app ensures transparency, security, and ease of use, making it an ideal solution for modernizing the voting experience. The app link is secure-vote.onrender.com
Key advantages of the Electronic Voting App include:
- Security: Utilizes advanced encryption techniques to protect the integrity and confidentiality of votes.
- Accessibility: Provides a user-friendly interface that ensures people of all abilities can cast their votes.
- Auditing: Generates detailed logs to facilitate auditing and maintain the transparency of the voting process.
- Customization: Allows administrators to configure voting options, candidates, and settings to suit their specific needs.
- Scalability: Easily scales to accommodate small or large-scale voting events.
-
User Registration and Authentication: Users can create accounts and log in securely.
-
Voting: Users can cast their votes electronically for candidates or options.
-
Verification: Users can verify the status of their votes to ensure they were counted accurately.
-
Results: Users can view real-time voting results, if authorized by administrators.
-
Administrator Dashboard: Administrators have access to a dashboard for managing elections and overseeing the voting process.
-
Election Configuration: Administrators can create, configure, and schedule elections, specifying candidates, voting periods, and other settings.
-
Voter Management: Administrators can add, edit, or remove voters and monitor their voting activity.
-
Results Management: Administrators can access and export detailed voting results for analysis and reporting.
-
Security: The app includes robust security features to prevent unauthorized access and protect against tampering.
Before setting up the Electronic Voting App, make sure you have the following prerequisites:
- Node.js (version 14.0 or higher)
- npm (Node Package Manager)
-
Clone the repository to your local machine:
git clone https://github.com/emmanuelonwukwe/secure-vote.git
-
Change to the project directory:
cd secure-vote
-
Install the required dependencies:
cd server npm install
cd client npm install
-
Configure the application by creating a
.env
file in theserver
root directory and specifying the following environment variables:DATABASE_URL={your postgres database connection url} APP_ENVIRONMENT={development|production} SERVER_PORT=3000 JWT_SECRET={your_secret_key}
-
Start the application:
client npm run dev server node index.js
-
Access the app in your web browser at
http://localhost:5173
. -
Migrate your database tables by visiting this endpoint url
http://localhost:3000/api/v1/create-db-tables
-
Registration: Users can create accounts with their personal information.
-
Authentication: Log in securely with your username and password.
-
Voting: Cast your vote in the active elections.
-
Verification: After voting, verify your vote to ensure accuracy.
-
Admin Login: Access the admin dashboard using admin credentials.
-
Election Management: Create, configure, and schedule elections from the dashboard.
-
Voter Management: Add, edit, or remove voters as needed.
-
Results Management: Monitor and export voting results for analysis.
Security is a top priority for SecureVote. The following security measures have been implemented:
-
Data Encryption: Sensitive data is encrypted using industry-standard encryption algorithms.
-
Authentication: User and administrator access is protected using JWT tokens.
-
Authorization: Role-based access control ensures that only authorized individuals can perform specific actions.
-
Auditing: Detailed logs are generated to track all voting and administrative activities.
-
Regular Security Audits: The app undergoes regular security audits and vulnerability assessments.
We welcome contributions from the open-source community. If you'd like to contribute to the Electronic Voting App, please Reach out to us.
- Ochiba Gabriel (https://github.com/gabbyedgar)
- Emmanuel Onwukwe (https://github.com/emmanuelonwukwe)