Welcome Contributors
Thank you for your interest in contributing to Popcorn Vision! We welcome contributions from developers of all skill levels. This guide will help you understand our contribution process and community standards.How to Contribute
Fork the Repository
Start by creating your own copy of the repository:
- Navigate to github.com/fachryafrz/popcorn-vision
- Click the Fork button in the top-right corner
- This creates a copy under your GitHub account
Create a Feature Branch
Create a new branch for your changes:
Use descriptive branch names that clearly indicate the purpose of your changes.
Make Your Changes
- Set up your development environment (see Development Guide)
- Make your changes following the Code Style guidelines
- Test your changes thoroughly
- Run
pnpm lintto check for code quality issues
Commit Your Changes
Commit your changes with clear, descriptive commit messages:See Commit Message Conventions below for guidelines.
Commit Message Conventions
Write clear, descriptive commit messages that help others understand your changes:Format
Types
Use one of these prefixes to categorize your commit:- Add: - New feature or functionality
- Update: - Enhancement to existing feature
- Fix: - Bug fix
- Refactor: - Code restructuring without changing behavior
- Style: - Formatting, missing semicolons, etc.
- Docs: - Documentation changes
- Test: - Adding or updating tests
- Chore: - Maintenance tasks, dependency updates
Examples
Best Practices
- Use imperative mood - “Add feature” not “Added feature”
- Keep subject line under 72 characters
- Capitalize the subject line
- Don’t end subject with a period
- Separate subject from body with blank line
- Explain what and why, not how (in the body)
Pull Request Process
Before Submitting
Ensure your PR meets these requirements:- Code follows the Code Style guidelines
- All ESLint checks pass (
pnpm lint) - Changes are tested locally
- Commit messages follow conventions
- Branch is up to date with
main
PR Description Template
Provide a comprehensive description of your changes:Review Process
- Automated Checks - ESLint and build checks run automatically
- Code Review - Maintainers will review your code
- Feedback - Address any requested changes
- Approval - Once approved, your PR will be merged
Be patient during the review process. Maintainers may take a few days to review PRs.
Code of Conduct
All contributors must follow our Code of Conduct to maintain a welcoming and inclusive community.Usage and Forking Rules
- ✅ You are allowed to fork and modify this project
- ✅ You are allowed to use this project for learning and personal projects
- ❌ You are not allowed to claim this project as your own
- ✅ If you use this project, please provide proper attribution
- ✅ Contributions via pull requests are welcome
Our Pledge
We pledge to make participation in our community a harassment-free experience for everyone, regardless of:- Age
- Body size
- Disability (visible or invisible)
- Ethnicity
- Gender identity and expression
- Level of experience
- Education
- Socio-economic status
- Nationality
- Personal appearance
- Race
- Religion
- Sexual identity and orientation
Our Standards
Positive behavior includes:- Demonstrating empathy and kindness
- Being respectful of differing opinions and experiences
- Giving and accepting constructive feedback gracefully
- Accepting responsibility and apologizing for mistakes
- Focusing on what’s best for the community
- Sexualized language or imagery
- Trolling, insulting, or derogatory comments
- Personal or political attacks
- Public or private harassment
- Publishing others’ private information without permission
- Other conduct inappropriate in a professional setting
Enforcement
Instances of unacceptable behavior may be reported to @fachryafrz. All complaints will be reviewed and investigated promptly and fairly.Enforcement Actions
- Correction - Private warning for inappropriate behavior
- Warning - Warning with consequences for continued behavior
- Temporary Ban - Temporary ban from community interaction
- Permanent Ban - Permanent ban for serious or repeated violations
Issue Reporting Guidelines
Before Creating an Issue
- Search existing issues - Your issue may already be reported
- Check documentation - The answer might be in the docs
- Update dependencies - Ensure you’re using the latest version
Creating a Good Issue
Provide detailed information to help us understand and reproduce the issue:Bug Report Template
Feature Request Template
Issue Labels
Common labels used in the project:bug- Something isn’t workingenhancement- New feature or requestdocumentation- Documentation improvementsgood first issue- Good for newcomershelp wanted- Extra attention neededquestion- Further information requested
Development Best Practices
Keep PRs Focused
- One feature/fix per PR - Don’t combine unrelated changes
- Small, incremental changes - Easier to review and merge
- Split large features - Break into multiple PRs if needed
Stay Updated
Keep your fork synchronized with the main repository:Respond to Feedback
- Be open to suggestions and constructive criticism
- Respond to review comments promptly
- Make requested changes in new commits (don’t force push)
- Thank reviewers for their time and feedback
License
By contributing to Popcorn Vision, you agree that your contributions will be licensed under the MIT License.MIT License Summary
- ✅ Commercial use allowed
- ✅ Modification allowed
- ✅ Distribution allowed
- ✅ Private use allowed
- ⚠️ Liability and warranty limitations apply
Getting Help
If you need help with your contribution:- Check the documentation - Start with the Development Guide
- Search existing issues - Someone may have asked the same question
- Open a discussion - Ask questions in GitHub Discussions
- Contact maintainers - Reach out to @fachryafrz
Recognition
All contributors are valued and appreciated! Contributors will be:- Listed in the project’s contributor list
- Credited in release notes for significant contributions
- Mentioned in project documentation where applicable
Next Steps
Ready to contribute?- Read the Development Guide to set up your environment
- Review the Code Style guidelines
- Check open issues for tasks
- Look for
good first issuelabels if you’re new