Presidential Voting system

The Presidential Voting System is a web-based application developed using React that allows users to securely vote for presidential candidates in real-time. The system features a clean, responsive interface where users can view candidates and cast their votes. It includes a dynamic vote-counting that updates live as votes are submitted. Designed with usability and transparency in mind, the platform ensures a smooth and engaging voting experience.

FEATURES

  • User Authentication
  • User Authorization
  • Voting System
  • User profile
  • Admin

STACK

  • React
  • CSS
  • Bootstrap
  • React Router
  • Supabase
  • Netlify

LINK

Tomatts Restaurant Ordering and Reservation system

Explanation of Technology used

The presidential voting system was built using React for the frontend, ensuring a responsive and interactive user experience. For routing between pages, React Router was used to manage navigation within the application smoothly.

The backend and authentication were handled using Supabase, which provided a scalable and secure platform for storing user data and votes. Authentication features in Supabase ensured that only registered users could cast a vote.

To prevent duplicate voting, Row Level Security (RLS) was enabled in Supabase. This ensures that each user can vote only once by enforcing strict rules on database access based on user identity.

Additionally, Bootstrap CSS was used to design a clean and modern user interface, making the platform visually appealing and mobile-friendly. The system also incorporated real-time vote updates using Supabase's real-time features to display accurate and dynamic vote counts.

Project Purpose and Goal

The purpose of the presidential voting system is to provide a secure, transparent, and user-friendly platform where individuals can cast votes for presidential candidates digitally. It aims to simulate real-life voting scenarios, helping users understand how online voting systems work while promoting fairness and credibility.

While the goal is to prevent duplicate voting using authentication and database-level security, enable real-time vote tracking to display accurate vote counts, create a responsive and accessible voting experience for all users, offer a seamless and simple voting process to encourage participation.

How the voting works

To participate in the voting process, users must first create an account or log in if they already have one. This ensures that every vote is tied to a verified user, preventing multiple votes from the same individual. Once authenticated, users will be presented with a list of presidential candidates.

They can then select their preferred candidate and submit their vote. After submitting, the system immediately records the vote in the database. Thanks to the implementation of Row Level Security (RLS) in Supabase, users are restricted from voting more than once.

After voting, users can also view live updates of the voting results displayed in a counter format, giving them real-time insights into how each candidate is performing.

Voting system screenshotVoting system screenshotVoting system screenshotVoting system screenshot

Future Updates

In future updates of the voting system, I plan to implement NIN (National Identification Number) validation to ensure that each voter is a verified Nigerian citizen. This will help improve the integrity of the system by making sure only eligible users participate. Similarly, I also intend to integrate VIN (Voter Identification Number) validation, which will cross-check users with the official voter registry before allowing them to vote. These features will strengthen the system's authenticity and reduce fraudulent entries.

Additionally, I want to introduce email and SMS notifications. After a user successfully casts their vote, the system will send a confirmation message to their email or phone number. This gives users confidence that their vote has been recorded properly.

I'm also considering building an advanced admin panel that allows the admin to manage candidates, monitor voting activity, and view analytics or download results in PDF or CSV format.

Want to get in touch?

Send me a message!

If you're searching for a developer, need help with something, or just want to connect, don't hesitate to get in touch.

Designed and Developed by Alao Abdul-salam.

GitHubResumeLinkedInEmail