First off, thank you for considering contributing to Home Loan Optimizer! It's people like you that make this tool better for everyone.
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
Before creating bug reports, please check the existing issues to avoid duplicates. When you create a bug report, include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples
- Describe the behavior you observed and what you expected
- Include screenshots if relevant
- Note your environment (OS, browser, Node version)
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion:
- Use a clear and descriptive title
- Provide a detailed description of the suggested enhancement
- Explain why this enhancement would be useful
- List any alternative solutions you've considered
- Fork the repo and create your branch from
main - Make your changes following our coding standards
- Test your changes thoroughly
- Update documentation if needed
- Write clear commit messages
- Submit a pull request
# Clone your fork
git clone https://github.com/your-username/home-loan-optimizer.git
# Install dependencies
npm install
# Start development server
npm run dev
# Run type checking
npm run type-check
# Build for production
npm run build- Use TypeScript strict mode
- Define proper interfaces for all data structures
- Avoid
anytypes - Use meaningful variable and function names
- Use functional components with hooks
- Keep components small and focused (< 200 lines)
- Extract reusable logic into custom hooks
- Use proper prop types
- Use CSS variables for theming
- Follow existing naming conventions
- Ensure dark/light theme compatibility
- Make components responsive
src/
├── components/ # Reusable UI components
├── contexts/ # React contexts
├── utils/ # Pure utility functions
├── types.ts # Shared TypeScript types
└── App.tsx # Main application
Follow the Conventional Commits specification:
feat: add export to PDF functionality
fix: correct interest calculation for leap years
docs: update README with new features
style: format code with prettier
refactor: simplify amortization logic
test: add tests for prepayment calculations
chore: update dependencies
- Test all calculations with edge cases
- Verify UI works on different screen sizes
- Check both dark and light themes
- Test keyboard navigation
- Ensure accessibility standards
- Update README.md for new features
- Add JSDoc comments for complex functions
- Update TypeScript interfaces
- Include examples in documentation
Feel free to open an issue with the question label or reach out to the maintainers.
Contributors will be recognized in the README and release notes.
Thank you for contributing! 🎉