First off, thank you for considering contributing to our project! 🎉 It's people like you that make the open source community such a fantastic place to learn, inspire, and create.
This repository participates in Hacktoberfest 2025. To ensure your contribution counts:
- ✅ Make sure your PR is against a repository with the
hacktoberfesttopic - ✅ Your PR should be labeled
hacktoberfest-acceptedby maintainers - ✅ Your PR must not be spam (low-quality, self-promotional, or disruptive)
- ✅ Your PR should add meaningful value to the project
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before you begin, ensure you have:
- Node.js (v18 or higher)
- npm or yarn
- Git
- A GitHub account
-
Fork the repository
# Click the Fork button on GitHub -
Clone your fork
git clone https://github.com/YOUR_USERNAME/Hacktoberfest-2025.git cd Hacktoberfest-2025 -
Add upstream remote
git remote add upstream https://github.com/ORIGINAL_OWNER/Hacktoberfest-2025.git
-
Install dependencies
npm install
-
Start the development server
npm run dev
Look for issues labeled with:
good first issue- Perfect for newcomershacktoberfest- Specifically for Hacktoberfesthelp wanted- We need your expertisebug- Something needs fixingenhancement- New features or improvements
# Create and switch to a new branch
git checkout -b feature/your-feature-name
# or for bug fixes
git checkout -b fix/bug-description- Write clean, readable code
- Follow our coding standards (see below)
- Add tests for new features
- Update documentation if needed
- Ensure all tests pass
We use Conventional Commits for our commit messages:
# Examples of good commit messages
git commit -m "feat: add user authentication system"
git commit -m "fix: resolve login button styling issue"
git commit -m "docs: update API documentation"
git commit -m "test: add unit tests for user service"# Push to your fork
git push origin feature/your-feature-nameThen create a Pull Request on GitHub with:
- A clear title describing what you've done
- A detailed description of your changes
- Screenshots (if applicable)
- References to related issues
- Use TypeScript for type safety
- Follow ESLint and Prettier configurations
- Use meaningful variable and function names
- Write JSDoc comments for functions
- Prefer const over let, avoid var
// ✅ Good
const calculateTotalPrice = (items: Item[]): number => {
return items.reduce((total, item) => total + item.price, 0);
};
// ❌ Bad
var calc = (arr) => {
let tot = 0;
for (let i = 0; i < arr.length; i++) {
tot += arr[i].price;
}
return tot;
};- Use functional components with hooks
- Use TypeScript interfaces for props
- Keep components small and focused
- Use proper error boundaries
// ✅ Good
interface ButtonProps {
children: React.ReactNode;
onClick: () => void;
variant?: 'primary' | 'secondary';
}
const Button: React.FC<ButtonProps> = ({
children,
onClick,
variant = 'primary'
}) => {
return (
<button
className={`btn btn-${variant}`}
onClick={onClick}
>
{children}
</button>
);
};- Use Tailwind CSS utility classes
- Avoid custom CSS when possible
- Use semantic class names for custom styles
- Ensure responsive design
- Write tests for new features
- Aim for at least 80% code coverage
- Use descriptive test names
- Follow AAA pattern (Arrange, Act, Assert)
// ✅ Good test
describe('calculateTotalPrice', () => {
it('should return 0 for empty items array', () => {
// Arrange
const items: Item[] = [];
// Act
const result = calculateTotalPrice(items);
// Assert
expect(result).toBe(0);
});
});# Run all tests
npm run test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage- Update README.md if you add new features
- Add JSDoc comments to functions
- Update API documentation for backend changes
- Include code examples in documentation
-
Before submitting, ensure:
- All tests pass
- Code follows our style guidelines
- Documentation is updated
- No console.log statements in production code
- TypeScript compiles without errors
-
PR Title Format:
[Type] Brief description of changes Examples: [Feature] Add user profile management [Fix] Resolve authentication timeout issue [Docs] Update contributing guidelines -
PR Description should include:
- What changes were made and why
- Screenshots (for UI changes)
- How to test the changes
- Any breaking changes
- Related issue numbers
-
After submission:
- Respond to feedback promptly
- Make requested changes in the same branch
- Be patient - reviews take time!
| Label | Description |
|---|---|
good first issue |
Perfect for newcomers |
hacktoberfest |
Hacktoberfest-specific issues |
help wanted |
We need community help |
bug |
Something isn't working |
enhancement |
New feature or request |
documentation |
Improvements to docs |
duplicate |
This issue already exists |
invalid |
This doesn't seem right |
wontfix |
This won't be worked on |
Contributors will be recognized in:
- README.md contributors section
- Holopin digital badges
- GitHub contributor graph
- Special mentions in releases
Don't hesitate to ask for help:
- 💬 Discussions: Use GitHub Discussions for general questions
- 🐛 Issues: Create an issue for bugs or feature requests
- 📧 Email: Contact maintainers directly for sensitive matters
We welcome many different types of contributions:
- Use the bug report template
- Include steps to reproduce
- Provide system information
- Add screenshots if applicable
- Use the feature request template
- Explain the problem you're solving
- Describe your proposed solution
- Consider implementation complexity
- Fix typos and grammar
- Add missing documentation
- Improve existing explanations
- Translate documentation
- Add unit tests
- Add integration tests
- Improve test coverage
- Fix flaky tests
- Improve user interface
- Enhance user experience
- Add accessibility features
- Optimize for mobile devices
graph LR
A[Fork Repo] --> B[Clone Fork]
B --> C[Create Branch]
C --> D[Make Changes]
D --> E[Run Tests]
E --> F[Commit Changes]
F --> G[Push to Fork]
G --> H[Create PR]
H --> I[Code Review]
I --> J[Merge]
Thank you for contributing to our project! Your contributions help make this project better for everyone.
Every contribution, no matter how small, is valued and appreciated. Whether you're fixing a typo, adding a feature, or reporting a bug, you're helping build something awesome! 🚀
Happy Contributing! 🎃
If you have any questions, don't hesitate to reach out. We're here to help!