divin3circle / campus-voice

A decentralized voting web3 application for *campuses built on the Internet Computer.

Home Page:https://github.com/divin3circle/workshops

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

๐Ÿซ Campus Voting Website

Democracy lies at the heart of every civilization, and for this reason it is one of the most targeted areas by criminal masterminds and power addicts in our modern world. However, the recent rise of blockchain technology, specifically the Internet Computer has given everyone the power to own, control, and safeguard their personal data. Campus voice stands as a remarkable web3 application built on the Internet Computer using React, Tailwind CSS and the Juno toolkit. With Campus Voice the voting ledger is stored directly within the Internet's Computer blockchain making it immutable. This not only makes the application credible and reliable but also fast and cheap thanks to the Internet Computer's minimal gas fees. In a world where the integrity of democracy is more important than ever, Campus Voice and the Internet Computer empower individuals to seize control and protect their democratic rights. The future of democracy is evolving, and technology like this is leading the way. ๐ŸŒ๐Ÿ—ณ๏ธ

๐Ÿ“š Table of Contents

  1. Introduction
  2. Getting Started
  3. Usage
  4. Features
  5. Technologies Used
  6. Deployment
  7. Contributing
  8. License
  9. Contact

๐Ÿš€ Introduction

The Campus Voting Website is designed to streamline the campus election voting process. It leverages modern web technologies such as React, Ant Design, Tailwind CSS, and Web3, all facilitated through the Juno toolkit. This README serves as your comprehensive guide for setting up and using the application. Additionally, it is also important to note that this application simulates a real-life scenario where each campus will have a certain number of students eligible to vote. Consequently, we have simulated this scenario with 6 users per campus. See Usage for detailed instructions.

๐Ÿ› ๏ธ Getting Started

Prerequisites

Before you begin, ensure you have the following installed:

Installation

  1. Clone the repository:

    git clone https://github.com/divin3circle/workshops.git
  2. Navigate to project directory:

    cd workshops
    cd react
        ```
  3. Install project dependencies:

    npm install
    #or
    yarn install
  4. Start the development server:

    npm run dev
    #takes a few minutes to start for the first time
  5. Access the website on your localhost:3000

๐ŸŽฎ Usage

  1. Visit the website at http://localhost:3000.
  2. Sign in or create an account. You should see a place to login with your internet identity. Home page Internet identity
  3. Next click on get started to start using the application. Signup/Login
  4. On the Campus page choose any campus from the list A, B or C. This list can be increased or reduced depending on the application. Campus Select
  5. Now enter your registration number. For simplicity and demonstration purposes, valid registration numbers for the campuses are as follows:
    • Campus A: 1,2,3,4,5,6
    • Campus B: 7,8,9,10,11,12
    • Campus C: 13,14,15,16,17,18
    • NB: Entering an invalid number displays the screen below: Error
  6. Once logged in successfully you will be able to see the contestants for your chosen campus and your registration number as well as shown below: Voting page
  7. To vote for a contestant simply click on his/her card. The UI will then update to display the vote tally and show a successful pop-up message. The tally you see is relative to when you logged in with your registration number. To view a live tally return to the previous page and log in again. For demonstration purposes the contestants have different starting points in votes tally to help you visualize the voting process. Some user registration numbers have also already voted and thus can't vote again Vote tally
  8. You can logout of the application by clicking the logout button below the page.

๐ŸŒŸ Features

  • User authentication and account management on the Internet Computer.
  • Secure and transparent voting process.
  • Real-time election results.
  • Responsive design for various devices.
  • Real-time feedback from the blockchain

New Feature: Institutions can now log in to the institution section and set up election details. Visit https://your-vercel-project.vercel.app/ to view the latest update.

๐Ÿ˜Ž Future Improvements

  • OTP Authentication from the Campus admin systems
  • Multiple voting positions per campus
  • Migrating to include more than just campuses

๐Ÿ”ง Technologies Used

  • React
  • Tailwind CSS
  • Web3 (via Juno Toolkit)
  • Node.js
  • Internet

๐ŸŒ Deployments

Fleek Deployment

๐Ÿš€ Check out the live deployment of our Campus Voting Website on Fleek:

Fleek Deployment

This deployment is hosted on Fleek and is accessible for testing and usage. Feel free to explore the website and cast your votes in the campus elections.

Deployment Link: https://kpewl-saaaa-aaaad-qfvdq-cai.ic.fleek.co/

Vercel Deployment

๐Ÿš€ Our Campus Voting Website is also deployed on Vercel for your convenience:

Vercel Deployment

You can access the website on Vercel and experience its features.

Deployment Link: https://your-vercel-project.vercel.app/

๐Ÿค Contributing

We welcome contributions from the community. To contribute, follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix: git checkout -b feature-name.
  3. Make your changes and commit them: git commit -m "Add feature-name".
  4. Push your changes to your fork: git push origin feature-name.
  5. Create a pull request to the main repository.

Please make sure to follow the Code of Conduct when contributing.

๐Ÿ“ง Contact

If you have any questions or suggestions, feel free to contact us at sylusabel1@email.com.

About

A decentralized voting web3 application for *campuses built on the Internet Computer.

https://github.com/divin3circle/workshops


Languages

Language:JavaScript 97.7%Language:HTML 2.2%Language:CSS 0.1%