Giter VIP home page Giter VIP logo

votechain's Introduction

VoteChain

2024-05-14-11-56-36


High VoltageTech Stack


About

NPB_VOTE_WEB3 is a blockchain-based E-Voting system that leverages web technologies and the Ethereum blockchain. The project is built using a tech stack that includes JavaScript, CSS, SCSS, HTML, EJS, and Solidity.

Check this video for the details: https://youtu.be/qKsu3-Jkas0?feature=shared

r1


Features

  • Secure Voting: Utilizes the Ethereum blockchain for secure and transparent voting.
  • User-Friendly Interface: Provides an intuitive interface for voters to cast their votes.
  • Smart Contract Integration: Implements smart contracts written in Solidity for handling the voting process.

r2

r3

r4

r5


Getting Started

Follow these steps to get started with NPB_VOTE_WEB3:

  1. Clone the repository:

    git clone https://github.com/jaibhedia/NPB_VOTE_WEB3.git
    cd NPB_VOTE_WEB3
    
  2. Install dependencies:

    npm install
  3. Configure the application:

    Update configuration files if necessary. Ensure the Ethereum wallet connection details are set.

  4. Run the application:

    To run the frontend server use:

     npm run dev
  5. Access the application:

    Open your web browser and navigate to http://localhost:3000 (or a different port if configured).

If you would like to contribute to the project, please follow our contribution guidelines.

Alternatively contribute using GitHub Desktop

  1. Open GitHub Desktop: Launch GitHub Desktop and log in to your GitHub account if you haven't already.

  2. Clone the Repository:

    • If you haven't cloned the repository yet, you can do so by clicking on the "File" menu and selecting "Clone Repository."
    • Choose the repository from the list of repositories on GitHub and clone it to your local machine.
  3. Switch to the Correct Branch:

    • Ensure you are on the branch that you want to submit a pull request for.
    • If you need to switch branches, you can do so by clicking on the "Current Branch" dropdown menu and selecting the desired branch.
  4. Make Changes: Make your changes to the code or files in the repository using your preferred code editor.

  5. Commit Changes:

    • In GitHub Desktop, you'll see a list of the files you've changed. Check the box next to each file you want to include in the commit.
    • Enter a summary and description for your changes in the "Summary" and "Description" fields, respectively. Click the "Commit to " button to commit your changes to the local branch.
  6. Push Changes to GitHub: After committing your changes, click the "Push origin" button in the top right corner of GitHub Desktop to push your changes to your forked repository on GitHub.

  7. Create a Pull Request:

  • Go to the GitHub website and navigate to your fork of the repository.
  • You should see a button to "Compare & pull request" between your fork and the original repository. Click on it.
  1. Review and Submit:

    • On the pull request page, review your changes and add any additional information, such as a title and description, that you want to include with your pull request.
    • Once you're satisfied, click the "Create pull request" button to submit your pull request.
  2. Wait for Review: Your pull request will now be available for review by the project maintainers. They may provide feedback or ask for changes before merging your pull request into the main branch of the repository.


Open Source Programs

This project is part of GirlScript Summer of Code. We welcome contributions from the community to help enhance VoteChain.

gssoc


Code of Conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

License

This project is licensed under the MIT License.


Contact Us

https://www.linkedin.com/in/shantanuswami/

Contributors

Thank you for contributing to our project! Your help is greatly appreciated in making VoteChain even better. 😊

votechain's People

Contributors

abhinavpatra avatar helpinlakkad avatar jaibhedia avatar meetjain1 avatar nagamukesh avatar nandishm0618 avatar pradnyagaitonde avatar sanmarg avatar sivaprasath2004 avatar suhanipaliwal avatar yash-ainapure avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

votechain's Issues

Missing Learn.md file

Learn.md file is missing in our current repository
The learn.md file in GitHub is typically used as a resource to provide guidance, tutorials, or educational content related to a specific repository. This file can serve various purposes, such as introducing new users to the project, providing detailed instructions for using the codebase, or offering learning pathways for different topics covered by the repository.

@jaibhedia assign this issue to me I will add it . I am working under gssoc

add sign in /sign up

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

Describe the solution you'd like
A clear and concise description of what you want to happen.

Additional context
Add any other context or screenshots about the feature request here.

Automated Greeting Workflow

I propose to create a GitHub workflow named "Greetings". This workflow will automatically greet users who create new issues or pull requests in this repository. The Greeting will look like "Hi there! Thanks for opening this issue. We appreciate your contribution to this open-source project. We aim to respond or assign your issue as soon as possible."

Please assign this issue to me.

Add GitHub Desktop Contribution Instructions

I am interested in contributing to the project by adding detailed instructions on how to contribute using GitHub Desktop.

I believe that by providing clear and comprehensive guidance, we can encourage more contributors to participate in the project, especially those who prefer using GitHub Desktop for their contributions.

Could you please assign me the issue related to adding GitHub Desktop contribution instructions under gssoc24? I am excited about the opportunity to contribute to the project and help streamline the contribution process for others.

Adjust the text content display

Description

  • Adjust the text on right to display the full text, by self adjusting the content, when it is minimized and apply the same for the left, when it the mouse hovers on right

Add PR template

I would like to add a pull request template for this repository. I believe that having a standardized template will help streamline the contribution process, ensuring that all necessary information is included and making it easier for maintainers to review and merge pull requests.

Could you please assign this issue to me under GSSOC'24.

Add Topics

In GSSoC'24, GitHub Topics will help the discoverability of your project.

I see that you already have great topics on your repository!
I would recommend adding the name of the company like the software you use to build like "vs-code, ghdesktop" to improve your discoverability.

If you are happy with the topics you have, feel free to close this issue. 👍

Girlscript Summer of Code Introduction/Tracking

👋 Hi @ ,

I am Sanjay, program Manager Girlscript Summer of Code. I'll be collaborating with you on preparing your repo for GSSoC'24 Program

Why are these changes required?
After Analysing last year's contributions and feedback it would be great for students to have a couple of standard readme files on the repo to understand what the project is all about and some issues detailing what they can contribute. This will help you to see increased engagement in your repository as well.

As mentioned students get a chance to learn step by step, how to build this project as well as invite mentors to collaborate and add features to this repo. I will generate issues, which will provide guidance on how to prepare your repo for Girlscript summer of code 2024 on 10th May.

This issue will serve as a tracking issue to track all issues related to GSSoC'24. I recommend creating a new branch for every issue and opening a pull request to track changes so we can effectively collaborate with each other and merge changes when you and I feel like those changes are ready to be merged on your primary branch.

If you have any questions or concerns, please feel free to leave a comment on this issue or any of the other issues that are generated.

I look forward to working with you :octocat:

Missing Favicon

Hello @jaibhedia Favicon in missing in VoteChain , I am working under gssoc24 assign this issue to me i will add favicon to votechain to make votechain website more fascinating

Missing CONTRIBUTING.md File in Repository

The repository currently lacks a CONTRIBUTING.md file, which is an important resource for guiding potential contributors on how to engage with the project effectively. A CONTRIBUTING.md file outlines the contribution guidelines, coding standards, and procedures for submitting pull requests, thus streamlining the contribution process and ensuring consistency across contributions.

Could you please assign this issue to me under GSSOC 24.

Require improvement in Contest.sol

Hi team

I'm a participant in GSSoC and I'm interested in working on this issue. Could you please assign it to me?
List of Issues:
1.Outdated Solidity Version:
The pragma solidity 0.5.16; line uses an old version of Solidity. Consider upgrading to a more recent version, like ^0.8.0.
2.Visibility Not Specified:
The admin and state variables do not have explicit visibility. It's good practice to specify visibility (public, internal, etc.) for all state variables.
3. Modifier Error Messages:
The require statements in the modifiers onlyAdmin and validState should include error messages to aid in debugging and provide better feedback.
4.Function Name Style:
The function voterRegistration should follow camelCase naming convention, which is the standard in Solidity. Rename it to voterRegistration.
5.Require Error Messages:
The require statements within the vote function should include error messages to specify what condition failed. This helps in debugging and user feedback.
By addressing these issues, the contract will be more robust, maintainable, and aligned with best practices in Solidity development.
Could you please assign this issue to me? I'm keen to collaborate and contribute to enhancing the security.

Thank you!

Best regards,
Ashutosh Singh
(GSSOC Participant)

Improving the UI of the sign-up page

Is your feature request related to a problem? Please describe.
Improving the UI of the sign-up page to make it look more appealing to the users.

Describe the solution you'd like
1-improving the button hover effect and its color.
2-improving UI of columns of name email and password.
3- improving the responsiveness.

Additional context
Kindly assign this issue.

Improved Visual Design

@jaibhedia
**UI enhancements that can further improve the VoteChain website:

**Benifit:

  1. Implement subtle animations and interactive elements to provide feedback on user actions (e.g., button clicks, hover effects).
  2. Maintain consistent spacing, alignment, and padding across all elements to create a polished and professional look.
  3. Use clear, meaningful icons alongside text labels to enhance comprehension and visual appeal.

Additional context
Please assign me this issue and add gssoc label , i will be happy to work on this project .

Site is not opening or responding

Describe the bug
A clear and concise description of what the bug is.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

improving the user interface and upgrade the hover effect of user-login and admin-login btn

Screenshot 2024-05-28 at 11 44 52 PM

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Dark Mode and Light Mode:

@jaibhedia
**Dark Mode and Light Mode are user interface themes that change the color scheme of a website or application. These modes improve readability, reduce eye strain, and enhance the overall user experience by adapting to different lighting conditions and user preferences.

**Benefits of Dark Mode and Light Mode:

Dark Mode:

  1. Reduces Eye Strain: Especially in low-light environments.
  2. Saves Battery: On devices with OLED screens, dark pixels use less power

Light Mode:

  1. Standard Look: Consistent with most traditional document formats and many websites.

Additional context
By implementing dark mode and light mode with these strategies, VoteChain can provide a more flexible and comfortable user experience, catering to the preferences and needs of all users.

Please assign me this issue and add gssoc label , i will work on it.

Add issues

As the maintainer of a Collaborate repo, keeping Issues up-to-date will help the student community understand what they can do to contribute. Issues should vary by the easy (update documentation) to the difficult (add a new feature). The more involved you are, the more opportunities there are to collaborate.

Recommendations:

Add issues of varying difficulty to the repo often. you can add the tag GSSoC'24, good first issue etc.
Generate issues even if you plan on solving them, so the repository appears as active.
Contribute/commit often to the repo so it does not go stale.

Reference https://github.com/Recode-Hive/Stackoverflow-Analysis/issues

Implementing Multi lingual Support

I'll make sure users can view the website in their preferred language by adding a language selection option in the navbar. Users will be able to choose from available languages for a smoother browsing experience. As previously done in my last project, I used the Google translation widget to translate content on the website into multiple languages.
The below image of the website represents only in English language
WhatsApp Image 2024-05-25 at 15 38 31_0bc49bd1

Google Authentication

We can add google authentication to our website to make website more userfriendly .
@jaibhedia assign this issue to me under GSSOC24 I wil add it .

Voter Registration Overwriting and Lack of Event Emission

Describe the bug
The voterRegistration function does not check if a voter is already registered, which can lead to resetting their voting status if called multiple times for the same address. Additionally, the contract lacks events for key actions, making it difficult to track these actions off-chain.

To Reproduce
Steps to reproduce the behavior:

  1. Deploy the Contest contract.
  2. Call voterRegistration with the same address multiple times.
  3. Observe that the voter registration does not prevent re-registration.
  4. There are no emitted events to track these actions

Expected behavior

  • The contract should prevent registering a voter more than once.
  • The contract should emit events for actions like adding contestants, registering voters, and voting, for better transparency and off-chain tracking.

Desktop (please complete the following information):

  • OS: Windows 10
  • Browser: Chrome
  • Version: 122.0.6261.111

Additional context

  • To fix the voter registration issue, add a check to ensure a voter is not already registered before setting isRegistered to true.
  • Add events for contestant addition, voter registration, and voting to facilitate off-chain tracking and enhance transparency.

`function voterRegisteration(address user) public onlyAdmin validState(PHASE.reg) {
require(!voters[user].isRegistered, "Voter is already registered");
voters[user].isRegistered = true;
emit VoterRegistered(user);
}

event VoterRegistered(address voter);
event ContestantAdded(uint id, string name, string party, uint age, string qualification);
event VoteCast(address voter, uint contestantId);
`

Showing error message

When I click the link it shows an error message...
image

Desktop (please complete the following information):**

  • OS: [window]
  • Browser [Chrome]
  • Version [11]

Invalid State Transitions in Contest Smart Contract Allow Bypassing Critical Phases

Describe the bug
The changeState function in the Contest smart contract allows for non-sequential state transitions, which can lead to invalid state changes and potentially bypass critical phases of the contest.

To Reproduce
Steps to reproduce the behavior:

  1. Deploy the Contest smart contract.
  2. Call the changeState function with a state value that is not the immediate next phase (e.g., changing from reg directly to done).
  3. Observe that the state transition occurs without error.

Expected behavior
The changeState function should only allow transitions to the next immediate phase to ensure the contest proceeds in a valid and sequential manner (i.e., from reg to voting to done).

Screenshots
N/A

Desktop (please complete the following information):

  • OS: Any
  • Browser Any
  • Version Any

Smartphone (please complete the following information):

  • Device: Any
  • OS: Any
  • Browser Any
  • Version Any

Additional context
This issue can lead to scenarios where voting can be skipped entirely if the state is changed from reg to done directly. To prevent this, the changeState function should include a check to ensure only the next phase can be transitioned to.

Please assign me this issue under GSSOC'24.

404 Error Encountered When Accessing https://npb-vote-web-3.vercel.app/

Describe the bug

When attempting to access the website at the link provided (https://npb-vote-web-3.vercel.app/), a 404 error is encountered, indicating that the requested page cannot be found.

To Reproduce

  1. Go to the URL: https://npb-vote-web-3.vercel.app/
  2. Click on the link or attempt to access any page on the site.
  3. Observe the 404 error message.

Expected behavior

Upon visiting the provided URL, the website should load successfully, displaying its content without any errors.

Screenshot (351)

Add templates for issues

Issue templates are very helpful for a collaboration repo. When users identify a bug or want to add a new feature, you can provide templates so you can collect all the pertinent information you need to fix a bug or add a new feature.

We recommend creating a “Report Bug” and “Feature Request” issue template.
you can refer this: https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository

Some suggested prompts/questions you can add to a “Report Bug” template are:

Briefly describe the bug
What is the expected behavior?
Please provide step by step instructions on how to reproduce the bug
Some suggested prompts/questions you can add to a “Feature Request” issue template are:

Briefly describe your feature request
What problem is this feature trying to solve?
How do we know when the feature is complete?

Reference: https://github.com/Recode-Hive/Stackoverflow-Analysis/issues/new/choose
Click on Get Started button and copy the template to yours.

[FEAT]: Create Issue forms and make the issue options more visually appealing

Currently, there is an issue template for this repo, but no issue form which will help users in contributing.

  • I will add Issue Forms to the respective issues to make it easier for the contributor to raise it.

Here is an example of how a Bug Issue Form will look like 👇

image

  • and the issue template will look like this:

image

Dockerize the application

when we dockerize any app it helps us in many ways like when some other user run this app in different operating system and different nodejs environment then he finds many difficulty in running this app but when we dockerize the app then user can run this app in any environment easily and also it helps in run our app in future also easily

kindly assign me this issue under Gssoc'24

Workflow for closing Old PRs

Is your feature request related to a problem? Please describe.
Over time, open pull requests (PRs) can accumulate in a repository, cluttering the interface and making it difficult to focus on active development tasks. Additionally, outdated or abandoned PRs may no longer serve their intended purpose and should be closed to maintain repository cleanliness.

Describe the solution you'd like
Implement a workflow that automatically closes old PRs based on predefined criteria, such as their last update timestamp. By regularly closing PRs that have not been updated within a certain timeframe, the repository can stay organized, and contributors can focus on active and relevant PRs.

Auto Commenting when a PR is merged

This feature aims to solve the problem of inconsistent and delayed communication following the merging of PRs. By automating the commenting process, it ensures that contributors receive timely feedback and acknowledgments. It also reduces the administrative burden on maintainers, allowing them to focus more on code reviews and other critical tasks.

Could you please assign me this issue under GSSOC'24.

Workflow for Closing Old Issues

Is your feature request related to a problem? Please describe.
Over time, repositories can accumulate a large number of open issues, including some that may no longer be relevant or actively worked on. Manually closing these old issues can be time-consuming and tedious.

Describe the solution you'd like
I would like a workflow that automatically identifies and closes old issues based on certain criteria, such as no recent activity or being open for a specific duration.

Add a Home Page

Is your feature request related to a problem? Please describe.
The current home page has is like a log in page.

Describe the solution you'd like
I would like to create a home page for the website which has a nav bar that contains options for sign in and sign up , contact, about us, etc

Add .gitignore File

I observe here that in the repository you add all the node modules. So @jaibhedia please assign me the task to add '.gitignore' file for make the repository and project more professional. please assign me that task under the label of GSSoC.

Bug: Directory name is wrong in Readmemd file

Describe the bug
When we see the ReadMe.md for this repo we can see the there is wrong directory as NPB_VOTE_WEB3.git but it should be as Votechain

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'VoteChain repo'
  2. See the readme file

Expected behavior
We should replace it with VoteChain

Screenshots
image

Desktop (please complete the following information):

  • OS: [e.g. iOS]
  • Browser [e.g. chrome, safari]
  • Version [e.g. 22]

Smartphone (please complete the following information):

  • Device: [e.g. iPhone6]
  • OS: [e.g. iOS8.1]
  • Browser [e.g. stock browser, safari]
  • Version [e.g. 22]

Additional context
Add any other context about the problem here.

Improving login page

Is your feature request related to a problem? Please describe.
The login page doesn't feel good.The elements are not rounded and the text is unclear

Describe the solution you'd like
I'd like to enhance it by rounding the elements, adding text decoration, and even changing some images if you'd like.
image

Want to Add Sign In With Google button

Is your feature request related to a problem? Please describe.
We can add sign in with google button so that user don't have to fill a form and can log in directly

Visual Feedback and Confirmation

@jaibhedia
**Providing clear visual feedback and confirmation to users and it ensures that users know their actions have been recognized and understand the outcomes of their interactions with the website.

Describe the solution you'd like

  1. Display loading spinners or progress indicators during data fetching or processing actions to inform users that their request is being
    handled.
  2. Provide clear and concise success and error messages after form submissions or actions, with guidance on how to resolve issues.
  3. Allow users to undo certain actions, such as deleting an item, to prevent accidental data loss.

Additional context
By implementing these visual feedback and confirmation strategies, the VoteChain website can create a more engaging and user-friendly experience, ensuring users feel confident and informed throughout their interactions.

Please assign me this issue and add gssoc label on it , i will work on it ...

Pull Request Template Creation

I am writing to express my interest in contributing to your repository by creating a pull request template.

I believe that having a standardized template will help streamline the contribution process, ensuring that all necessary information is included and making it easier for maintainers to review and merge pull requests.

Could you please assign me the issue under gssoc24? I am excited about the opportunity to contribute to your project and help improve the workflow for all contributors.

[Feature] : Implement New Ui for login Page

Is your feature request related to a problem? Please describe.

  • In this project poor login page .
  • i will change professional Ui login page.
  • please assign me.
  • I work on this project.

Feat: Auto Commenting when an Issue is Closed by maintainer

Is your feature request related to a problem? Please describe.
Yes, the feature request is related to the problem of lack of communication and acknowledgment when issues are closed in the repository. Contributors may feel neglected or uncertain about the status of their issues if they are closed without any feedback or acknowledgment. This can lead to frustration and a decrease in motivation to contribute further.

Describe the solution you'd like
The solution is to automatically post a comment on the issue whenever it gets closed. This comment should thank the issue creator for their contribution and inform them that their issue has been closed. The message can include the issue number and a friendly greeting to make it more personal. This automation ensures that every closed issue receives a consistent and timely response, improving communication and contributor experience.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.