We welcome contributions of all kinds to EchoVote! Whether it's improving documentation, fixing bugs, adding new features, or writing tests, we appreciate your involvement. This guide outlines the process for contributing and how you can help make EchoVote better.
-
Reporting Bugs
- If you find a bug, please open an issue on GitHub with detailed steps to reproduce the issue.
- Include your environment details, such as Node.js version and OS.
- Provide any relevant logs or error messages.
-
Suggesting Features
- Have a feature in mind? Open a feature request by creating a GitHub issue with your ideas and use cases.
- Ensure the feature aligns with the core vision of EchoVote (i.e., decentralized, transparent voting on Bitcoin).
-
Improving Documentation
- If you notice any missing or unclear documentation, please help by improving it.
- Documentation updates can be submitted as pull requests.
-
Writing Code
- Fix bugs, implement new features, or refactor existing code.
- Before starting work on a large change, open an issue to discuss it and avoid duplication of effort.
- Ensure that your code passes existing tests and includes new tests if necessary.
- Navigate to the EchoVote repository.
- Click the "Fork" button in the top-right corner to create your copy of the repository.
- Clone your forked repository to your local machine:
git clone https://github.com/nicholas-source/echovote.git cd echovote
- Ensure you have Node.js installed (v14 or later).
- Install the required packages:
npm install
- Before starting to work, create a new branch for your changes:
git checkout -b feature/your-feature-name
- Make sure your code follows the project structure and best practices.
- Include tests where applicable.
- Write clear, concise commit messages.
- Run the test suite to ensure your changes don't break anything:
npm test
- Push your changes to your fork:
git push origin feature/your-feature-name
- Go to the EchoVote repository on GitHub and open a pull request.
- Include a description of your changes and link any related issues.
Please adhere to the following code style guidelines:
- Use TypeScript: All source files should be written in TypeScript (
.ts
files). - Linting: Make sure your code passes linting checks using ESLint. You can run linting with:
npm run lint