This document provides instructions on how to set up and build the project locally. 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
- Getting Started
- Contributing Guidelines
- Issue Management
- Communication and Collaboration
- Deadline and Completion
- Quality and Learning
Follow these steps to get started with NPB_VOTE_WEB3:
-
Clone the repository:
git clone https://github.com/jaibhedia/NPB_VOTE_WEB3.git
cd NPB_VOTE_WEB3
-
Install dependencies:
npm install
-
Configure the application:
Update configuration files if necessary. Ensure the Ethereum wallet connection details are set.
-
Run the application:
To run the frontend server use:
npm run dev
-
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.
Before diving into the learning resources, please familiarize yourself with the following contributing guidelines:
- Participants/contributors must comment on issues they wish to work on.
- Issues will be assigned on a first-come, first-serve basis by mentors or the Project Administrator (PA).
- Participants can open new issues using the provided template, but these need verification and labeling by a mentor or PA.
- Ensure issues are assigned to you before starting work.
- Each participant can work on a maximum of one issue at a time.
- Don't work on issues already assigned to others.
- Discuss issues with the team before starting work.
- Explain your approach to solving any issue in the comments for better understanding.
- Pull requests will be merged after review by a mentor or PA.
- Create PRs from branches other than
main
. - Include a descriptive summary of your work in the PR description.
- Use the format
Fixes: issue number
in your commit message when creating a pull request. - Complete assigned issues within the specified deadline. Failure to do so may result in reassignment.
- Follow project guidelines and coding style.
- Aim for structured and optimized code.
- Mistakes are allowed and part of the learning process!
Issues are managed as follows:
- Participants must comment on issues they wish to work on.
- Issues will be assigned on a first-come, first-serve basis.
- Participants can open new issues using the provided template, but these need verification and labeling by a mentor or PA.
- Ensure issues are assigned to you before starting work.
- Each participant can work on a maximum of one issue at a time.
- Don't work on issues already assigned to others.
- Discuss issues with the team before starting work.
Effective communication and collaboration are crucial for successful contributions:
- Discuss issues with the team before starting work.
- Explain your approach to solving any issue in the comments for better understanding.
Ensure timely completion of assigned tasks:
- Complete assigned issues within the specified deadline.
- Failure to meet the deadline may result in reassignment.
Learnings:
- Client-Side Development: Understanding how to build a user-friendly interface using React and TailwindCSS.
- Server-Side Development: Utilizing Node.js and Express for server-side logic and API integrations.
- Git Workflow: Understanding the Git workflow for contributing to open-source projects, including forking, branching, committing, and creating pull requests.
Focus on quality and continuous learning:
- Follow project guidelines and coding style.
- Aim for structured and optimized code.
- Mistakes are allowed and are a part of the learning process!