Contributing to Burki Voice AI

Thank you for your interest in contributing to Burki! We welcome contributions from the community and are excited to see what you’ll build.

πŸš€ Getting Started

Prerequisites

  • Python 3.11+
  • PostgreSQL
  • Docker & Docker Compose (for easy development)
  • Git

Development Setup

  1. Fork and clone the repository:
    git clone https://github.com/meeran03/burki.git
    cd burki
    
  2. Set up your development environment:
    # Copy environment template
    cp .env.example .env
    
    # Edit .env with your API keys and configuration
    
  3. Run with Docker (Recommended):
    chmod +x deploy.sh
    ./deploy.sh
    
    Or manually:
    # Install dependencies
    pip install -r requirements.txt
    
    # Run database migrations
    alembic upgrade head
    
    # Start the application
    uvicorn app.main:app --reload
    

πŸ› οΈ Development Workflow

Making Changes

  1. Create a feature branch:
    git checkout -b feature/your-feature-name
    
  2. Make your changes following our coding standards
  3. Test your changes:
    # Run tests (if available)
    pytest
    
    # Test API endpoints
    curl http://localhost:8000/docs
    
  4. Commit with clear messages:
    git commit -m "Add: Brief description of your changes"
    

Coding Standards

  • Follow PEP 8 for Python code style
  • Use type hints where possible
  • Add docstrings to functions and classes
  • Keep functions focused and modular
  • Use environment variables for configuration, never hardcode secrets

Database Changes

  • Use Alembic migrations for database schema changes:
    alembic revision --autogenerate -m "Description of changes"
    alembic upgrade head
    

🎯 Areas We Need Help With

High Priority

  • Provider Integrations: Adding new LLM, TTS, or STT providers
  • UI/UX Improvements: Enhancing the web dashboard
  • Testing: Writing comprehensive test coverage
  • Documentation: Improving guides and API documentation

Medium Priority

  • Performance Optimization: Audio processing and API response times
  • Mobile Support: Responsive design improvements
  • Internationalization: Multi-language support

Low Priority

  • New Features: Advanced call analytics, webhooks, etc.
  • Developer Tools: CLI tools, SDKs for other languages

πŸ“‹ Pull Request Process

  1. Ensure your PR:
    • Has a clear title and description
    • Links to any related issues
    • Includes tests for new functionality
    • Updates documentation if needed
  2. PR Template:
    ## Description
    Brief description of changes
    
    ## Type of Change
    - [ ] Bug fix
    - [ ] New feature
    - [ ] Breaking change
    - [ ] Documentation update
    
    ## Testing
    - [ ] Manual testing completed
    - [ ] Tests added/updated
    
    ## Checklist
    - [ ] Code follows style guidelines
    - [ ] Self-review completed
    - [ ] Documentation updated
    

πŸ› Reporting Issues

Bug Reports

Please include:
  • Clear description of the issue
  • Steps to reproduce the problem
  • Expected vs actual behavior
  • Environment details (OS, Python version, etc.)
  • Log output if available

Feature Requests

Please include:
  • Use case description
  • Proposed solution or API design
  • Alternative solutions considered
  • Additional context or examples

🏷️ Issue Labels

  • bug - Something isn’t working
  • enhancement - New feature or request
  • documentation - Improvements to docs
  • good first issue - Good for newcomers
  • help wanted - Extra attention needed
  • provider - Related to LLM/TTS/STT integrations

πŸ’¬ Community

  • GitHub Discussions: For questions and general discussion
  • Issues: For bug reports and feature requests
  • Discord: Join our community (if you have one)

πŸ“œ Code of Conduct

We are committed to providing a welcoming and inspiring community for all. Please be:
  • Respectful and inclusive
  • Constructive in feedback
  • Patient with new contributors
  • Professional in all interactions

πŸ™ Recognition

All contributors will be recognized in our README and release notes. We appreciate every contribution, no matter how small!
For questions about contributing, please open an issue or reach out to the maintainers.

πŸ‘¨β€πŸ’» Maintainer

Meeran Malik