Thank you for your interest in contributing to Vinci Clips! We welcome contributions from the community and appreciate your help in making this project better.
-
Fork and clone the repository:
git clone https://github.com/your-username/vinci-clips.git cd vinci-clips -
Install dependencies:
npm run install:all
-
Set up environment variables: Copy
backend/.env.exampletobackend/.envand fill in your values:cp backend/.env.example backend/.env
-
Start development servers:
npm start
- Frontend: TypeScript with ESLint and Prettier
- Backend: JavaScript with JSDoc comments
- Formatting: Use Prettier for consistent code formatting
- Linting: Run
npm run lintbefore submitting
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Make your changes with clear commit messages:
git commit -m "feat: add video thumbnail generation" -
Push and create a pull request:
git push origin feature/your-feature-name
We use conventional commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changesstyle:- Code style changes (formatting, etc.)refactor:- Code refactoringtest:- Adding or updating testschore:- Maintenance tasks
When reporting bugs, please include:
-
Environment information:
- OS and version
- Node.js version
- Browser (if frontend issue)
-
Steps to reproduce:
- Clear, numbered steps
- Expected vs actual behavior
- Screenshots or videos if helpful
-
Relevant logs:
- Backend logs from
backend/logs/ - Browser console errors
- Network requests (if applicable)
- Backend logs from
For new features:
- Describe the problem you're trying to solve
- Explain why this feature would be valuable
- Provide examples or mockups if possible
- Consider implementation complexity
- Bug fixes: Address issues in the GitHub issue tracker
- Performance improvements: Optimize video processing pipeline
- Test coverage: Add unit and integration tests
- Documentation: Improve setup guides and API docs
- UI/UX improvements: Enhance user interface and experience
- New platform integrations: Add support for more video platforms
- Mobile responsiveness: Improve mobile web experience
- Error handling: Better error messages and recovery
- Auto-reframing: AI-powered aspect ratio adjustment
- Caption generation: Automated subtitle creation
- B-roll integration: Context-aware supplementary content
- Social media publishing: Direct platform publishing
# Backend tests
cd backend && npm test
# Frontend tests
cd frontend && npm test
# Run all tests
npm run test:all- Unit tests: Test individual functions and components
- Integration tests: Test API endpoints and data flow
- E2E tests: Test complete user workflows
-
Code quality checks:
npm run lint npm run test -
Update documentation:
- Add JSDoc comments for new functions
- Update README if needed
- Include inline code comments for complex logic
-
Test your changes:
- Test locally with the full development setup
- Verify both frontend and backend functionality
- Check edge cases and error handling
## Description
Brief description of changes and motivation.
## Type of Change
- [ ] Bug fix (non-breaking change which fixes an issue)
- [ ] New feature (non-breaking change which adds functionality)
- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
- [ ] Documentation update
## Testing
- [ ] Unit tests pass
- [ ] Integration tests pass
- [ ] Manual testing completed
## Checklist
- [ ] Code follows project style guidelines
- [ ] Self-review completed
- [ ] Documentation updated if needed
- [ ] No console.log statements left in code- Modular routes: Keep route handlers focused and small
- Error handling: Use try-catch blocks and proper error responses
- Logging: Use the Winston logger for all output
- Validation: Validate all input data thoroughly
- Component structure: Keep components small and reusable
- Type safety: Use TypeScript interfaces and types
- State management: Use React state patterns appropriately
- Performance: Optimize renders and API calls
- Schema design: Use Mongoose schemas with proper validation
- Indexing: Add database indexes for query performance
- Data consistency: Ensure data integrity across operations
- GitHub Issues: Ask questions using the "question" label
- Documentation: Check the README and wiki first
- Code examples: Look at existing implementations
- Maintainers: Tag @maintainer-username in issues
- Email: For security issues, email [email protected]
Current focus areas (updated regularly):
- Stability: Fix existing bugs and improve error handling
- Performance: Optimize video processing and API response times
- Testing: Increase test coverage across the codebase
- Documentation: Improve developer experience with better docs
Positive behavior includes:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
Unacceptable behavior includes:
- Harassment, discrimination, or inappropriate comments
- Publishing others' private information without permission
- Trolling, insulting, or derogatory comments
- Professional misconduct
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement. All complaints will be reviewed and investigated promptly and fairly.
Thank you for contributing to Vinci Clips! Your efforts help make video content creation more accessible and powerful for everyone.