Thank you for your interest in contributing to Personal 2FA! We welcome contributions from the community.
- Fork the repository on GitHub
- Clone your fork locally:
git clone https://github.com/your-username/personal-2fa.git cd personal-2fa - Install dependencies:
npm install
- Start development server:
npm run dev
- Open http://localhost:3000 in your browser
- Development:
npm run dev- Starts local server - Build:
npm run build- Creates optimized build - Build Standalone:
node build.js- Creates single-file version
- Use ES2022 features and modern JavaScript
- Follow existing code patterns and naming conventions
- Add JSDoc comments for functions and classes
- Use semantic commit messages
- Test your changes in multiple browsers
- Verify HTTPS/localhost requirements
- Test import/export functionality thoroughly
- Check mobile responsiveness
Please use the GitHub Issues page to report bugs. Include:
- Browser and version
- Steps to reproduce the issue
- Expected vs actual behavior
- Screenshots if applicable
- Console errors if any
We welcome feature requests! Please:
- Check existing issues first
- Describe the use case clearly
- Explain the benefit to users
- Consider security implications
Personal 2FA handles sensitive data. When contributing:
- Never log sensitive information
- Clear sensitive data from memory when possible
- Follow crypto best practices
- Test security features thoroughly
- Report security issues privately
- Create feature branch from
main:git checkout -b feature/your-feature-name
- Make your changes with clear, focused commits
- Test thoroughly across different browsers
- Update documentation if needed
- Submit pull request with clear description
- One feature per pull request
- Clear description of changes
- Reference related issues if applicable
- Update README if adding new features
- Add tests for new functionality when applicable
Use conventional commits format:
type(scope): description
Examples:
feat(auth): add master password validation
fix(export): resolve QR generation issue
docs(readme): update installation instructions
style(ui): improve button spacing
When adding features:
- Update relevant README sections
- Add JSDoc comments to code
- Update user documentation if needed
- Consider adding examples
We support multiple languages:
- Add translations to
src/js/i18n.js - Use i18n keys for all user-facing text
- Test language switching functionality
- Follow existing translation patterns
- Open an issue for questions about contributing
- Check existing issues for similar questions
- Be patient - this is a volunteer-maintained project
By contributing to Personal 2FA, you agree that your contributions will be licensed under the MIT License.
Thank you for helping make Personal 2FA better for everyone! 🙏