# Contributing to Charon Thank you for your interest in contributing to CaddyProxyManager+! This document provides guidelines and instructions for contributing to the project. ## Table of Contents - [Code of Conduct](#code-of-conduct) - [Getting Started](#getting-started) - [Development Workflow](#development-workflow) - [Coding Standards](#coding-standards) - [Testing Guidelines](#testing-guidelines) - [Pull Request Process](#pull-request-process) - [Issue Guidelines](#issue-guidelines) - [Documentation](#documentation) ## Code of Conduct This project follows a Code of Conduct that all contributors are expected to adhere to: - Be respectful and inclusive - Welcome newcomers and help them get started - Focus on what's best for the community - Show empathy towards other community members ## Getting Started -### Prerequisites - **Go 1.24+** for backend development - **Node.js 20+** and npm for frontend development - Git for version control - A GitHub account ### Fork and Clone 1. Fork the repository on GitHub 2. Clone your fork locally: ```bash git clone https://github.com/YOUR_USERNAME/charon.git cd charon ``` 3. Add the upstream remote: ```bash git remote add upstream https://github.com/Wikid82/charon.git ``` ### Set Up Development Environment **Backend:** ```bash cd backend go mod download go run ./cmd/seed/main.go # Seed test data go run ./cmd/api/main.go # Start backend ``` **Frontend:** ```bash cd frontend npm install npm run dev # Start frontend dev server ``` ## Development Workflow ### Branching Strategy - **main** - Production-ready code - **development** - Main development branch (default) - **feature/** - Feature branches (e.g., `feature/add-ssl-support`) - **bugfix/** - Bug fix branches (e.g., `bugfix/fix-import-crash`) - **hotfix/** - Urgent production fixes ### Creating a Feature Branch Always branch from `development`: ```bash git checkout development git pull upstream development git checkout -b feature/your-feature-name ``` ### Commit Message Guidelines Follow the [Conventional Commits](https://www.conventionalcommits.org/) specification: ``` ():