Thank you for your interest in contributing to TutorDraw! This document provides guidelines and instructions for contributing to the project.
By participating in this project, you are expected to uphold our community standards:
- Be respectful and inclusive
- Provide constructive feedback
- Focus on what is best for the community
- Gracefully accept constructive criticism
- Python 3.7 or higher
- Basic understanding of PyQt5
- Git installed on your system
-
Fork the Repository
# Fork the repository on GitHub # Clone your fork git clone https://github.com/yourusername/TutorDraw.git cd TutorDraw
-
Set Up Development Environment
# Create virtual environment python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install dependencies pip install -r requirements.txt # Install development dependencies (if available) pip install pytest black flake8
-
Verify Setup
python main.py
TutorDraw/
├── src/ # Main source code
│ ├── canvas.py # Core canvas functionality
│ ├── toolbar.py # Toolbar implementation
│ ├── themes.py # Theme management
│ └── ... # Other modules
├── tutorDraw/ # Alternative implementation
├── main.py # Application entry point
├── README.md # User documentation
└── CONTRIBUTING.md # This file
- Follow PEP 8 guidelines
- Use 4 spaces for indentation
- Keep lines under 88 characters
- Use descriptive variable and function names
- Add docstrings to public functions and classes
- Test your changes thoroughly
- Ensure existing functionality isn't broken
- Run the application to verify UI changes
-
Create a Feature Branch
git checkout -b feature/your-feature-name
-
Make Changes
- Write clear, concise commit messages
- Make small, focused commits
- Reference related issues in commit messages
-
Before Submitting
# Run tests if available # Check code style black src/ flake8 src/
-
Submit Pull Request
- Push to your fork
- Create PR with clear description
- Link to related issues
- Check the issues tab for reported bugs
- Reproduce the issue locally
- Fix and test thoroughly
- Include steps to verify the fix
Before implementing new features:
- Check if similar functionality exists
- Discuss the feature in an issue first
- Consider impact on performance (especially for low-end PCs)
- Ensure cross-platform compatibility
- Improve existing documentation
- Add examples and tutorials
- Fix typos and clarify confusing sections
- Update README with new features
- Enhance toolbar design
- Improve accessibility
- Optimize for different screen sizes
- Maintain lightweight performance
- Drawing tool improvements
- Performance optimizations
- Cross-platform compatibility
- Memory usage optimization
- Theme enhancements
- Toolbar layout improvements
- Animation refinements
- Keyboard shortcut additions
- New drawing tools
- Export functionality
- Collaboration features
- Integration with other tools
- Test on different operating systems
- Verify keyboard shortcuts work
- Check toolbar hide/show functionality
- Test drawing tools thoroughly
- Verify theme switching
- Test on low-end hardware if possible
- Monitor memory usage
- Check startup time
- Verify smooth drawing experience
-
Before Submitting
- Ensure code follows style guidelines
- Test thoroughly on multiple platforms
- Update documentation if needed
- Include screenshots for UI changes
-
PR Description
- Clear title describing the change
- Detailed description of changes
- Steps to test the functionality
- Reference related issues
-
Review Process
- Maintainers will review your code
- Address feedback promptly
- Be open to suggestions
- Make requested changes
- Check existing issues and documentation first
- Ask questions in issues for discussion
- Be specific about your problem or question
When reporting bugs:
- Include steps to reproduce
- Mention your operating system
- Provide screenshots if relevant
- Include error messages
Contributors will be:
- Added to the contributors list
- Mentioned in release notes
- Given appropriate credit for their work
By contributing to TutorDraw, you agree that your contributions will be licensed under the MIT License.
If you have questions about contributing:
- Check existing documentation
- Look through open issues
- Open a new issue for discussion
- Be patient - maintainers review contributions in their spare time
Thank you for contributing to TutorDraw!