Thank you for your interest in contributing to the Exam Countdown Extension! We welcome contributions from everyone. This document provides guidelines and information on how to contribute effectively.
- 🐛 Bug Reports: Report bugs and issues
- ✨ Feature Requests: Suggest new features or improvements
- 🛠️ Code Contributions: Submit pull requests with fixes or enhancements
- 📖 Documentation: Improve documentation, README, or code comments
- 🧪 Testing: Write or improve tests
- Fork the repository on GitHub
- Clone your fork locally
- Create a new branch for your changes
- Make your changes
- Test your changes
- Commit your changes
- Push to your fork
- Create a Pull Request
- Node.js (version 16 or higher)
- pnpm (package manager)
-
Fork and clone the repository:
git clone https://github.com/your-username/exam-countdown-extension.git cd exam-countdown-extension -
Install dependencies:
pnpm install
-
Start development server:
pnpm dev
For Firefox development:
export TARGET_BROWSER=firefox
pnpm dev- Ensure your code follows the project's style guidelines
- Update documentation if necessary
- Add tests for new features
- Ensure all tests pass
- Update the README.md if needed
- Create a descriptive pull request title and description
Use clear, descriptive commit messages. Follow this format:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changesrefactor: Code refactoringtest: Adding testschore: Maintenance tasks
Example:
feat(ui): add dark mode toggle
- Add toggle button in settings
- Implement CSS variables for theme switching
- Update popup and newtab pages
Closes #123
When reporting issues, please include:
- Clear title describing the issue
- Steps to reproduce the problem
- Expected behavior vs. actual behavior
- Screenshots if applicable
- Browser and version information
- Extension version
- Use ES6+ features
- Follow consistent naming conventions (camelCase for variables/functions)
- Use descriptive variable and function names
- Add JSDoc comments for functions
- Use Tailwind CSS classes where possible
- Follow BEM methodology for custom classes
- Maintain consistent spacing and typography
- Use semantic HTML elements
- Ensure accessibility (alt text, ARIA labels)
- Keep markup clean and minimal
- Write self-documenting code
- Keep functions small and focused
- Use meaningful variable names
- Add comments for complex logic
- Test your changes in both Chrome and Firefox
- Verify functionality works as expected
- Check for any console errors
- Test edge cases and error handling
If you need help or have questions:
- Check existing issues and discussions
- Create a new issue with the "question" label
- Join our community discussions
Thank you for contributing to the Exam Countdown Extension! 🎉