# Contributing to Sankofa Thank you for your interest in contributing to Sankofa! This document provides guidelines and instructions for contributing to the Sankofa ecosystem and Sankofa Phoenix cloud platform. ## Code of Conduct - Be respectful and inclusive - Welcome newcomers and help them learn - Focus on constructive feedback - Respect different viewpoints and experiences ## Getting Started 1. Fork the repository 2. Clone your fork: `git clone https://github.com/yourusername/Sankofa.git` 3. Create a branch: `git checkout -b feature/your-feature-name` 4. Make your changes 5. Commit your changes: `git commit -m "Add your feature"` 6. Push to your fork: `git push origin feature/your-feature-name` 7. Open a Pull Request ## Development Setup See [DEVELOPMENT.md](./DEVELOPMENT.md) for detailed setup instructions. ## Pull Request Process 1. Ensure your code follows the project's style guidelines 2. Add tests for new features 3. Ensure all tests pass: `pnpm test` 4. Update documentation as needed 5. Ensure your branch is up to date with the main branch 6. Submit your PR with a clear description ## Coding Standards ### TypeScript/JavaScript - Use TypeScript for all new code - Follow the existing code style - Use meaningful variable and function names - Add JSDoc comments for public APIs - Avoid `any` types - use proper typing ### React Components - Use functional components with hooks - Keep components small and focused - Extract reusable logic into custom hooks - Use proper prop types or TypeScript interfaces ### Git Commits - Use clear, descriptive commit messages - Follow conventional commits format when possible - Keep commits focused on a single change ## Testing - Write tests for all new features - Ensure existing tests still pass - Aim for >80% code coverage - Test both success and error cases ## Documentation - Update README.md if needed - Add JSDoc comments for new functions - Update API documentation for backend changes - Keep architecture docs up to date ## Questions? Feel free to open an issue for questions or reach out to the maintainers.