Skip to content

Latest commit

 

History

History
217 lines (170 loc) · 5.35 KB

File metadata and controls

217 lines (170 loc) · 5.35 KB

Contributing to AI-Powered Interview Coach

Thank you for your interest in contributing to AI-Powered Interview Coach! This document provides guidelines and information for contributors.

🤝 How to Contribute

Reporting Issues

  • 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

Suggesting Features

  • Open a GitHub Discussion first
  • Describe the feature and its benefits
  • Consider implementation complexity and project scope

Code Contributions

1. Fork and Clone

git clone https://github.com/your-username/ai-powered-interview-coach.git
cd ai-powered-interview-coach

2. Create a Branch

git checkout -b feature/your-feature-name
# or
git checkout -b fix/issue-description

3. Development Setup

Follow the Quick Start Guide to set up your development environment.

4. Make Changes

  • Follow the coding standards (see below)
  • Add tests for new functionality
  • Update documentation as needed
  • Ensure all tests pass

5. Commit and Push

git add .
git commit -m "feat: add new feature description"
git push origin feature/your-feature-name

6. Create Pull Request

  • Use a clear, descriptive title
  • Reference related issues
  • Provide detailed description of changes
  • Include screenshots for UI changes

📝 Coding Standards

Python (Backend)

  • 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

TypeScript/React (Frontend)

  • Follow ESLint configuration
  • Use Prettier for formatting
  • Use TypeScript strict mode
  • Follow React best practices
  • Use Material-UI components consistently

Database

  • Use Alembic for migrations
  • Follow naming conventions for tables and columns
  • Add appropriate indexes and constraints
  • Document schema changes

🧪 Testing

Backend Tests

cd backend
pytest
pytest --cov=app tests/  # With coverage

Frontend Tests

cd frontend
npm test
npm run test:coverage

Integration Tests

  • Test API endpoints with realistic data
  • Test speech-to-text workflow end-to-end
  • Verify database migrations work correctly

📚 Documentation

  • Update README.md for significant changes
  • Add docstrings to new functions/classes
  • Update API documentation
  • Include examples for new features

🔍 Code Review Process

  1. Automated Checks: All PRs must pass CI/CD checks
  2. Code Review: At least one maintainer review required
  3. Testing: Verify functionality works as expected
  4. Documentation: Ensure docs are updated appropriately

🏷️ Commit Message Format

Use conventional commits format:

type(scope): description

[optional body]

[optional footer]

Types:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes
  • refactor: Code refactoring
  • test: Adding or updating tests
  • chore: Maintenance tasks

Examples:

feat(speech): add voice analysis visualization
fix(auth): resolve token expiration issue
docs(readme): update installation instructions

🚀 Release Process

  1. Version Bump: Update version numbers
  2. Changelog: Update CHANGELOG.md
  3. Testing: Run full test suite
  4. Tag: Create git tag for release
  5. Deploy: Update deployment documentation

🛡️ Security

  • Report security vulnerabilities privately
  • Don't commit sensitive information (API keys, passwords)
  • Use environment variables for configuration
  • Follow security best practices

📋 Development Workflow

Feature Development

  1. Create issue or discussion
  2. Get approval from maintainers
  3. Create feature branch
  4. Implement with tests
  5. Submit pull request
  6. Address review feedback
  7. Merge after approval

Bug Fixes

  1. Reproduce the issue
  2. Create fix with test
  3. Verify fix resolves issue
  4. Submit pull request
  5. Quick review and merge

🎯 Areas for Contribution

High Priority

  • Bug fixes and stability improvements
  • Performance optimizations
  • Test coverage improvements
  • Documentation enhancements

Medium Priority

  • New AI features and models
  • UI/UX improvements
  • Additional language support
  • Mobile responsiveness

Low Priority

  • Code refactoring
  • Developer tooling
  • Advanced features
  • Experimental functionality

💬 Communication

  • 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)

📖 Resources

🙏 Recognition

Contributors will be recognized in:

  • README.md contributors section
  • Release notes
  • Project documentation

Thank you for contributing to AI-Powered Interview Coach! 🎉