Thank you for your interest in contributing to Hashify! We welcome contributions from everyone, whether it's reporting bugs, suggesting features, or submitting code improvements.
- Code of Conduct
- Getting Started
- How to Contribute
- Development Setup
- Commit Guidelines
- Pull Request Process
- Reporting Issues
- Suggesting Enhancements
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Node.js 18+ (download)
- npm or yarn
- Git
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR-USERNAME/Hashify.git cd Hashify -
Add upstream remote (optional, but recommended):
git remote add upstream https://github.com/Centre-for-Information-Technology-India/Hashify.git
Found a bug? Please create an issue with:
- Clear title: "Bug: Description of the issue"
- Detailed description: What happened and what was expected?
- Steps to reproduce: How can we recreate it?
- Screenshots/GIFs: If applicable
- Environment: Browser, OS, Node version
Have an idea? We'd love to hear it!
- Clear title: "Feature: Brief description"
- Motivation: Why would this be useful?
- Examples: How would it work?
- Alternatives: Have you considered other approaches?
Ready to code? Follow these steps:
npm installnpm run devThe app will be available at http://localhost:3000
npm testnpm run build
npm startnpm run lintWe follow conventional commit messages for consistency:
<type>(<scope>): <subject>
<body>
<footer>
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that don't affect code meaning (formatting, etc.)
- refactor: Code change that neither fixes a bug nor adds a feature
- perf: Improvement in performance
- test: Adding or updating tests
- chore: Changes to build process, dependencies, or tools
git commit -m "feat(hash-generator): add SHA-512 algorithm support"
git commit -m "fix(ui): improve dark theme text contrast"
git commit -m "docs: update README with installation steps"
git commit -m "refactor(utils): simplify hash validation logic"-
Create a branch from
main:git checkout -b feature/your-feature-name # or git checkout -b fix/your-bug-fix -
Make your changes:
- Keep commits small and focused
- Write meaningful commit messages
- Follow the code style of the project
-
Test thoroughly:
npm run dev # Test in browser npm run build # Check production build npm run lint # Run linter
-
Push your branch:
git push origin feature/your-feature-name
-
Create a Pull Request on GitHub with:
- Clear title: What does this PR do?
- Description:
- What changes are included?
- Why are these changes needed?
- How were they tested?
- Checklist:
- My code follows the code style
- I've tested the changes locally
- I've updated documentation if needed
- I've added/updated tests if needed
- My commits follow conventional commit format
-
Review Process:
- At least one review is required before merge
- CI/CD checks must pass
- All conversations must be resolved
- Keep the PR focused on one feature/fix
- Use TypeScript for all new code
- Follow Tailwind CSS for styling
- Use Next.js 15+ patterns and best practices
- Keep components small and focused
- Write meaningful variable and function names
// β
Good
export function HashGenerator() {
const [hash, setHash] = useState("");
const handleGenerate = useCallback(() => {
// logic
}, []);
return <div>{/* JSX */}</div>;
}
// β Avoid
const HashGenerator = () => {
let hash;
// ...
};// Group imports in this order:
// 1. External libraries
import React, { useState } from 'react';
import { Button } from '@/components/ui/button';
// 2. Internal modules
import { md5 } from '@/lib/md5';
// 3. Styles
import styles from './style.css';npm test- Write tests for new features
- Ensure existing tests still pass
- Aim for >80% code coverage
import { md5 } from '@/lib/md5';
describe('MD5 Hash', () => {
it('should generate correct hash', () => {
const result = md5('hello');
expect(result).toBe('5d41402abc4b2a76b9719d911017c592');
});
});- Update relevant
.mdfiles - Keep documentation clear and concise
- Add examples where helpful
- Include links to related documentation
- Feature in
src/components/: Update component docs - New utility: Add JSDoc comments
- Breaking change: Update CHANGELOG.md
Instead, email security@cit.org.in or follow the SECURITY.md guidelines.
Use the Bug Report template.
Use the Feature Request template.
- Check the README.md
- Review existing issues
- Check Discussions
- Email: contact@cit.org.in
Contributors will be recognized in:
- README.md contributors section
- GitHub contributors page
- Release notes for significant contributions
- π Read the Developer Guide
- π Search existing issues
- π¬ Start a discussion
- π§ Reach out to the team
By contributing to Hashify, you agree that your contributions will be licensed under its MIT License.
Thank you for contributing! π