Thank you for your interest in contributing to AI-Powered Interview Coach! This document provides guidelines and information for contributors.
- Use the GitHub Issues page
- Search existing issues before creating a new one
- Provide detailed information including:
- Steps to reproduce
- Expected vs actual behavior
- System information (OS, Python version, etc.)
- Error messages and logs
- Open a GitHub Discussion first
- Describe the feature and its benefits
- Consider implementation complexity and project scope
git clone https://github.com/your-username/ai-powered-interview-coach.git
cd ai-powered-interview-coachgit checkout -b feature/your-feature-name
# or
git checkout -b fix/issue-descriptionFollow the Quick Start Guide to set up your development environment.
- Follow the coding standards (see below)
- Add tests for new functionality
- Update documentation as needed
- Ensure all tests pass
git add .
git commit -m "feat: add new feature description"
git push origin feature/your-feature-name- Use a clear, descriptive title
- Reference related issues
- Provide detailed description of changes
- Include screenshots for UI changes
- Follow PEP 8 style guide
- Use Black for code formatting:
black backend/ - Use flake8 for linting:
flake8 backend/ - Add type hints where appropriate
- Write docstrings for functions and classes
- Follow ESLint configuration
- Use Prettier for formatting
- Use TypeScript strict mode
- Follow React best practices
- Use Material-UI components consistently
- Use Alembic for migrations
- Follow naming conventions for tables and columns
- Add appropriate indexes and constraints
- Document schema changes
cd backend
pytest
pytest --cov=app tests/ # With coveragecd frontend
npm test
npm run test:coverage- Test API endpoints with realistic data
- Test speech-to-text workflow end-to-end
- Verify database migrations work correctly
- Update README.md for significant changes
- Add docstrings to new functions/classes
- Update API documentation
- Include examples for new features
- Automated Checks: All PRs must pass CI/CD checks
- Code Review: At least one maintainer review required
- Testing: Verify functionality works as expected
- Documentation: Ensure docs are updated appropriately
Use conventional commits format:
type(scope): description
[optional body]
[optional footer]
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changesrefactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
Examples:
feat(speech): add voice analysis visualization
fix(auth): resolve token expiration issue
docs(readme): update installation instructions
- Version Bump: Update version numbers
- Changelog: Update CHANGELOG.md
- Testing: Run full test suite
- Tag: Create git tag for release
- Deploy: Update deployment documentation
- Report security vulnerabilities privately
- Don't commit sensitive information (API keys, passwords)
- Use environment variables for configuration
- Follow security best practices
- Create issue or discussion
- Get approval from maintainers
- Create feature branch
- Implement with tests
- Submit pull request
- Address review feedback
- Merge after approval
- Reproduce the issue
- Create fix with test
- Verify fix resolves issue
- Submit pull request
- Quick review and merge
- Bug fixes and stability improvements
- Performance optimizations
- Test coverage improvements
- Documentation enhancements
- New AI features and models
- UI/UX improvements
- Additional language support
- Mobile responsiveness
- Code refactoring
- Developer tooling
- Advanced features
- Experimental functionality
- GitHub Issues: Bug reports and feature requests
- GitHub Discussions: General questions and ideas
- Pull Requests: Code review and discussion
- Email: security@your-domain.com (security issues only)
- FastAPI Documentation
- React Documentation
- Material-UI Documentation
- SQLAlchemy Documentation
- Whisper Documentation
Contributors will be recognized in:
- README.md contributors section
- Release notes
- Project documentation
Thank you for contributing to AI-Powered Interview Coach! 🎉