Thank you for your interest in contributing to the Personal Finance AI Assistant! We welcome contributions from everyone.
- Check if the bug has already been reported in Issues
- If not, create a new issue with:
- Clear description of the bug
- Steps to reproduce
- Expected vs actual behavior
- Screenshots if applicable
- Environment details (OS, browser, etc.)
- Check existing Issues and Discussions
- Create a new issue with:
- Clear description of the feature
- Use case and benefits
- Possible implementation approach
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/personal-finance-chatbot.git cd personal-finance-chatbot - Install dependencies:
npm install
- Create a new branch:
git checkout -b feature/your-feature-name
- Use TypeScript for all new code
- Follow existing code formatting (Prettier configuration)
- Use meaningful variable and function names
- Add comments for complex logic
- Follow React best practices
- Never commit sensitive data (API keys, passwords, etc.)
- Use environment variables for configuration
- Validate all user inputs
- Follow secure coding practices
- Test security features thoroughly
- Ensure all new features are accessible
- Use semantic HTML elements
- Add proper ARIA labels
- Test with screen readers
- Maintain keyboard navigation support
- Follow WCAG 2.1 AA guidelines
- Write tests for new features
- Ensure existing tests pass
- Test accessibility features
- Test on multiple browsers
- Test voice features if applicable
-
Before submitting:
- Ensure your code follows the style guidelines
- Run tests:
npm test - Build the project:
npm run build - Test accessibility features
- Update documentation if needed
-
Submitting the PR:
- Use a clear, descriptive title
- Describe what changes you made and why
- Reference any related issues
- Include screenshots for UI changes
- Mark as draft if work in progress
-
After submitting:
- Respond to review feedback promptly
- Make requested changes
- Keep the PR updated with main branch
Use clear, descriptive commit messages:
feat: add bank account connection feature
fix: resolve accessibility issue in navigation
docs: update installation instructions
style: improve button hover effects
refactor: optimize transaction categorization
test: add tests for security features
- DO NOT create public issues for security vulnerabilities
- Email security@yourdomain.com with details
- Include steps to reproduce and potential impact
- We'll respond within 24 hours
- All security-related changes require thorough review
- Test with security tools and manual testing
- Document security implications
- Follow principle of least privilege
- Test with screen readers (NVDA, JAWS, VoiceOver)
- Verify keyboard navigation
- Check color contrast ratios
- Test voice features
- Validate ARIA implementation
- Use semantic HTML
- Provide alternative text for images
- Ensure proper heading hierarchy
- Add ARIA labels where needed
- Test with assistive technologies
- Create translation files in
locales/directory - Update language selector component
- Test right-to-left languages if applicable
- Ensure cultural appropriateness
- Use clear, simple language
- Consider cultural context
- Test with native speakers
- Maintain consistent terminology
- Document complex functions and algorithms
- Add JSDoc comments for public APIs
- Update README for new features
- Include examples in documentation
- Update user guides for new features
- Add screenshots and videos
- Keep accessibility instructions current
- Translate important documentation
We especially welcome contributions in these areas:
- Security enhancements
- Accessibility improvements
- Performance optimizations
- Bug fixes
- Test coverage improvements
- New financial features
- UI/UX improvements
- Additional bank integrations
- Voice command enhancements
- Mobile responsiveness
- Code refactoring
- Documentation improvements
- Development tooling
- Additional languages
- Node.js 18+
- npm or yarn
- Git
- Modern browser for testing
- Copy environment template:
cp .env.example .env.local
- Add required API keys
- Configure security settings
- Test the application
- Run development server:
npm run dev - Run tests:
npm test - Check accessibility: Use browser dev tools
- Test voice features: Enable microphone permissions
- Check existing documentation
- Search closed issues and discussions
- Ask specific, detailed questions
- Provide context and examples
Contributors will be:
- Listed in the README
- Mentioned in release notes
- Invited to join the contributors team
- Recognized for significant contributions
By contributing, you agree that your contributions will be licensed under the MIT License.
Thank you for helping make financial technology more accessible and inclusive! π