# Contributing to EVE Thank you for your interest in contributing to EVE! We're excited to have you join our mission to build a truly sovereign community platform. This document provides guidelines and information to help make your contribution process smooth and effective. ## Getting Started ### Prerequisites - Bun v1.2.0 or higher - Git ### Setting Up Your Development Environment 1. Fork the repository 2. Clone the fork repository: ```bash git clone [forked repository URL] git remote add upstream https://git.arx-ccn.com/Arx/Eve.git cd Eve ``` 3. Install dependencies: ```bash bun install ``` 4. Start the development server: ```bash bun run dev ``` ## Development Workflow 1. **Choose an issue**: Start by looking at open issues in our [issue tracker](https://git.arx-ccn.com/Arx/Eve/issues). Comment on the issue to indicate you're working on it to avoid duplicate efforts. 2. **Create a branch**: Create a new branch for your work: ```bash git checkout -b feature/your-feature-name ``` 3. **Make your changes**: Implement your feature or fix. 4. **Format your code**: Before committing, ensure your code follows our formatting standards: ```bash bunx biome format --write src/ ``` 5. **Commit your changes**: Write clear, concise commit messages: ```bash git commit -m "Add feature: brief description of what you did" ``` ## Code Style Guidelines We use Biome for code formatting to maintain consistent style across the codebase. Running the format command before committing ensures your code adheres to our standards: ```bash bun run lint:fix ``` ## Testing When implementing new features or fixing bugs, please include appropriate tests. Run the test suite to ensure your changes don't break existing functionality: ```bash bun test ``` ## Pull Request Process 1. **Push your changes** to your fork. 2. **Create a Pull Request** to the main EVE repository. 3. **Describe your changes** in the PR description: - What does this PR do? - Why is it needed? - How has it been tested? 4. **Address review feedback**: Be responsive to comments and be willing to make changes if requested. ## Project Structure The project uses the following technologies: - Nostr - TypeScript - Electron - Lit ## Building For development: ```bash bun run dev ``` For production you will need to have the relay repo cloned on ../Relay, then simply run: ```bash ./build.sh ``` ## Ways to Contribute There are many ways to contribute to EVE beyond writing code: ### Design We welcome contributions to improve the user interface and experience: - UI mockups and prototypes - Icon designs - Accessibility improvements - User flow diagrams ### Documentation Help improve our documentation: - User guides - API documentation - Tutorial content - Example use cases ### Testing and QA - Report bugs - Write test cases - Perform usability testing - Suggest improvements ### Community Support - Answer questions from other users - Help triage issues - Write blog posts or tutorials about EVE ## License and Legal EVE is licensed under the [GNU Affero General Public License v3.0 (AGPL-3.0)](https://www.gnu.org/licenses/agpl-3.0.en.html). By contributing to EVE, you agree that your contributions will be licensed under the same license. We do not require a separate Contributor License Agreement (CLA). ## Recognition All contributors will be recognized in our CONTRIBUTORS.md file. We value every contribution, no matter how small! --- Remember that EVE is in alpha stage, and many components are still evolving. Your contributions are helping to build a more sovereign digital future!