Skip to main content
Frappe Helpdesk is 100% open-source and welcomes contributions from the community. This guide will help you get started with contributing to the project.

Getting Started

Before you begin contributing, make sure you have:
  1. Read the Development Setup guide
  2. Familiarized yourself with the Frappe Framework
  3. Joined our community channels:

Contribution Workflow

1

Fork and Clone

Fork the Frappe Helpdesk repository and clone it to your local machine:
git clone https://github.com/YOUR_USERNAME/helpdesk.git
cd helpdesk
2

Set Up Development Environment

Follow the local development setup from the README:
# Install in your frappe-bench
cd ~/frappe-bench
bench get-app https://github.com/YOUR_USERNAME/helpdesk
bench --site your-site.test install-app helpdesk
For frontend development:
cd apps/helpdesk/desk
yarn install
yarn dev
3

Create a Branch

Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name
# or
git checkout -b fix/bug-description
4

Make Your Changes

  • Write clean, maintainable code following the project’s coding standards
  • Add or update tests as needed (see Testing Guidelines)
  • Update documentation if you’re changing functionality
  • Follow the existing code structure and patterns
5

Test Your Changes

Run tests to ensure your changes don’t break existing functionality:
# Backend tests
bench --site your-site.test run-tests --app helpdesk

# Frontend development server
cd desk && yarn dev
6

Commit Your Changes

Write clear, descriptive commit messages:
git add .
git commit -m "feat: add new ticket filtering feature"
# or
git commit -m "fix: resolve SLA calculation bug"
Use conventional commit prefixes:
  • feat: for new features
  • fix: for bug fixes
  • docs: for documentation changes
  • refactor: for code refactoring
  • test: for test additions or changes
  • chore: for maintenance tasks
7

Push and Create Pull Request

Push your changes and create a pull request:
git push origin feature/your-feature-name
Then visit GitHub and create a pull request with:
  • Clear title describing the change
  • Description of what changed and why
  • Reference to any related issues
  • Screenshots (if UI changes)

Pull Request Guidelines

Before submitting your pull request, ensure:
  • Code follows the project’s style and conventions
  • All tests pass
  • New code includes appropriate tests
  • Documentation is updated if needed
  • Commit messages are clear and descriptive
  • PR description explains the changes and reasoning
  • No merge conflicts with the target branch
Refer to the Pull Request Requirements for detailed guidelines.

Code Structure

Backend (Python)

Backend code follows Frappe Framework conventions:
  • DocTypes: Located in helpdesk/helpdesk/doctype/
  • API Endpoints: Located in helpdesk/api/
  • Utilities: Shared functions in helpdesk/utils.py
  • Tests: Test files alongside doctypes as test_*.py

Frontend (Vue.js)

Frontend uses Vue 3 with TypeScript:
  • Components: Located in desk/src/components/
  • Pages: Located in desk/src/pages/
  • Stores: Pinia stores in desk/src/stores/
  • Routing: Defined in desk/src/router/

Coding Standards

Python

  • Follow PEP 8 style guide
  • Use type hints where applicable
  • Write docstrings for functions and classes
  • Use frappe.qb.get_query() for database queries (preferred over frappe.db.get_all())
  • Add @frappe.whitelist() decorator for API endpoints

JavaScript/TypeScript

  • Use TypeScript with <script setup lang="ts"> syntax
  • Follow Vue 3 Composition API patterns
  • Use Tailwind CSS semantic classes for styling
  • Prefer Lucide icons for consistency
  • Use frappe-ui composables (createResource, createListResource, createDocumentResource)

Reporting Issues

When reporting bugs or requesting features:
  1. Search existing issues to avoid duplicates
  2. Use issue templates for bugs and feature requests
  3. Provide details:
    • Steps to reproduce (for bugs)
    • Expected vs actual behavior
    • Environment details (Frappe version, browser, etc.)
    • Screenshots or error logs if applicable
Refer to the Issue Guidelines for detailed information.

Security Vulnerabilities

If you discover a security vulnerability, please do not open a public issue. Instead, report it responsibly:

Translation

Help translate Frappe Helpdesk to your language:
  • Visit the Crowdin project
  • Request access or join an existing language team
  • Translate strings and submit for review

Code of Conduct

Be respectful and inclusive:
  • Be welcoming to newcomers
  • Respect differing viewpoints and experiences
  • Accept constructive criticism gracefully
  • Focus on what’s best for the community

Getting Help

If you need help with your contribution:

Recognition

All contributors are valued and recognized:
  • Contributors are listed in the project’s GitHub contributors page
  • Significant contributions are acknowledged in release notes
  • Active contributors may be invited to become maintainers
Thank you for contributing to Frappe Helpdesk! Your efforts help make customer service better for everyone.

Build docs developers (and LLMs) love