# Contributing to PunimTag Thank you for your interest in contributing to PunimTag! This document provides guidelines and instructions for contributing to the project. --- ## ๐Ÿ“‹ Table of Contents 1. [Code of Conduct](#code-of-conduct) 2. [Getting Started](#getting-started) 3. [Development Workflow](#development-workflow) 4. [Coding Standards](#coding-standards) 5. [Testing](#testing) 6. [Documentation](#documentation) 7. [Pull Request Process](#pull-request-process) 8. [Project Structure](#project-structure) --- ## ๐Ÿค Code of Conduct ### Our Pledge We are committed to providing a welcoming and inclusive environment for all contributors. ### Expected Behavior - Be respectful and considerate - Welcome newcomers and help them learn - Accept constructive criticism gracefully - Focus on what's best for the project - Show empathy towards other contributors ### Unacceptable Behavior - Harassment or discriminatory language - Trolling or insulting comments - Public or private harassment - Publishing others' private information - Other unprofessional conduct --- ## ๐Ÿš€ Getting Started ### Prerequisites - Python 3.12+ - Git - Basic understanding of Python and Tkinter - Familiarity with face recognition concepts (helpful) ### Setting Up Development Environment 1. **Fork and Clone** ```bash git fork git clone cd punimtag ``` 2. **Create Virtual Environment** ```bash python -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate ``` 3. **Install Dependencies** ```bash pip install -r requirements.txt pip install -r requirements-dev.txt # If available ``` 4. **Verify Installation** ```bash python src/gui/dashboard_gui.py ``` --- ## ๐Ÿ”„ Development Workflow ### Branch Strategy ``` main/master - Stable releases develop - Integration branch feature/* - New features bugfix/* - Bug fixes hotfix/* - Urgent fixes release/* - Release preparation ``` ### Creating a Feature Branch ```bash git checkout develop git pull origin develop git checkout -b feature/your-feature-name ``` ### Making Changes 1. Make your changes in the appropriate directory: - Business logic: `src/core/` - GUI components: `src/gui/` - Utilities: `src/utils/` - Tests: `tests/` 2. Follow coding standards (see below) 3. Add/update tests 4. Update documentation 5. Test your changes thoroughly ### Committing Changes Use clear, descriptive commit messages: ```bash git add . git commit -m "feat: add face clustering algorithm" ``` **Commit Message Format:** ``` :