π Thank you for considering contributing to SecureFileHub! We welcome contributions from the community and are grateful for your support.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Pull Request Process
- Coding Standards
- Issue Guidelines
This project and everyone participating in it is governed by our commitment to creating a welcoming and inclusive environment. Please be respectful and constructive in all interactions.
- Use the bug report template
- Include detailed reproduction steps
- Provide environment information
- Add screenshots if applicable
- Use the feature request template
- Explain the use case clearly
- Consider implementation complexity
- Check if similar features exist
- Improve README sections
- Add code comments
- Create examples and tutorials
- Fix typos and grammar
- Bug fixes
- New features
- Performance improvements
- Security enhancements
- PHP 7.4 or higher
- Web server (Apache, Nginx, or IIS)
- MySQL/MariaDB (for database features)
- Git
# Clone your fork
git clone https://github.com/yourusername/SecureFileHub.git
cd SecureFileHub
# Set up your development environment
# Option 1: Laragon (Windows)
# Copy to C:\laragon\www\SecureFileHub\
# Option 2: XAMPP
# Copy to your XAMPP htdocs folder
# Option 3: Local server
php -S localhost:8000 filemanager.php- Test with default configuration
- Test with custom database settings
- Test file operations (upload, edit, delete)
- Test database operations (if applicable)
- Test security features
- Test in different browsers
- Test responsive design
# Fork the repository on GitHub
# Clone your fork
git clone https://github.com/yourusername/SecureFileHub.git
cd SecureFileHub# Create a descriptive branch name
git checkout -b feature/amazing-new-feature
# or
git checkout -b fix/critical-bug-fix- Follow coding standards
- Add comments for complex logic
- Test thoroughly
- Update documentation if needed
# Use conventional commit messages
git commit -m "feat: add file compression feature"
git commit -m "fix: resolve security vulnerability in upload"
git commit -m "docs: update installation guide"git push origin feature/amazing-new-feature
# Create pull request on GitHub- Clear description of changes
- Reference related issues
- Include testing steps
- Update documentation if needed
- Pass all checks
<?php
// Use meaningful variable names
$fileManager = new FileManager();
// Add docblocks for functions
/**
* Sanitize file path to prevent directory traversal
* @param string $path Raw file path
* @return string Sanitized path
*/
function sanitizePath($path) {
// Implementation
}
// Use consistent indentation (4 spaces)
if ($condition) {
// Code here
}- Always validate user input
- Use prepared statements for SQL
- Implement CSRF protection
- Sanitize file paths
- Validate file types
- Use secure session management
// Use camelCase for variables
const fileManager = document.getElementById('fileManager');
// Add comments for complex logic
function toggleEditor() {
// Toggle editor visibility and handle state
}
// Use consistent formatting
if (condition) {
// Code here
}- Search existing issues
- Check documentation
- Test with latest version
- Gather necessary information
- Use appropriate template
- Provide clear title
- Include environment details
- Add reproduction steps
- Attach relevant files/screenshots
We use conventional commits for better changelog generation:
feat:New featuresfix:Bug fixesdocs:Documentation changesstyle:Code style changesrefactor:Code refactoringtest:Test additions/changeschore:Maintenance tasks
Examples:
feat: add file compression support
fix: resolve CSRF token validation issue
docs: update security configuration guide
style: improve code formatting consistency
refactor: optimize database connection handling- Security improvements
- Performance optimizations
- Mobile responsiveness
- Accessibility features
- Additional file type support
- UI/UX improvements
- Code editor enhancements
- Database feature additions
- Installation guides
- Configuration examples
- Security best practices
- Troubleshooting guides
- Documentation: Check the README and Wiki
- Issues: Search existing issues
- Discussions: Use GitHub Discussions for questions
- Email: Contact maintainers for security issues
Contributors will be recognized in:
- README contributor section
- Release notes
- GitHub contributor stats
Thank you for helping make SecureFileHub better! π