Skip to main content
Thank you for your interest in contributing to Dependify! This guide will help you get started with contributing code, documentation, and ideas to improve the project.

Ways to Contribute

Report Bugs

Found an issue? Report it on GitHub Issues

Suggest Features

Have an idea? Open a feature request issue

Improve Documentation

Help others by improving guides and documentation

Submit Code

Fix bugs, add features, or improve performance

Getting Started

1

Fork the repository

Fork Dependify2.0 to your GitHub account.
2

Clone your fork

git clone https://github.com/YOUR_USERNAME/Dependify2.0.git
cd Dependify2.0
3

Set up development environment

Follow the Local Development Setup guide to configure your environment.
4

Create a feature branch

git checkout -b feature/your-feature-name
Use descriptive branch names:
  • feature/add-python-support
  • fix/cors-issue
  • docs/improve-setup-guide

Code Style Guidelines

Python (Backend)

We follow PEP 8 with some modifications:
# Use descriptive variable names
def create_pull_request(branch_name: str, repo_owner: str, 
                        repo_name: str) -> Optional[str]:
    """
    Create a pull request from fork to original repository.
    
    Args:
        branch_name: Name of the branch with changes
        repo_owner: Original repository owner
        repo_name: Repository name
        
    Returns:
        Pull request URL or None if failed
    """
    if not Config.GITHUB_TOKEN:
        raise ValueError("GITHUB_TOKEN not configured")
    
    # Clear comments explaining logic
    pr_title = f"🤖 Automated code modernization by Dependify"
    
    return pr_url
Key points:
  • Use type hints for function parameters and return values
  • Write docstrings for all public functions
  • Maximum line length: 100 characters
  • Use 4 spaces for indentation
  • Import order: standard library, third-party, local imports

TypeScript/JavaScript (Frontend)

We follow the Next.js and React best practices:
// Use TypeScript interfaces for props
interface RepositoryPageProps {
  repositoryUrl: string;
  onAnalysisComplete: (results: AnalysisResults) => void;
}

export function RepositoryPage({ 
  repositoryUrl, 
  onAnalysisComplete 
}: RepositoryPageProps) {
  const [isLoading, setIsLoading] = useState(false);
  
  // Clear function names and logic
  const handleAnalyze = async () => {
    setIsLoading(true);
    try {
      const results = await analyzeRepository(repositoryUrl);
      onAnalysisComplete(results);
    } catch (error) {
      console.error('Analysis failed:', error);
    } finally {
      setIsLoading(false);
    }
  };
  
  return (
    <div className="repository-page">
      {/* Component JSX */}
    </div>
  );
}
Key points:
  • Use TypeScript for all new code
  • Define interfaces for component props
  • Use functional components with hooks
  • Follow React naming conventions (PascalCase for components)
  • Use meaningful variable names
  • Handle loading and error states properly

Commit Message Guidelines

Write clear, descriptive commit messages:
git commit -m "feat: Add Python syntax detection support"
git commit -m "fix: Resolve CORS issue with Vercel deployment"
git commit -m "docs: Update environment variables guide"
git commit -m "refactor: Improve Modal container error handling"
git commit -m "test: Add unit tests for git_driver module"
Format:
<type>: <short description>

<optional detailed description>

<optional footer>
Types:
  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • refactor: Code refactoring without functional changes
  • test: Adding or updating tests
  • chore: Maintenance tasks, dependencies

Testing Requirements

While Dependify is currently in active development and doesn’t have comprehensive tests yet, we encourage contributors to:

Manual Testing Checklist

Before submitting a PR, test the following:
1

Backend API

  • /health endpoint returns 200
  • /update endpoint processes repositories
  • GitHub OAuth flow completes successfully
  • Rate limiting works as expected
2

Frontend

  • GitHub login redirects correctly
  • Repository input validates URLs
  • Real-time updates display via Supabase
  • PR link opens correctly after processing
3

Modal Containers

  • containers.py analyzes files correctly
  • modal_write.py refactors code as expected
  • Secrets load properly in containers
  • Parallel processing handles 10+ files
4

Integration

  • End-to-end flow: login → analyze → refactor → PR
  • Test with both owned repos and forks
  • Verify PR descriptions format correctly

Future Testing Goals

We welcome contributions that add:
  • Unit tests for backend modules (pytest)
  • Integration tests for API endpoints
  • Frontend component tests (Jest, React Testing Library)
  • E2E tests (Playwright or Cypress)

Pull Request Process

1

Ensure code quality

  • Code follows style guidelines
  • All functions have docstrings/comments
  • No console.log statements in production code
  • Type hints added for Python code
  • TypeScript types defined for React components
2

Update documentation

If your changes affect usage:
  • Update relevant documentation pages
  • Add examples for new features
  • Update environment variables guide if needed
3

Test your changes

  • Test locally with the development setup
  • Verify changes work with production-like configuration
  • Test edge cases and error scenarios
4

Commit and push

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

Create pull request

  1. Go to your fork on GitHub
  2. Click “Compare & pull request”
  3. Fill out the PR template:
    • Title: Clear, descriptive summary
    • Description: What, why, and how
    • Testing: How you tested the changes
    • Screenshots: For UI changes
6

Code review

  • Respond to review comments promptly
  • Make requested changes
  • Push updates to the same branch
  • Request re-review when ready
7

Merge

Once approved, maintainers will merge your PR. Thank you for contributing!

PR Template

Use this template for your pull requests:
## Description

Briefly describe what this PR does and why.

## Type of Change

- [ ] Bug fix
- [ ] New feature
- [ ] Documentation update
- [ ] Performance improvement
- [ ] Code refactoring

## Changes Made

- Change 1
- Change 2
- Change 3

## Testing

Describe how you tested these changes:

- [ ] Tested locally
- [ ] Tested with production configuration
- [ ] Added/updated tests

## Screenshots (if applicable)

Add screenshots for UI changes.

## Checklist

- [ ] Code follows project style guidelines
- [ ] Documentation updated
- [ ] All tests pass
- [ ] No breaking changes (or documented if unavoidable)

Areas Needing Help

We especially welcome contributions in these areas:

Multi-Language Support

Add support for Python, Go, Rust, Java modernization beyond JavaScript/TypeScript

Testing Infrastructure

Help build comprehensive unit and integration tests

UI/UX Improvements

Enhance the dashboard, add animations, improve accessibility

Performance Optimization

Optimize Modal container performance, reduce processing time

Documentation

Add guides, tutorials, and API documentation

Error Handling

Improve error messages and recovery mechanisms

Communication

GitHub Issues

Report bugs and request features

GitHub Discussions

Ask questions and share ideas

Pull Request Comments

Discuss specific code changes

Email

Contact @kshitizz36 for sensitive matters

Code of Conduct

We follow these principles:
1

Be respectful

Treat all contributors with respect and kindness.
2

Be constructive

Provide helpful feedback and suggestions.
3

Be patient

Understand that maintainers and contributors volunteer their time.
4

Be collaborative

Work together to build better solutions.

License

By contributing to Dependify, you agree that your contributions will be licensed under the MIT License.

Recognition

All contributors will be:
  • Listed in the project’s contributors page
  • Mentioned in release notes for significant contributions
  • Thanked in the README
We appreciate every contribution, no matter how small. Thank you for helping improve Dependify!

Resources

Setup Guide

Set up your development environment

Code Structure

Understand the codebase organization

Environment Variables

Configure your local environment

GitHub Issues

View open issues

Build docs developers (and LLMs) love