# Hasher - Contributing Guide Thank you for considering contributing to Hasher! This document provides guidelines for contributing to the project. ## ๐Ÿš€ Getting Started 1. Fork the repository 2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/hasher.git` 3. Create a branch: `git checkout -b feature/my-new-feature` 4. Make your changes 5. Test your changes 6. Commit: `git commit -am 'Add some feature'` 7. Push: `git push origin feature/my-new-feature` 8. Create a Pull Request ## ๐ŸŽฏ Areas for Contribution ### Features - Additional hash algorithms (bcrypt validation, argon2, etc.) - Export functionality (CSV, JSON) - Search history - Batch hash lookup - API rate limiting - Authentication/authorization ### Improvements - Performance optimizations - UI/UX enhancements - Better error handling - Additional tests - Documentation improvements ### Bug Fixes - Report bugs via GitHub Issues - Include steps to reproduce - Include expected vs actual behavior ## ๐Ÿ“ Code Style - Use TypeScript for type safety - Follow the existing code style - Use meaningful variable and function names - Add comments for complex logic - Keep functions small and focused ## ๐Ÿงช Testing Before submitting a PR: 1. Test the web interface thoroughly 2. Test the bulk indexing script 3. Verify Elasticsearch integration 4. Check for TypeScript errors: `npm run build` 5. Run linter: `npm run lint` ## ๐Ÿ“‹ Pull Request Guidelines - Provide a clear description of changes - Reference related issues - Include screenshots for UI changes - Update documentation if needed - Keep PRs focused (one feature/fix per PR) ## ๐Ÿค Code of Conduct - Be respectful and inclusive - Provide constructive feedback - Focus on the code, not the person - Help others learn and grow ## ๐Ÿ“ง Questions? Open an issue for questions or discussions!