Thank you for considering contributing to this project! We welcome contributions from everyone.
If you find a bug, please open an issue with:
- A clear title and description
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Your environment (OS, Node version, etc.)
Feature requests are welcome! Please open an issue with:
- A clear title and description
- Use case and benefits
- Possible implementation approach
-
Fork the repository
-
Create a branch for your feature/fix
git checkout -b feature/amazing-feature
-
Make your changes
- Follow existing code style
- Keep changes focused and atomic
- Write clear commit messages
-
Test your changes
npm run dev # Test locally npm run build # Ensure build works npm run lint # Check for linting errors
-
Commit your changes
git commit -m "feat: add amazing feature"Use conventional commits:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changes (formatting)refactor: Code refactoringtest: Adding testschore: Maintenance tasks
-
Push to your fork
git push origin feature/amazing-feature
-
Open a Pull Request
- Provide a clear description
- Reference any related issues
- Include screenshots if UI changes
- Use ES6+ features
- Follow existing code patterns
- Keep functions small and focused
- Add comments for complex logic
Follow conventional commits:
type(scope): subject
body (optional)
footer (optional)
Examples:
feat(auth): add Google sign-in
fix(firestore): resolve query pagination issue
docs(readme): update installation instructions
- Test all new features locally
- Ensure existing functionality isn't broken
- Test in multiple browsers if UI changes
- Keep components in
src/components/ - Keep pages in
src/pages/ - Keep utilities in
src/utils/ - Follow existing folder structure
- Open a Discussion
- Check existing Issues
- Read the Wiki
- Be respectful and inclusive
- Welcome newcomers
- Focus on constructive feedback
- Help others learn and grow
Thank you for contributing! 🎉