Contributing to EasyTransfer
November 5, 2025 ยท View on GitHub
Thank you for considering contributing to EasyTransfer! We welcome contributions from the community. Please follow these guidelines to ensure a smooth contribution process.
Getting Started
-
Fork the repository on GitHub.
-
Clone your forked repository to your local machine:
git clone https://github.com/YOUR_USERNAME/EasyTransfer.git cd EasyTransfer -
Install dependencies for both client and server:
# Client cd client npm install # Server cd ../server npm install -
Create a new branch for your feature or bugfix:
git checkout -b feat/your-feature-name
Development Workflow
Running the Application
# Start the client (in /client directory)
npm run dev
# Start the server (in /server directory)
npm run dev
Code Quality
Before submitting changes, ensure your code meets quality standards:
# Lint your code
npm run lint
# Format your code
npm run format
# Run tests
npm test
# Build the project
npm run build
Making Changes
-
Follow the project's coding standards:
- Use TypeScript for type safety
- Follow existing code patterns and conventions
- Keep functions small and focused
- Write clear, self-documenting code
-
Write semantic commit messages following Conventional Commits:
<type>(<scope>): <description> [optional body] [optional footer]Types:
feat,fix,docs,style,refactor,perf,test,build,ci,choreExamples:
feat(client): add support for drag-and-drop file upload fix(server): resolve WebRTC connection timeout docs(readme): update installation instructions test(client): add unit tests for FileChunkManager -
Write tests for new features or bug fixes:
- Add unit tests in the appropriate test file
- Ensure all tests pass before submitting
- Aim for comprehensive test coverage
-
Test your changes thoroughly:
- Test WebRTC connections on different networks
- Verify file transfers work correctly
- Check UI responsiveness
- Test edge cases and error conditions
Submitting a Pull Request
-
Push your changes to your forked repository:
git push origin feat/your-feature-name -
Open a pull request on the original repository.
-
Provide a clear description:
- Explain what changes you made and why
- Reference any related issues (e.g., "Fixes #123")
- Include screenshots for UI changes
- List any breaking changes
-
Ensure CI checks pass:
- All tests must pass
- Code must be properly linted and formatted
- Build must succeed
-
Respond to review feedback:
- Address reviewer comments promptly
- Make requested changes
- Re-request review after updates
Code Review Process
- Maintainers will review your PR as soon as possible
- Reviews may request changes to improve code quality
- Once approved, a maintainer will merge your PR
- Your contribution will be acknowledged in the release notes
Types of Contributions
We welcome various types of contributions:
- ๐ Bug fixes: Fix issues reported in GitHub Issues
- โจ New features: Add new functionality (discuss in an issue first)
- ๐ Documentation: Improve README, guides, or code comments
- ๐งช Tests: Add or improve test coverage
- ๐จ UI/UX improvements: Enhance user interface or experience
- โก Performance: Optimize code for better performance
- ๐ Security: Fix security vulnerabilities
Getting Help
- Check the Project Wiki for documentation
- Review AGENTS.md for development guidelines
- Ask questions in GitHub Issues
- Read existing code to understand patterns
Code of Conduct
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what is best for the project
- Show empathy towards other contributors
Thank you for contributing to EasyTransfer! ๐